Предупреждение «Печатаемая строка в кавычках длиной более 76 символов» при отправке электронного письма в формате HTML
Вопрос
В своем приложении VB.NET я написал код для отправки электронного письма в формате HTML (в данном случае — напоминание о потерянном пароле).
Когда я проверяю электронное письмо, оно попадает в спам-фильтр.Одна из причин, по которой он имеет плохие оценки, связана со следующей проблемой:
MIME_QP_LONG_LINE RAW: Quoted-printable line longer than 76 chars
Я просмотрел источник электронного письма и разбил каждую строку длиной более 76 символов на две строки с CR+LF между ними, но это не решило проблему.
Может кто-то указать мне верное направление?
Спасибо!
Решение
В цитируемой печатной форме 8-битные символы расширяются до «={HEX-Code}», что делает сообщения длиннее.Может быть, вы просто достигли этого предела?
Вы пытались разбить сообщение, скажем, на 70 символов?Это должно обеспечить место для пары символов в строке.
Или вы просто закодируете электронное письмо с помощью Base64 — с этим справится любой почтовый клиент.
Или вы просто устанавливаете Content-Transfer-Encoding на 8 бит и отправляете данные в незакодированном виде.В наши дни я не знаю ни одного почтового сервера, который не мог бы обрабатывать 8-битные байты.
Другие советы
Это ошибка в реализации кодировки Quoted-Printable в System.Net.Mail.MailMessage, которая существует уже давно, но, по-видимому, сейчас исправлена, начиная с .Net 4 Beta 2.
Одним из обходных путей является использование вместо этого кодировки Base64 (хотя в противном случае было бы нецелесообразно отправлять часть MIME в виде простого текста в нечитаемой человеком кодировке, подобной этой).Просить пользователя класса вручную разделить строки сообщения перед его отправкой не является универсальным решением, поскольку измененное сообщение — это не то, что он хотел отправить (например,она может включать ссылку длиной более 76 символов, поэтому ее нельзя разделить).Quoted-Printable может обрабатывать сообщения со строками длиной более 76 символов. до кодирование, если оно реализовано правильно.