Unsere Webanwendung sendet E-Mail-Nachrichten an Personen, wenn jemand neuen Inhalt veröffentlicht. Sowohl Absender als auch Empfänger haben sich dafür entschieden, E-Mail-Nachrichten von unserer Anwendung zu erhalten. Bei der Vorbereitung einer solchen Nachricht setzen wir die folgenden SMTP-Header:
VON: [email protected] AN: [email protected] SENDER: [email protected]
Wir haben uns dafür entschieden, die E-Mail-Adresse des Autors im FROM-Header zu verwenden, um dem Empfänger die bestmögliche Erfahrung zu bieten. Wenn sie die Nachricht in ihrem E-Mail-Client sehen, ist der Autor klar. Um das Auftreten von Spoofing zu vermeiden, haben wir den SENDER-Header (mit unserer eigenen Unternehmens-E-Mail-Adresse) hinzugefügt, um zu verdeutlichen, dass wir die Nachricht im Namen des Autors gesendet haben. Nach dem Lesen der RFCs 822 und 2822 scheint dies eine beabsichtigte Verwendung des Absender-Headers zu sein.
Die meisten empfangenden Mailserver scheinen damit gut umzugehen. Die E-Mail-Nachricht wird normal zugestellt (vorausgesetzt, das Empfängerpostfach ist vorhanden, das Kontingent ist nicht überschritten usw.). Wenn Sie jedoch eine Nachricht VON einer Adresse in einer Domäne AN eine Adresse in derselben Domäne senden, lehnen einige empfangende Domänen die Nachrichten mit einer Antwort wie der folgenden ab:
571 falsche IP - psmtp (als Antwort auf den Befehl RCPT TO)
Ich denke, dies bedeutet, dass der empfangende Server nur gesehen hat, dass sich die FROM-Header-Adresse in seiner eigenen Domäne befindet und dass die Nachricht von einem Server stammt, den er nicht als autorisiert ansieht, Nachrichten für diese Domäne zu senden. Mit anderen Worten, der empfangende Server hat den SENDER-Header ignoriert.
Wir haben eine Problemumgehung: Die Webanwendung führt eine Liste solcher Domänen, die den SENDER-Header zu ignorieren scheinen. Wenn sich die FROM- und TO-Header in einer solchen Domäne befinden, wird der FROM-Header stattdessen auf unsere eigene E-Mail-Adresse gesetzt. Diese Liste muss jedoch gewartet werden.
Gibt es einen besseren Weg, um das gewünschte Erlebnis zu erzielen? Wir möchten ein "guter Bürger" des Netzes sein, und alle Beteiligten - Absender und Empfänger - möchten daran teilnehmen und diese Nachrichten empfangen. Eine Alternative besteht darin, immer die E-Mail-Adresse unseres Unternehmens im FROM-Header zu verwenden und dem Betreff den Namen / die Adresse des Autors voranzustellen. Dies scheint jedoch etwas umständlich zu sein.
From: author
statt verwendenFrom: [email protected]
?Antworten:
Du siehst die falschen Dinge an. Das sind die Nachrichten - Header . Sie sollten sich den SMTP- Umschlag ansehen . (Wie der Umschlag angegeben wird, hängt davon ab, wie genau Ihre Anwendung Mail an das Mail-System sendet. Auf vielen Systemen wird der Umschlag durch Befehlszeilenargumente an das Mail-Übermittlungsdienstprogramm angegeben.) Abhängig davon, wann genau die Protokolltransaktion ausgeführt wird Es wird entschieden, dass der SMTP-Relay-Server möglicherweise nicht einmal die Nachrichtenkopfzeilen gesehen hat.
Der Antworttext besagt, dass der Administrator des jeweiligen SMTP-Relay-Servers, mit dem Sie sich unterhalten, eingeschränkt hat, was Sie in den SMTP-Umschlag einfügen können. Es scheint sich über den Empfängerteil des Umschlags zu beschweren. Es kann jedoch sein, dass die Validierung des Umschlagsenders auf die Angabe des ersten Empfängers verschoben wird, sodass der Absender möglicherweise beanstandet wird.
Beachten Sie, dass beim Umschlagsender Zustellstatusnachrichten gesendet werden und diese nicht an zufällige Personen auf der ganzen Welt gerichtet werden sollen. (Abgesehen von der Tatsache, dass dies vielen Leuten nicht gefällt, ist es nicht sinnvoll, dass Zustellstatusnachrichten für Ihre E-Mail an andere Personen als Sie gesendet werden.) Geben Sie sich als Absender des Umschlags an.
Es ist
MX
übrigens falsch, Ressourceneinträge anzufordern. Ein SMTP-Relay-Server kann in Abwesenheit von Ressourceneinträgen von RessourceneinträgenA
undAAAA
Ressourceneinträgen gefunden werdenMX
. Siehe RFC 5321 § 5.1.quelle
Ich könnte mich irren, aber die wahrscheinlichste Ursache für den obigen Fehler, insbesondere im Fall von Postini, ist, dass die Domänen, auf die Sie abgelehnt werden, eine strikte SPF-Richtlinie haben. Die meisten Mail-Server mit SPF-Prüfung prüfen nur den From: -Header, der Sender-Header ist ihnen egal.
Um zu überprüfen, ob dies der Fall ist, führen Sie "dig + short TXT domain.com" aus, wobei domain.com die Fehlermeldung ausgibt. Sie sollten etwas zurückbekommen wie:
Der wichtige Teil ist das -all. Dies bedeutet, dass der Domaininhaber angegeben hat, dass nur E-Mails von den Servern gesendet werden, die als Mailserver fungieren. Alle anderen E-Mails werden abgelehnt.
Wenn dies der Fall ist, können Sie dies zum Glück aktiv prüfen, bevor Sie die E-Mail versenden! Lassen Sie die WebApp einen SPF-Check durchführen, wenn der Benutzer seine E-Mail-Adresse eingibt. Wenn es eine strikte Richtlinie gibt, fügen Sie die Domain Ihrer Liste hinzu. An Bibliotheken für alle Sprachen, die SPF-Prüfungen durchführen können, mangelt es nicht.
quelle