Ich habe auf meinem VPS ein neues, sauberes Debian 8 neu installiert.
Alles ist auf die Standardwerte eingestellt.
dpkg -s exim4
und dpkg -s postfix
sagt, dass eximist nichtinstalliert, und das PostfixIstinstalliert. Dies wird bestätigt, indem lsof -i :25
eine PID 478 angezeigt wird, dann ps p 478
wird angezeigt 478 ? Ss 0:00 /usr/lib/postfix/master
. Ich habe es nicht getan apt-get install postfix
, es scheint, dass es standardmäßig installiert wurde.
Ich habe bereits einen DNS-MX-Eintrag example.com
bei meinem Registrar erstellt, der ihn auf meinen Server weiterleitet.
Ich habe gerade eine E-Mail von meinem Gmail an gesendet [email protected]
.
Ich sehe es immer noch,
No mail
wenn ich es mache$ mail
.Wie kann ich feststellen, ob etwas bei Postfix angekommen ist?
Gibt es bei einer neuen Debian-Installation eine Konfiguration, um E-Mails aus dem Internet zu akzeptieren?
Soll ich das Postfach
root
lokal erstellen, um E-Mails von externen Mailern anzunehmen[email protected]
?
Hier ist das Ergebnis iptables
(unveränderte Standardkonfiguration):
root@blah:~# iptables -nvL
Chain INPUT (policy ACCEPT 77135 packets, 50M bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 2 packets, 120 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 66416 packets, 11M bytes)
pkts bytes target prot opt in out source destination
Ich sehe jetzt darin cat /var/log/mail.log
:
Nov 22 11:57:32 blah postfix/smtpd[10485]: connect from mail-ua0-f171.google.com[209.85.xxx.xxx]
Nov 22 11:57:32 blah postfix/smtpd[10485]: NOQUEUE: reject: RCPT from mail-ua0-f171.google.com[209.85.xxx.xxx]: 454 4.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<mail-ua0-f171.google.com>
Nov 22 11:57:32 blah postfix/smtpd[10485]: disconnect from mail-ua0-f171.google.com[209.85.xxx.xxx]
Antwort1
Diese Zeile enthält die nützlichen Informationen, die Sie benötigen
Nov 22 11:57:32 blah postfix/smtpd[10485]: NOQUEUE: reject: RCPT from mail-ua0-f171.google.com[209.85.xxx.xxx]: 454 4.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected] ...
Das bedeutet, dass Ihr Computer sich weigert, eine Nachricht von Google an[email geschützt]. Jetzt wissen Sie, dass Ihr Computer example.com ist, aber Ihr Computer weiß es offensichtlich nicht.
Lösung: Ändern Sie die lokale Konfiguration, um example.com als Namen für Ihren lokalen Computer einzuschließen. Auf der Postfix-Website ist ein leicht lesbares Dokument verfügbar (((BASIC_CONFIGURATION_README.html)[http://www.postfix.org/BASIC_CONFIGURATION_README.html#mydestination]), in dem die Einrichtung erklärt wird:
Mein eigener Domänenname
Der Parameter mydomain gibt die übergeordnete Domäne von $myhostname an. Standardmäßig wird er von $myhostname abgeleitet, indem der erste Teil entfernt wird (es sei denn, das Ergebnis wäre eine Top-Level-Domäne).
Wenn Sie umgekehrt mydomain in main.cf angeben, verwendet Postfix dessen Wert, um einen vollqualifizierten Standardwert für den Parameter myhostname zu generieren.
Beispiele (geben Sie nur eines der folgenden an):
/etc/postfix/main.cf: mydomain = local.domain mydomain = virtual.domain (virtual interface)
Für welche Domänen E-Mails empfangen werden sollen
Der Parameter mydestination gibt an, welche Domänen dieser Computer lokal zustellt, anstatt sie an einen anderen Computer weiterzuleiten. Standardmäßig werden E-Mails für den Computer selbst empfangen. Informationen zum Konfigurieren von Postfix für gehostete Domänen finden Sie in der Datei VIRTUAL_README.
Sie können null oder mehr Domänennamen, „/file/name“-Muster und/oder „type:table“-Nachschlagetabellen (wie hash:, btree:, nis:, ldap: oder mysql:) angeben, getrennt durch Leerzeichen und/oder Kommas. Ein „/file/name“-Muster wird durch seinen Inhalt ersetzt; „type:table“ fordert eine Tabellennachschlage an und prüft lediglich, ob die Tabelle vorhanden ist: Das Nachschlageergebnis wird ignoriert.
WICHTIG: Wenn Ihr Computer als Mailserver für seine gesamte Domäne fungiert, müssen Sie auch $mydomain auflisten.
Beispiel 1: Standardeinstellung.
/etc/postfix/main.cf: mydestination = $myhostname localhost.$mydomain localhost
Beispiel 2: domänenweiter Mailserver.
/etc/postfix/main.cf: mydestination = $myhostname localhost.$mydomain localhost $mydomain
Beispiel 3: Host mit mehreren DNS-A-Einträgen.
/etc/postfix/main.cf: mydestination = $myhostname localhost.$mydomain localhost www.$mydomain ftp.$mydomain
Achtung: Um Schleifen bei der E-Mail-Zustellung zu vermeiden, müssen Sie alle Hostnamen des Computers auflisten, einschließlich $myhostname und localhost.$mydomain.
Das hier sollte also genügen:
mydomain = example.com
...
mydestination = $myhostname localhost.$mydomain localhost $mydomain
Antwort2
Zusätzlich zur Antwort von roaima hat dies das Problem gelöst:
Fügen Sie den Domänennamen am Ende von
mydestination = <....>, mydomain.com
in hinzu/etc/postfix/main.cf
Kommentieren Sie diese Zeile aus:
#mailbox_command = procmail -a "$EXTENSION"
Senden Sie dann eine E-Mail von Gmail an
[email protected]
, warten Sie einige SekundenTun Sie es
mail
, Sie werden die neue E-Mail sehen :)