Notei que e-mails transacionais de uma loja Magento eram frequentemente marcados como spam. O Apache SpamAssasin fornece uma 2.0
pontuação da regra BASE64_LENGTH_79_INF .
A explicação da regra afirma:
De acordo com http://en.wikipedia.org/wiki/Base64 , a base 64 deve ter apenas 76 caracteres, portanto, eles estão fora de formato.
Do artigo vinculado da Wikipedia:
MIME não especifica um comprimento fixo para linhas codificadas em Base64, mas especifica um comprimento máximo de linha de 76 caracteres. Além disso, especifica que qualquer caractere extra-alfabético deve ser ignorado por um decodificador compatível, embora a maioria das implementações use um par de nova linha CR / LF para delimitar linhas codificadas.
Portanto, parece que o conteúdo codificado em base64 não é dividido em linhas conforme o esperado. Alguém encontrou o mesmo? O que poderia causar esse formato incorreto?
fonte
const LINELENGTH = 72;
(vejalib/Zend/Mime.php
), então não vi razão para não confiar nisso; provavelmente a diferença para 76 é usada para terminações de linha. Codificar o valor em vez de usar uma constante adequada era apenas para mostrar o ponto. Na implementação real, esse valor deve viver em uma constante. / Edit: A implementação deZend_Mime::encodeBase64()
usoschunk_split
que dividem a string em $ chunklen então adiciona $ end (veja php.net/manual/en/function.chunk-split.php )Como o seu servidor de email (SMTP) é configurado? O seu registro SPF está correto?
Existem várias razões pelas quais o e-mail pode ser marcado como spam, o conteúdo é apenas uma parte dele.
Mais informações aqui: https://blog.amasty.com/5-steps-for-no-spam-e-mails-in-magento/
fonte