Postfix sendet, empfängt jedoch keine E-Mail

616
mipnw

Ich führe Postfix auf einem Raspberry Pi hinter einem Heimrouter mit konfiguriertem dynamischem DNS aus. Postfix kann E-Mails einfach senden, scheint jedoch nicht zu empfangen.

Ich denke, der Heimrouter und das dynamische DNS sind in Ordnung, ich hoste eine Website auf dem Raspberry Pi, es funktioniert gut und ist öffentlich zugänglich. Entweder ist mein MX-Record nicht richtig konfiguriert oder Postfix nicht (denke ich).

(Ich habe meinen Hostnamen unten geändert).

Dynamischer Konfigurations-DNS für myhostname.ddns.net

  • IPv4-Adresse: Die IP-Adresse meines Raspberry Pi
  • MX-Datensatz: myhostname.ddns.net, Priorität 1

Konfiguration der Portweiterleitung am Heimrouter

D Service Port Internal Port IP Address Protocol 1 80 80 192.168.0.10 ALL # web server 2 22 22 192.168.0.10 ALL # ssh 3 25 25 192.168.0.10 TCP # mail server 

auf einem dritten Computer nicht der Raspberry Pi

  • ping myhostname.ddns.net: funktioniert, ich sehe die IP-Adresse meines Raspberry Pi reagiert.
  • Einen Browser zeigen auf http://myhostname.ddns.net: funktioniert, ich sehe das Stammverzeichnis der Website. Dies bestätigt, dass das dynamische DNS funktioniert und die Weiterleitung des Home-Routers funktioniert.
  • Bei einem Google Mail-Konto pi@myhostname.ddns.netschlägt das Senden von E-Mails nach etwa 24 Stunden fehl. Der Empfänger-Server hat unsere Anforderungen für die Verbindung nicht akzeptiert. Wenn Sie eine schnellere Testmethode kennen, für die keine 24 Stunden gewartet werden müssen, lassen Sie es mich wissen.

auf dem Raspberry Pi, angemeldet als "pi"

$ mail No mail for pi  $ dig myhostname.ddns.net MX +short 1 myhostname.ddns.net  $ sudo postfix status postfix/postfix-script: the Postfix mail system is running: PID: 16232  $ sudo netstat -plutn | grep 25 tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 16232/master  $ sudo iptables -L -n -v Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination  Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination  Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination  $ cat /etc/postfix/main.cf smtpd_banner = $myhostname ESMTP $mail_name (Raspbian) biff = no append_dot_mydomain = no readme_directory = no smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key smtpd_use_tls=yes smtpd_tls_security_level = may smtpd_tls_session_cache_database = btree:$/smtpd_scache smtp_tls_session_cache_database = btree:$/smtp_scache smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination myhostname = myhostname.ddns.net alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = myhostname.ddns.net, myhostname, localhost.localdomain,  localhost mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all inet_protocols = ipv4 home_mailbox = Maildir/ mailbox_command = relayhost = [smtp.gmail.com]:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_CAfile = /etc/postfix/cacert.pem smtp_use_tls = yes  $ cat /etc/mailname myhostname.ddns.net 

Aktualisieren

Comcast blockiert Port 25, siehe https://www.xfinity.com/support/articles/email-port-25-no-longer-supported

1
Möglicherweise sind Sie sich dessen bereits bewusst, aber es gibt eine Reihe von Diensten, die in Ihrem Namen E-Mails an Port 25 annehmen (Sie legen ihre Server in Ihre MX-Einträge ein) und sie leiten die E-Mail an einen nicht gesperrten alternativen Port bei Ihnen zu Hause weiter Verbindung, auf die Ihr Mailserver wartet (Portweiterleitung auf Ihrem lokalen Router gilt natürlich weiterhin). Der einzige Nachteil ist, dass die Mehrheit für diese Dienstleistungen einen anständigen Geldbetrag will. Der billigste, den ich persönlich gefunden habe, ist https://mxguarddog.com/. Sie können tatsächlich kostenlos sein, wenn Sie nur mit postmaster@ihredomain.com leben können. Anaksunaman vor 6 Jahren 0
@Anaksunaman Ich war mir dieser Dienste nicht bewusst, danke! Sieht so aus, als wäre mxguarddog.com jetzt $ 0,25 / Benutzer / Monat, nicht schlecht, obwohl dies zu den Hosting-Kosten eines Mail-Servers hinzukommt, da sie lediglich Relaying betreiben. Trotzdem ist es eine schöne Option! mipnw vor 6 Jahren 1

2 Antworten auf die Frage

1
Chris

Hier gibt es einige Dinge, die Sie überprüfen müssen.

  1. Ich vermute, Google kann Ihnen keine E-Mail senden, da Sie keinen MX-Eintrag haben. Aber lassen Sie uns so tun, als sei dies für einen Moment kein Thema, und lassen Sie uns andere Probleme lösen. (Nein, DDNS gibt Ihnen aus vielen guten Gründen keinen MX)

  2. Stellen Sie sicher, dass Sie über das Internet eine Verbindung zu Ihrem Port 25 herstellen dürfen. Ich denke, Sie werden es nicht tun können, aber testen Sie es bitte:

    nc -vv myhostname.ddns.net 25

oder

telnet myhostname.ddns.net 25 

Das sollte zeigen, wenn Sie eine Verbindung zu Port 25 herstellen dürfen. Allerdings können einige ISPs eingehende Verbindungen zu Port 25 blockieren. Natürlich müssen Sie Ihre interne Firewall auf Ihrem Pi überprüfen (welche Linux-Distribution führen Sie aus?).

  1. Sobald Sie mit Ihrem Server verbunden sind, können Sie eine E-Mail mit telnet / nc senden.

    EHLO myhostname.ddns.net

(Sie sollten hier einige Zeilen erhalten, die mit 250 beginnen)

mail from: your@myhostname.ddns.net rcpt to: email@to_send_it_to.com subject: Test email 

und starten Sie Ihre E-Mail. Beenden Sie mit single "." in der letzten Zeile so:

Test email from my server. . 

Dann sollten Sie sehen, dass die E-Mail gesendet wurde oder zumindest akzeptiert wurde. Keine Notwendigkeit, 24 Stunden zu warten :)

  1. Ich bezweifle wirklich, dass Sie Ihren Pi-E-Mail-Server nur für wenige Tests verwenden können. Zunächst haben Sie keine MX-Datensätze und keine Kontrolle über DKIM, PTR und SPF ... Mit anderen Worten, es ist nicht produktionsbereit, und die Leute würden keine E-Mails von Ihrem Server akzeptieren. Die Tatsache, dass Sie sich auf dynamischer IP-Adresse befinden, bedeutet, dass Ihre IP-Adresse von 99% Spam-Filtern blockiert wird. Ja, nur weil es nicht statisch ist.
1. Mein DDNS-Provider gibt mir tatsächlich die Möglichkeit, einen MX-Record zu konfigurieren. Ich habe es konfiguriert. `Dig myhostname.ddns.net MX + short` gibt` 1 myhostname.ddns.net` zurück, was ich erwarte. mipnw vor 6 Jahren 0
2. Das ist in der Tat das Problem. Ich kann vom Port 25 aus innerhalb des LAN telnet, aber nicht von außen. Port 25 auf dem rasbperry PI ist offen, da ich aus dem LAN darauf telnet. Die Portweiterleitung auf meinem Heimrouter funktioniert, da ich SSH von außerhalb des LAN zum PI und von außerhalb des LAN auf einer Website navigieren kann. Port 80 und 22 können also problemlos weitergeleitet werden, und Port 25 ist ebenfalls für die Weiterleitung vorgesehen. Comcast muss Port 25 blockieren, aber warum? mipnw vor 6 Jahren 0
3. Ich erwarte nicht, dass dieser PI eine Menge Verkehr im Gazilion abwickelt. Das ist nicht der Punkt dieses Setups. Meine Bedürfnisse sollten von einem Himbeer-PI mehr als angemessen behandelt werden. Ich kann auch E-Mails von PI über GMAILs SMTP senden und es landet nicht in den Spam-Ordnern der Empfänger. Es ist mir egal, ob mein PI SPAM empfängt, wenn ich Port 25 öffne. Ich kann damit umgehen. mipnw vor 6 Jahren 0
Linux-Distribution auf dem PI ist Raspbian mipnw vor 6 Jahren 0
Comcast blockiert Port 25: https://www.xfinity.com/support/articles/email-port-25-no-longer-supported mipnw vor 6 Jahren 0
0
Kyrie001

Wie Comcast zu den im Netzwerk von Comcast blockierten Ports sagt, können Sie Port 587 verwenden.

Bearbeiten: ComCast auch angegeben -> Wenn Sie einen Mail-Server betreiben, wenden Sie sich an Comcast Customer Security Assurance unter 1-877-807-6580, um weitere Informationen zu diesem Block zu erhalten.

Siehe: So konfigurieren Sie die TLS-Verschlüsselung in Postfix

Durch das Konfigurieren der TLS-Verschlüsselung kann mein Mail-Server keine eingehenden E-Mails von anderen E-Mail-Servern an meine Benutzer senden. Wenn ich verstehe, dass SMTP-E-Mail-Server (die ich nicht sicher bin, die versuchen, E-Mails an meinen Server zu übermitteln) eine Verbindung zu Port 25 herstellen kann? Port 587 ist für ausgehende E-Mails von meinen Benutzern über meinen Server zum Rest der Welt. Port 25 ist gesperrt, so dass ich niemals E-Mails erhalten kann, was den Zweck des Hostings hinter dem heimischen Internet-Service verhindert. mipnw vor 6 Jahren 2
https://serverfault.com/questions/149903/what-ports-to-open-for-mail-server Kyrie001 vor 6 Jahren 0
tatsächlich. Jason Bergs Antwort in Ihrem Link "Port 25 muss geöffnet sein, damit E-Mails aus dem Internet empfangen werden können. Alle Mail-Server stellen auf Port 25 eine Verbindung her und initiieren ggf. TLS (Verschlüsselung) an diesem Port." ist ganz klar. Leider bedeutet das, dass der Hosting-Mail-Server bei der Ankunft tot ist, wenn Port 25 gesperrt ist. mipnw vor 6 Jahren 0