Я заметил, что транзакционные электронные письма из магазина Magento часто отмечались как спам. Apache SpamAssasin дает 2.0
оценку по правилу BASE64_LENGTH_79_INF .
Объяснение правила гласит:
Согласно http://en.wikipedia.org/wiki/Base64 , база 64 должна быть длиной всего 76 символов, поэтому они не в формате.
Из связанной статьи Википедии:
MIME не определяет фиксированную длину для строк в кодировке Base64, но он определяет максимальную длину строки в 76 символов. Кроме того, он указывает, что любые неалфавитные символы должны игнорироваться совместимым декодером, хотя большинство реализаций используют пару новой строки CR / LF для разделения кодированных строк.
Таким образом, похоже, что закодированное в base64 содержимое не разбивается на строки, как ожидалось. Кто-нибудь сталкивался с тем же? Что может вызвать этот плохой формат?
источник
const LINELENGTH = 72;
(см.lib/Zend/Mime.php
), Поэтому я не видел причин не доверять этому; вероятно, разница до 76 используется для окончания строки. Жесткое кодирование значения вместо использования правильной константы было просто показать точку. В реальной реализации это значение должно быть постоянным. / Edit: РеализацияZend_Mime::encodeBase64()
использования,chunk_split
которая разбивает строку в $ chunklen, а затем добавляет $ end (см. Php.net/manual/en/function.chunk-split.php )Как настроен ваш почтовый сервер (SMTP)? Ваша запись SPF верна?
Существуют различные причины, по которым письмо может быть помечено как спам, контент является только его частью.
Более подробная информация здесь: https://blog.amasty.com/5-steps-for-no-spam-e-mails-in-magento/
источник