При отправке электронной почты в формате HTML предупреждение «Строка для печати длиннее 76 символов» - PullRequest
6 голосов
/ 12 сентября 2008

Я написал некоторый код в своем приложении VB.NET для отправки электронного письма в формате HTML (в данном случае напоминание о потерянном пароле).

Когда я проверяю электронную почту, она попадает в мой фильтр спама. Одна из вещей, по которой он плохо забивает, из-за следующей проблемы:

MIME_QP_LONG_LINE  RAW: Quoted-printable line longer than 76 chars

Я просматривал источник письма и разбил каждую строку длиной более 76 символов на две строки с CR + LF между ними, но это не устранило проблему.

Кто-нибудь может указать мне правильное направление?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 12 сентября 2008

Цитируемый печатный символ расширяет 8-битные символы до "= {HEX-Code}", что делает сообщения длиннее Может быть, вы просто достигаете этого предела?

Вы пытались разбить сообщение, скажем, на 70 символов? Это должно обеспечить место для пары символов в строке.

Или вы просто кодируете электронную почту с помощью Base64 - все почтовые клиенты могут справиться с этим.

Или вы просто устанавливаете Content-Transfer-Encoding на 8bit и отправляете данные в незашифрованном виде. Я не знаю ни одного почтового сервера, способного обрабатывать 8-битные байты в наши дни.

2 голосов
/ 15 марта 2010

Это ошибка в реализации кодировки Quoted-Printable в System.Net.Mail.MailMessage, которая была там долгое время, но, видимо, сейчас исправлена, начиная с .Net 4 Beta 2.

http://connect.microsoft.com/VisualStudio/feedback/details/156052/mailmessage-body-encoding-quoted-printable-violates-rfcs-soft-line-breaks-requirements

Один из обходных путей - использовать вместо этого кодировку Base64 (хотя в противном случае было бы нецелесообразно отправлять текстовую часть MIME в кодировке, не читаемой человеком, как эта). Попросить пользователя класса вручную разбить строки сообщения перед отправкой, это не является общим решением, поскольку измененное сообщение не является тем, что он хотел отправить (например, оно может содержать ссылку длиной более 76 символов и т. Д.). не может быть разделен). Quoted-Printable может обрабатывать сообщения со строками, длина которых превышает 76 символов до кодирования , при условии, что оно реализовано правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...