Postfix-Relay zu Office365

8

Ich versuche, einen Postfix-Server auf einer Linux-Box einzurichten, um alle E-Mails an unseren Office365-Mailserver (Exchange, gehostet von Microsoft) weiterzuleiten. Es wird jedoch weiterhin eine Fehlermeldung bezüglich der Sendeadresse angezeigt:

BB338140DC1: to = Relay = pod51010.outlook.com [157.56.234.118]: 587, Verzögerung = 7,6, Verzögerungen = 0,01 / 0 / 2,5 / 5,1, dsn = 5,7,1, Status = zurückgeworfen (Host pod51010.outlook.com [ 157.56.234.118] sagte: 550 5.7.1 Der Client hat keine Berechtigung zum Senden als dieser Absender (als Antwort auf das Ende des DATA-Befehls).

Für Office 365 muss die Sendeadresse im Header MAIL FROM und From: mit der zur Authentifizierung verwendeten Adresse übereinstimmen. Ich habe alles versucht, was mir in der Konfiguration einfällt, damit dies funktioniert. Meinepostconf -n:

append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
debug_peer_list = 127.0.0.1
inet_interfaces = loopback-only
inet_protocols = all
mailbox_size_limit = 0
mydestination = xxxxx, localhost.localdomain, localhost
myhostname = localhost
mynetworks = 127.0.0.0/8
recipient_delimiter = +
relay_domains = our.doamin
relayhost = [pod51010.outlook.com]:587
sender_canonical_classes = envelope_sender
sender_canonical_maps = hash:/etc/postfix/sender_canonical
smtp_always_send_ehlo = yes
smtp_sasl_auth_enable = yes
smtp_sasl_mechanism_filter = login
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_tls_loglevel = 1
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes

/etc/postfix/sender_canonical::

www-data                [email protected]
root                    [email protected]
www-data@localhost      [email protected]
root@localhost          [email protected]

Außerdem werden sasl_passwddie richtigen Anmeldeinformationen festgelegt ( mehrfach mit Swaks getestet ). Die Authentifizierung funktioniert und sendet die Nachricht, wenn die From- Header korrekt sind (auch mit Swaks getestet , was funktioniert).

Die E-Mails kommen von PHP, daher habe ich auch versucht, den Sendmail-Pfad so zu ändern php.ini, dass die korrekte Absenderadresse über -f übergeben wird

Aus irgendeinem Grund werden bei E-Mails, die von www-data und root stammen, die from-Felder nicht zur Zufriedenheit von Office 365 neu geschrieben, und die Nachricht wird nicht gesendet.

Gibt es Postfix-Gurus, die mir beim Einrichten dieses Relais helfen können?

Woodsbw
quelle

Antworten:

3

Nur für den Fall, dass jemand später darauf stößt. Ich habe endlich ein richtiges E-Mail-Relay zum Laufen gebracht. Die Probleme hatten mit der Verwendung einer älteren Version von Postfix zu tun, bei der das "FROM" -Element im Umschlag so formatiert wurde, wie es Office 365 nicht gefiel. Das Aktualisieren von Postfix auf 2.9 oder höher (und die Verwendung einer Konfiguration wie der oben genannten) hat das Problem behoben.

Woodsbw
quelle
Ich habe die letzten 3 Tage damit verbracht, dieses Relay mit sendmail, ssmtp und jetzt postfix einzustellen. Können Sie mir Ihre sender_canonical etwas ausführlicher erklären? Muss dieses Relais funktionieren? Mit meinem Setup bekomme ichJan 9 11:03:11 isvahlrtk01 postfix/smtp[12841]: connect to pod51017.outlook.com[157.56.250.182]:587: Connection timed out
Rhyuk
Woher hast du die smtp_tls_CAfile für Outlook.com?
pjz
Ich habe es nie gebraucht, es spielt sich gut mit dem, was mit Ubuntu Server kommt.
Woodsbw
2

Lösung:

  1. Senden Sie keine E-Mails von Ihrer von Office365 gehosteten E-Mail-Domäne als Benutzer an Office365. Verwenden Sie stattdessen eine Subdomain, z. B. [email protected] anstelle von [email protected]. Es würde nicht schaden, einen SPF-Eintrag für services.mydomain.com oder was auch immer Sie verwenden möchten einzurichten.

  2. Authentifizieren Sie sich nicht bei mail.messaging.microsoft.com als Office365-Benutzer. Stellen Sie einfach eine Verbindung über Port 25 her und senden Sie die E-Mail an Ihre Domain, wie es jeder ausländische SMTP-Agent tun würde.

Skyhawk
quelle
Meinetwegen. Ich hatte gehofft, all unsere Post durch einen zentralen Punkt zu bringen ... aber nachdem ich 12 Stunden damit verbracht habe, dieses Relais zum
Laufen
0

Ich habe festgestellt, dass einige SASL-Authentifizierungsmodule fehlten. Folgendes hat es behoben:

yum install cyrus-sasl-plain  cyrus-sasl-scram cyrus-sasl-md5  cyrus-sasl-ntlm

( einfaches Modul war wahrscheinlich genug)

DDR
quelle