Zauważyłem, że e-maile transakcyjne ze sklepu Magento były często oznaczone jako spam. Apache SpamAssasin podaje 2.0
wynik z reguły BASE64_LENGTH_79_INF .
Wyjaśnienie reguły stanowi:
Zgodnie z http://en.wikipedia.org/wiki/Base64 , podstawa 64 powinna mieć tylko 76 znaków, więc są one nie w formacie.
Z powiązanego artykułu w Wikipedii:
MIME nie określa stałej długości linii zakodowanych w Base64, ale określa maksymalną długość linii wynoszącą 76 znaków. Dodatkowo określa, że wszelkie znaki niealfabetyczne muszą być ignorowane przez zgodny dekoder, chociaż większość implementacji używa pary nowej linii CR / LF do rozgraniczenia zakodowanych linii.
Wygląda więc na to, że treść zakodowana w standardzie base64 nie jest dzielona na wiersze zgodnie z oczekiwaniami. Czy ktoś spotkał to samo? Co może powodować ten zły format?
źródło
const LINELENGTH = 72;
(patrzlib/Zend/Mime.php
), więc nie widziałem powodu, aby temu nie ufać; prawdopodobnie różnica do 76 jest używana dla zakończeń linii. Zakodowanie wartości zamiast użycia właściwej stałej miało jedynie pokazać punkt. W rzeczywistej realizacji wartość ta musi żyć w sposób ciągły. / Edycja: ImplementacjaZend_Mime::encodeBase64()
zastosowań,chunk_split
która dzieli ciąg na $ chunklen, a następnie dodaje $ end (patrz php.net/manual/en/function.chunk-split.php )Jak skonfigurowany jest Twój serwer pocztowy (SMTP)? Czy Twój rekord SPF jest prawidłowy?
Istnieje wiele powodów, dla których poczta może być oznaczona jako spam, treść jest tylko jej częścią.
Więcej informacji tutaj: https://blog.amasty.com/5-steps-for-no-spam-e-mails-in-magento/
źródło