E-Mails mit Postfix (MTA) Mail Transfer Agent über Office 365 Relayhost senden
Tutorial dieses die Postfix Konfiguration beschreibt, wie E-Mails mit Postfix (MTA) Mail Transfer Agent über ein Office 365 Relayhost versendet werden. Die E-Mails werden über ein Office 365 E-Mailkonto ausgeliefert, die Clients im lokalen Netzwerk nutzen dabei Postfix als lokalen SMTP-Gateway. In Umgebungen wo beispielsweise Mutlifunktionsgeräte, oder Applikationen welche die Authentifizierung über Mail Submission und STARTTLS (Port 587) nicht unterstützen, können über den lokalen Postfix Mailserver versenden, ohne das diese sich am Mailserver anmelden müssen.
Auf einem CentOS 7 Linux Host werden dazu die folgenden Pakete als root bereitgestellt.
1 2 |
yum update && yum install -y postfix mailx cyrus-sasl cyrus-sasl-plain |
Bei Debian basierten Linux geht die Paket bereitstellung wie folgt.
1 2 |
apt-get update && apt-get install -y postfix mailutils |
Die Postfix Konfiguration editieren der Datei /etc/postfix/main.cf
1 2 3 4 5 6 7 8 9 10 11 12 |
mynetworks = 127.0.0.0/8 192.168.1.0/24 myhostname = 12.34.56.78.dynamic.xline.res.cust.isp.net mydestination = $myhostname, localhost.$mydomain, localhost inet_interfaces = all inet_protocols = ipv4 relayhost = [smtp.office365.com]:587 smtp_use_tls = yes smtp_sasl_auth_enable = yes smtp_sasl_security_options = smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt |
Bei mynetworks das lokale Netzwerk eintragen. Als myhostname den im Internet auflösbaren PTR Resource Record anwenden, um herauszufinden wie die Public IP und der dazugehörende PTR Eintrag ist, folgendes Command in der bash ausführen, oder hier.
1 2 3 |
$ curl -s ifconfig.co | xargs host 12.34.56.78.in-addr.arpa domain name pointer 12.34.56.78.dynamic.xline.res.cust.isp.net. |
Als nächstes wird eine Datei /etc/postfix/sasl_passwd erstellt.
1 2 |
[smtp.office365.com]:587 meinemail@domain.com:password |
Anstelle von meinemail@domain.com ist das eigene Office 365 Mailkonto einzusetzen, bei password das entsprechende Kennwort.
Die Datei sasl_passwd zur Berkeley DB erzeugen mit postmap.
1 2 |
postmap /etc/postfix/sasl_passwd |
TIP: postmap muss man nach jeder änderung ausführen.
Nun wird Postfix neu gestartet um die Konfiguration zu aktivieren.
1 2 |
systemctl restart postfix |
Zuletzt wird die Postfix Konfiguration getestet, mit einer mail aus der bash.
1 2 |
echo "Das ist ein Test." | mail -v -s "Test subject" -r meinemail@domain.com andere@domain.com |
Bei meinemail@domain.com die Office 365 Mailadresse, und bei andere@domain.com eine gültige Empfänger E-Mail angeben.
Die Mail-Logdatei und die queue untersuchen um sich zu vergewissern, ob die E-Mail auch tatsächlich versendet wurde und von smtp.office365.com angenommen wurde.
1 2 3 |
tail -25 /var/log/maillog mailq |
TIP: Es gibt weitere Möglichkeiten Ausgaben an mail zu übergeben, zum Beispiel kann das Resultat der PTR Recource Record Abfrage als Argument an mail übergeben und gesendet werden.
1 2 |
curl -s ifconfig.co | xargs host | mail -v -s "Lookup PTR" -r meinemail@domain.com andere@domain.com |