Zend_Mail, Postfix und strict_mime_encoding_domain

Zend_Mail, Postfix und strict_mime_encoding_domain

Beim Versuch eine Multipart Message via Zend_Mail und den SMTP Transport über einen Postfix Mailserver eines unserer Kunden zu senden trat folgender Fehler auf. Postfix meldete "invalid message/* or multipart/* encoding domain" und verweigerte die Annahme der E-Mail. Nicht-Multipart Messages konnten hingegen problemlos versandt werden.

Nach ein wenig Recherche war klar dass an diesem Verhalten die Konfigurationseinstellung strict_mime_encoding_domain = true schuld ist. Es handelt sich dabei um ein Feature von Postfix das "mails from poorly written software" blockiert und zwar genau dann wenn ein fehlerhafter Content Transfer Encoding an den Postfix Server gesendet wird.

Die Lösung ist im Grunde recht einfach:


class My_Mail_Transport_Postfix extends Zend_Mail_Transport_Smtp
{
/**
* @see Zend_Mail_Transport_Abstract#_getHeaders
*/
protected function _getHeaders($boundary)
{
parent::_getHeaders($boundary);

if (null !== $boundary) {
unset($this->_headers['Content-Transfer-Encoding']);
unset($this->_headers['Content-Disposition']);
}

return $this->_headers;
}
}


Eintrag von Stephan Hochdörfer am 03.06.2010

Tags: Allgemein, PHP, Zend Framework

Diese Webseite verwendet Cookies, um die Bedienfreundlichkeit zu erhöhen. Mit der Nutzung unserer Webseite wird das Einverständnis erklärt, dass wir Cookies verwenden. Weitere Informationen.