Цитируемая печатная электронная почта, показывающая знаки равенства в определенных почтовых клиентах - PullRequest
3 голосов
/ 28 октября 2011

Я генерирую электронные письма.Они хорошо отображаются для меня в gmail и Outlook 2010. Однако мой клиент видит знак =, который добавляется в конец строк при форматировании в кавычках.Он также ест символ на следующей строке, но затем отображает знак равенства.

Пример:

line that en=
ds like this

отображается как

line that en=s like this

(Примечание:Символ EOL в моих электронных письмах просто LF. Нет CR.)

Я подтверждаю, какую версию Outlook использует мой клиент, но я думаю, что это 2007 год. Похоже, что заголовки писем от нее приходят через Exchange 6.5.

Мои электронные письма создаются в php с использованием библиотеки HtmlMimeMail5.Это составные электронные письма с соответствующим разделом, отправленным с:

Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: quoted-printable

Похоже, я мог просто убедиться, что ничто в моем письме не достигнет переноса строки в 76 символов, но это кажется неправильным способом решения проблемы.проблема.Должен ли персонаж EOL отличаться?(В письмах от клиента символ EOL - просто LF). Есть еще идеи?

1 Ответ

6 голосов
/ 29 октября 2011

Я не знаю, что делает библиотека PHP, но в конце почта MIME должна содержать окончания строк CR LF.Очевидно, что клиент замечает, что = не сопровождается правильной последовательностью CR LF, поэтому он предполагает, что это не разрыв строки, а символ, закодированный в две шестнадцатеричные цифры, поэтому он читает следующие два байта.Следует заметить, что следующие два байта не являются действительными шестнадцатеричными цифрами, поэтому его поведение также неверно, но мы должны признать, что в этот момент у него нет шансов отобразить что-то полезное.Они выбрали мусор, подход мусора.

...