2010-09-11 8 views
6

Bitte sagen Sie mir, was ich falsch mache. Ich schicke eine E-Mail die Zend_Mail Klasse wie folgt verwendet:Zend_Mail gesendet E-Mail wird als Spam behandelt

$message = <<<STR 
You have a new invoice! 

Sign in to your clientarea to see it. 

Best regards, 

Company name 
STR; 

$mail = new Zend_Mail(); 
$mail->setBodyText($message); 
$mail->setFrom('[email protected]', 'Company.com'); 
$mail->addTo('[email protected]', 'Client Name'); 
$mail->setSubject('You have a new invoice!'); 
$mail->send(); 

es aber als Spam empfangen wird. Es gibt andere Anwendungen wie Webmin auf meinem Server und E-Mails, die sie senden, werden nicht als SPAM behandelt.

+1

mögliche Duplikate von [PHP: Wie kann man verhindern, dass eine vom System generierte E-Mail in Spam einfließt?] (Http://stackoverflow.com/questions/2800898/phphow-to-avoid-a-system-generated-email-going-) In-Spam) –

+0

Siehe auch die verknüpften Fragen in diesem Duplikat –

+0

Hinzufügen von Antwort-To-Header löste das Problem. –

Antwort

9

Ich habe dies durch das Hinzufügen dieser Zeilen gelöst:

$mail->setReplyTo('[email protected]', 'Company'); 
$mail->addHeader('MIME-Version', '1.0'); 
$mail->addHeader('Content-Transfer-Encoding', '8bit'); 
$mail->addHeader('X-Mailer:', 'PHP/'.phpversion()); 

Die kritische Linie scheint Header Reply-To zu hinzufügen. Ohne das würde es immer zu SPAM gehen. Sobald ich den Reply-To-Header E-Mail-Clients eingestellt haben, beendeten es die Behandlung als Spam.

+0

Was ist der 'from'-Header jetzt? –

+0

[email protected], antworten Sie auf [email protected] –

+0

fühlen Sie sich frei, Ihre eigene Antwort als die richtige zu akzeptieren! – chelmertz