Schlagwort-Archive: Mailversand

Internen Relayserver in Exchange 2013 einrichten

Für Anwendungen, wie Alarmanlagen (mail2alarm) , Scannen an E-Mailempfänger (scan2mail) oder Mails aus Scripten, Kopierern, CRM-Tools, ERP-Tools, Serverraumüberwachung etc. ist in Firmen oft der Mailversand ohne Authentifizierung gewünscht. Neuere Applikationen und Geräte sollten diese Funktion allerdings beherrschen und die Möglichkeit zur Eingabe von Credentials bieten. Falls nicht, muss man/frau zum Beispiel auf dem Exchange ein sicheres anonymes SMTP-Relay einrichten.

Um einen Internen offenen SMTP Relayserver (open relay) in Exchange 2013 einzurichten, erstellt man/frau einen weiteren Empfangsconnector (Receive Connector) und konfiguriert in diesem ausschließlich die IP-Adressen oder Adressbereiche der Absender, die über den Exchange E-Mails versenden dürfen ohne sich authentifizieren zu müssen.

1.  Exchange 2013  Verwaltungskonsole öffnen und zu Nachrichtenfluss/Empfangsconnector navigieren sowie neuen Connector erstellen, Namen ( hier „alarm2mail“ ) zuweisen  und benutzerdefiniert konfigurieren.

2.  Auf der folgende Einstellungsseite alle IP-Adressen entfernen und IP-Adresse des Exchange Servers eintragen und mit ok bestätigen.

3. In den Bereichsdefinitionen nur die Adressen der Geräte/Server zulassen, die zu diesem Connector Mails senden sollen: alarm2mail

 4. In der Registerkarte Sicherheit Häkchen bei „Anonyme Benutzer“ setzen.

5. In der ExchangeVerwaltungsShell ist zum Schluss noch folgender Befehl nötig um ein internes offenes Relay benutzen zu können:

Get-ReceiveConnector "alarm2mail" | Add-ADPermission -User "NT AUTHORITY\ANONYMOUS LOGON" -ExtendedRights "Ms-Exch-SMTP-Accept-Any-Recipient"

Get-ReceiveConnector „alarm2mail“ | Add-ADPermission -User „NT AUTHORITY\ANONYMOUS LOGON“ -ExtendedRights „Ms-Exch-SMTP-Accept-Any-Recipient“

Sicherheitshinweis: Nur die interne IP oder die internen IP-Bereiche freigeben, sonst besteht die Gefahr, dass binnen kurzer Zeit über den Exchange massiv Spams versendet werden und dieser auch in kürzester Zeit geblockt wird!

Wie man/frau solch ein Relay in der Praxis mit PowerShell einsetzen kann, zeige ich hier.

Mit PowerShell Mails über internes Relay versenden

Mailversand zum Beispiel bei erfolgreicher Windows Server Sicherung.

Der nachstehende Beispielcode setzt einen internen Relayserver zum Mailversand voraus, um die Authentifizierung gegenüber dem Mailserver zu sparen.

Wie man/frau einen internen Relayserver unter Exchange 2013 einrichtet zeige ich in einem anderen Blogbeitrag.

#Mailversand via PowerShell
$Server ="S861NIE01HV"
$Absender="S861NIE01HV-WSS@abc.de"
$Betreff="Erfolgreich Windows Server Sicherung"
$PSEmailserver = "S861NIE023EX"
$Empfaenger="backup@xyz.de"

# ab hier nichts mehr ändern ***************************************************
$date1 = Get-Date -Format dd.MM.yyyy
$date1 = $date1 + " " + (Get-Date).ToShortTimeString() + " Uhr - "
$body = &quot;Datum &quot; + $date1 + &quot; Server &quot; + $Server + &quot;  -   <code>r</code>n&quot;
$body = $body + &quot;Windows Server Sicherung erfolgreich!&quot;

Send-MailMessage -to $Empfaenger -from $Absender -subject $Betreff -body $body -smtpserver $PSEmailServer -encoding ([System.Text.Encoding]::UTF8)
Write-Host $body
Write-Host $Betreff

Die Zeilen 1-6 dienen zur Definition der projektspezifischen Variablen und können an das  jeweilige Projekt angepasst werden.

Die Zeilen bis 9 bis 12 setzen den Inhalt der Mail (Body) zusammen.

In der Zeile 14 steht der PowerShell-Aufruf Send-MailMessage, der den Mailversand bewerkstelligt. Das Cmdlets Send-MailMessage der PowerShell ist ein spracheigenes Mittel zum Versenden von E-Mails. Weitere Details zum Syntax finden man hier.

Die Zeilen 15 und 16 dienen zur Kontrolle während der Inbetriebnahme und können später entfallen.

Ein weitere Beitrag zum Mailversand über einen externen Mailserver mit Authentifizierung aus einem PowerShell Script folgt in diesem Blog.