Wenn ich mich per Telnet mit meinem Server verbinde, auf dem Postfix läuft, und versuche, eine E-Mail zu senden:
MAIL FROM:<[email protected]>
#=> 250 2.1.0 Ok
RCPT TO:<[email protected]>
#=> 554 5.7.1 <[email protected]>: Relay access denied
Ich konnte weder auf der Site noch durch das Betrachten der Fragen/Antworten anderer Benutzer wirklich eine Antwort finden und bin nicht sicher, wo ich anfangen soll. Ideen?
Aktualisieren
Ein Blick auf die Dokumente zeigt grundsätzlich:http://www.postfix.org/SMTPD_ACCESS_README.html(Abschnitt:Selektive Vorgehensweise mit SMTP-Zugriffsbeschränkungslisten), ich habe anscheinend keine dieser Anweisungen inetc/postfix/main.cf
wie smtpd_client_restrictions = permit_mynetworks, reject
oder eines der anderen, also bin ich ziemlich verwirrt.
Aber in Wirklichkeit werde ich eine Rails-App haben, die eine Verbindung zum Server herstellt und die E-Mails sendet, deshalb bin ich nicht sicher, wie ich das handhaben soll.
So sieht meine Konfigurationsdatei aus:
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
readme_directory = no
# TLS parameters
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_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
myhostname = rerecipe-utils
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = $myhostname, localhost.$mydomain, localhost, mail.rerecipe.com, rerecipe.com
relayhost =
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
mynetworks = 127.0.0.0/8 204.232.207.0/24 10.177.64.0/19 [::1]/128 [fe80::%eth0]/64 [fe80::%eth1]/64
Zu beachten ist, dass dieses Feld relayhost
leer ist. Dies ist die Standardkonfigurationsdatei, die bei der Installation von Postfix erstellt wurde. Beim Testen der Verbindung openssl
erhalte ich Folgendes:
~% openssl s_client -connect mail.myhostname.com:25 -starttls smtp
CONNECTED(00000003)
depth=0 /CN=myhostname
verify error:num=18:self signed certificate
verify return:1
depth=0 /CN=myhostname
verify return:1
---
Certificate chain
0 s:/CN=myhostname
i:/CN=myhostname
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIBqTCCARICCQDDxVr+420qvjANBgkqhkiG9w0BAQUFADAZMRcwFQYDVQQDEw5y
ZXJlY2lwZS11dGlsczAeFw0xMDEwMTMwNjU1MTVaFw0yMDEwMTAwNjU1MTVaMBkx
FzAVBgNVBAMTDnJlcmVjaXBlLXV0aWxzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
iQKBgQDODh2w4A1k0qiPNPhkrPj8sfkxpKPTk28AuZhgOEBYBLeHacTKNH0jXxPv
P3TyhINijvvdDPzyuPJoTTliR2EHR/nL4DLhr5FzhV+PB4PsIFUER7arx+1sMjz6
5l/Ubu1ppMzW9U0IFNbaPm2AiiGBQRCQN8L0bLUjzVzwoSRMOQIDAQABMA0GCSqG
SIb3DQEBBQUAA4GBALi2vvk9TGKJubXYJbU0PKmVmsfzFK35yLqr0keiDBhK2Leg
274sWxEH3ds8mUaRftuFlXb7RYAGNlVyTuMTY3CEcnqIsH7F2McCUTpjMzu/o1mZ
O/B21CelKetBd1u79Gkrv2vWyN7Csft6uTx5NIGG2+pGi3r0gX2r0Hbu2K94
-----END CERTIFICATE-----
subject=/CN=myhostname
issuer=/CN=myhostname
---
No client certificate CA names sent
---
SSL handshake has read 1203 bytes and written 360 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 1024 bit
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : DHE-RSA-AES256-SHA
Session-ID: 1AA4B8BFAAA85DA9ED4755194C50311670E57C35B8C51F9C2749936DA11918E4
Session-ID-ctx:
Master-Key: 9B432F1DE9F3580DCC6208C76F96631DC5A4BC517BDBADD5F514414DCF34AC526C30687B96C5C4742E9583555A118232
Key-Arg : None
Start Time: 1292985376
Timeout : 300 (sec)
Verify return code: 18 (self signed certificate)
---
250 DSN
Merkwürdigerweise, wenn ich versuche, eine E-Mail von der Maschine selbst zu senden,tutarbeiten:
echo test | mail -s "test subject" [email protected]
Antwort1
Wenn Sie diese Art von Ablehnung sehen, hat das normalerweise etwas damit zu tun, was für den Zugriff auf das Relay bereitgestellt ist, also was gesendet/weitergeleitet werden darf? Haben Sie diesen Server gerade eingerichtet, ist er schon vorhanden? Von wo aus versuchen Sie zu senden? Bitte um Einzelheiten.
Antwort2
Ich konnte weder auf der Site noch durch das Betrachten der Fragen/Antworten anderer Benutzer wirklich eine Antwort finden und bin nicht sicher, wo ich anfangen soll. Ideen?
Suchen Sie bei Google nach „Postfix-Relay“ und klicken Sie auf daserstes Ergebnis. Wenn Sie spezielle Fragen zur Dokumentation haben – oder wenn Sie etwas ausprobiert haben und glauben, dass es nicht wie beschrieben funktioniert – lassen Sie es uns wissen und wir helfen Ihnen gerne.
Antwort3
Normalerweise müssen Sie bei Postfix standardmäßig von irgendwo innerhalb kommen mynetworks
oder Ihre Absender-E-Mail-Adresse muss in liegen , damit Ihre Nachricht weitergeleitet werden mydestination
kann. Dies ist natürlich die Standardeinstellung und kann geändert werden, normalerweise über smtpd_client_restrictions
. In Ihrem Beispiel ist der Absender [email protected]
, was höchstwahrscheinlich nicht Ihr Domänenname ist. Ihre Konfigurationsdatei gibt mydomain nicht an, $mydomain würde aus der Domäne der Hostnamen der Server initialisiert. Da Sie also nicht aus mynetworks kommen und sich nicht in mydestination befinden, wird Ihre E-Mail weder auf diesem Postfix-Server gestartet noch beendet, daher ein Relay, und das wird abgelehnt.
Wenn Sie hingegen von der Maschine selbst kommen, also 127.0.0.1, sind Sie in mynetworks und werden daher problemlos weitergeleitet.
Wie Larsks bereits erwähnt hat, gehört zur Mail-Weiterleitung mit Postfix viel mehr als nur ein paar „magische“ Konfigurationsanweisungen. Sie sollten sich mit der umfangreichen Online-Dokumentation von Postfix vertraut machen.