Ich habe festgestellt, dass Transaktions-E-Mails aus einem Magento-Shop häufig als Spam markiert wurden. Apache SpamAssasin gibt eine 2.0
Punktzahl aus der BASE64_LENGTH_79_INF- Regel.
Die Regelerklärung lautet:
Laut http://en.wikipedia.org/wiki/Base64 sollte Base 64 nur 76 Zeichen lang sein, daher sind diese nicht formatiert.
Aus dem verlinkten Wikipedia-Artikel:
MIME gibt keine feste Länge für Base64-codierte Zeilen an, gibt jedoch eine maximale Zeilenlänge von 76 Zeichen an. Darüber hinaus wird angegeben, dass alle außeralphabetischen Zeichen von einem kompatiblen Decoder ignoriert werden müssen, obwohl die meisten Implementierungen ein CR / LF-Zeilenumbruchpaar verwenden, um codierte Zeilen abzugrenzen.
Es sieht also so aus, als ob Base64-codierter Inhalt nicht wie erwartet in Zeilen unterteilt ist. Hat jemand das gleiche erlebt? Was könnte dieses schlechte Format verursachen?
quelle
const LINELENGTH = 72;
(siehelib/Zend/Mime.php
), daher habe ich keinen Grund gesehen, dem nicht zu vertrauen. wahrscheinlich wird der Unterschied zu 76 für Zeilenenden verwendet. Das Hardcodieren des Werts anstelle der Verwendung einer geeigneten Konstante diente nur dazu, den Punkt anzuzeigen. In der realen Implementierung muss dieser Wert in einer Konstanten leben. / Bearbeiten: Die Implementierung vonZend_Mime::encodeBase64()
Verwendungen,chunk_split
die den String in $ chunklen aufteilt, fügt dann $ end hinzu (siehe php.net/manual/en/function.chunk-split.php )Wie ist Ihr Mailserver (SMTP) eingerichtet? Ist Ihre SPF-Aufzeichnung korrekt?
Es gibt verschiedene Gründe, warum die E-Mail als Spam markiert werden könnte. Der Inhalt ist nur ein Teil davon.
Weitere Informationen hier: https://blog.amasty.com/5-steps-for-no-spam-e-mails-in-magento/
quelle