Hallo zusammen.
Erst einmal danke für diesen Thread, darauf aufbauend konnte ich die meisten Magento-Mailprobleme gut lösen.
Ich habe etwas tiefer gegraben und dabei eine Lösung für das "MIME_QP_LONG_LINE"-Problem gefunden. Magento erzeugt grundsätzlich Mails mit zu langen Zeilen, nicht nur vereinzelt (ich habe einigen Debug-Aufwand getrieben). Laut RFC korrekt sind 76 Zeichen.
Die entscheidende Code-Zeile für die mit 201-Zeichen generell zu langen Zeilen findet sich in /app/code/core/Zend/Mime.php Zeile 41 (Version 1.3.2.2):
PHP-Code:
const LINELENGTH = 200;
Eine Änderung an dieser Stelle würde beim nächsten Update per Magento Connect wahrscheinlich überschrieben werden, daher die Datei in den local-Zweig kopieren (/app/code/local/Zend/Mime.php). Dort den Wert des Attributes auf 75 (!) ändern, da noch ein Zeilenende-Zeichen hinzukommt.
PHP-Code:
const LINELENGTH = 75;
Damit verschwindet MIME_QP_LONG_LINE aus den SPAM-Scores.
Noch ein paar Anmerkungen zu den anderen SPAM-Kriterien:
HTML_IMAGE_ONLY_28 kritisiert
nicht das Vorhandensein einer Grafik an sich, sondern dass zusätzlich weniger als 2800 Zeichen Text vorhanden sind. Dies scheint typisch für SPAMs zu sein. Wer also ein Logo einbetten will, kann das tun, sollte dann jedoch mind. 3200 Zeichen Text in den Mails haben. (Es gibt noch weitere ähnliche Kriterien für andere Zeichenanzahlen, siehe
SpamAssassin: Tests Performed: v3.2.x sowie
Newsletter Marketing Software SuperMailer - SpamAssassin Spam-Status Angaben).
Bleibt noch MIME_HTML_ONLY mit einem signifikanten Score-Wert. Dieses Kriterium sagt aus, dass es keinen alternativen Mailpart bspw. mit reinem Text (text/plain) gibt. Magento bzw. Zend können (technisch) ohne weiteres multipart-E-Mails erzeugen, dafür ist jedoch ein kleiner Hack sowie einiges an Arbeit in den Mailvorlagen erforderlich, da diese zusätzlich zur HTML-Version als Text angelegt werden müssen:
Magento - HTML Transactional Email not working on all clients - Programming Questions - eCommerce Software for Growth
Ich empfehle die Lösung aus dem verlinkten Post Nr. 13, mit der Ergänzung, app/code/core/Mage/Core/Model/Email/Template.php vor den Änderungen nach app/code/
local/Mage/Core/Model/Email/Template.php zu kopieren, um die Updatefähigkeit zu erhalten.
Ein Beispiel für die nötigen Änderungen an den E-Mails findet sich in Post Nr. 11.
Hinweis: Es gibt bei der reinen Textversion der Mails wohl noch offene Fragen, was die Ausgabe aller bestellten Artikel angeht, den Teil habe ich derzeit noch nicht umgesetzt..
Abschließend möchte ich noch auf eine Alternative zum SMTP-Zusatzmodul hinweisen, solange es nur um den korrekten Return-Path geht. Dazu ist erneut die Veränderung der Core-Datei app/code/core/Mage/Core/Model/Email/Template.php erforderlich (wie gehabt die local-Version verändern). Diese Veränderung legt den Mail-Sender auf sendmail fest - und ist damit weitgehend auf Linux/Unix-Systeme beschränkt! Möglicherweise funktionieren damit Zusatzmodule wie das SMTP-Modul nicht oder nicht richtig - das habe ich nicht getestet!
Diese Lösung funktioniert derzeit für rack::speed.
Ab Zeile 357 folgenden Code suchen:
PHP-Code:
try {
$mail->send(); // Zend_Mail warning..
$this->_mail = null;
}
ersetzen mit:
PHP-Code:
$transport = new Zend_Mail_Transport_Sendmail('-f ' . $this->getSenderEmail());
try {
$mail->send($transport); // Zend_Mail warning..
$this->_mail = null;
}
Was bewirkt die Veränderung? Das Problem des falschen Return-Path wird dadurch verursacht, dass die PHP-Funktion mail() sendmail den Return-Path zwar als Header übergeben kann, aber dieser ignoriert wird und stattdessen bspw.
benutzer@s104.rackspeed.de eingesetzt wird. Über die Ursache dafür kann ich nur spekulieren. Meine Änderung erzeugt ein Zend_Mail_Transport_Sendmail-Objekt mit einem zusätzlichen Kommandozeilenparameter. Dieser weist sendmail an, die angegebene E-Mailadresse als Return-Path einzutragen - was anstandslos funktioniert.
Ich übernehme keine Verantwortung für die von mir vorgeschlagenen Code-Änderungen, sie werden allerdings (teilweise bereits produktiv) für
basic biowelt eingesetzt.
Viel Erfolg Euren Shops!
Dennis