Noté que los correos electrónicos transaccionales de una tienda de Magento a menudo se marcaban como spam. Apache SpamAssasin otorga una 2.0
puntuación de la regla BASE64_LENGTH_79_INF .
La explicación de la regla establece:
De acuerdo con http://en.wikipedia.org/wiki/Base64 , la base 64 solo debe tener 76 caracteres de largo, por lo que no tienen formato.
Del artículo vinculado de Wikipedia:
MIME no especifica una longitud fija para las líneas codificadas en Base64, pero sí especifica una longitud máxima de línea de 76 caracteres. Además, especifica que cualquier carácter extra alfabético debe ser ignorado por un decodificador compatible, aunque la mayoría de las implementaciones usan un par de nueva línea CR / LF para delimitar líneas codificadas.
Por lo tanto, parece que el contenido codificado en base64 no se divide en líneas como se esperaba. ¿Alguien encontró lo mismo? ¿Qué podría causar este mal formato?
fuente
const LINELENGTH = 72;
(verlib/Zend/Mime.php
), así que no vi ninguna razón para no confiar en eso; probablemente la diferencia con 76 se usa para terminaciones de línea. Codificar el valor en lugar de usar una constante adecuada fue solo para mostrar el punto. En la implementación real, ese valor debe vivir en una constante. / Editar: La implementación deZend_Mime::encodeBase64()
usoschunk_split
que divide la cadena en $ chunklen luego agrega $ end (ver php.net/manual/en/function.chunk-split.php )¿Cómo se configura su servidor de correo (SMTP)? ¿Es correcto su registro SPF?
Hay varias razones por las cuales el correo podría ser marcado como spam, el contenido es solo una parte de él.
Más información aquí: https://blog.amasty.com/5-steps-for-no-spam-e-mails-in-magento/
fuente