Jörg Reinholz: Setzen eines From-Headers

Beitrag lesen

Doch irgendwas stimmt nicht ganz, bei Empfang der Mail, ist das → From Feld leer

Wenn Dein Mailagent den From-Header nicht setzt, dann solltest Du das machen:

$headers = array  
(  
     'Content-Type: text/plain; charset="UTF-8"',  
     'Content-Transfer-Encoding: 8bit',  
     'Reply-To: ' . $from,  
     'From: ' . $from,  
);

Wenn Dein Mailagent den From-Header aber selbst setzt, dann kannst Du zwar einen anderen setzen, doch der wird _eventuell_ überschrieben. (das ist bei Dir offenbar nicht der Fall).

Gute Gründe dafür, die Absenderadresse nicht selbst zu setzen:

Es _kann_ aber auch sein, dass der empfangende Mailserver das Mail ablehnt:

   ----- Transcript of session follows -----  
... while talking to gmail-smtp-in.l.google.com.:  

>>> DATA  

<<< 550-5.7.1 [XXX.XXX.XXX.XXX      12] Our system has detected that this message is  
<<< 550-5.7.1 likely unsolicited mail. To reduce the amount of spam sent to Gmail,  
<<< 550-5.7.1 this message has been blocked. Please visit  
<<< 550-5.7.1 http://support.google.com/mail/bin/answer.py?hl=en&answer=188131 for  
<<< 550 5.7.1 more information. z3si5091466wjx.177 - gsmtp  
554 5.0.0 Service unavailable  

Das kann dann der Fall sein, wenn die angegebene Maildresse zu einer Domain gehört, für welche SPF-Eintrag gesetzt wurde und der versendende Host darin nicht "erlaubt" ist. (Im obigen Beispiel habe ich die Ablehnung provoziert.)

Ein SPF-Eintrag ist ein Eintrag im DNS. Grob gesagt zeigt der SPF-Eintrag an, welche Hosts Mails mit der Angabe der Domain (für die der Eintrag gesetzt wurde) versenden dürfen. Ob er abgefragt und beachtet wird ist Sache des Admins des empfangenden Mailservers.

Abrufbar ist ein SPF-Record z.B. mit nslookup -t text gmail.com - Resultat:

fastix@trainer:~$ host -t txt gmail.com  
gmail.com descriptive text "v=spf1 redirect=_spf.google.com"

Folgen:

fastix@trainer:~$ host -t txt _spf.google.com  
_spf.google.com descriptive text "v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all"

Würde ich z.B. eine Adresse mit dem Domainpart googlemail.com als Adresse des Senders angeben, dann kann ich mir sicher sein, dass _einige_ Empfangsserver den Zugang wie oben gezeigt ablehnen - weil der (angebliche) Absender von einem nicht genannten (oder eingeschlossenem) Host aus versucht, das Mail "einzuwerfen". Das soll Spam ver(h|m)indern.

Muss man jetzt aus den oben genannten Gründen eine bestimmte aber (selbst) nicht gewünschte Mailadresse angeben (oder wird die angegebene überschrieben) dann gibt man kurzerhand hinter Reply-To eine Adresse an, an welche Antworten gesendet werden sollen, damit das Mailprogramm des Empfängers dessen Antworten nicht ins Nirvana sendet.

Jörg Reinholz