Я написал программу обработки почты, которая в основном отправляет шаблон по входящей почте и пересылает его.Входящая почта отправляется в учетную запись Gmail, которую я загружаю с использованием POP, затем я читаю почту (как html, так и обычный текст multipart-MIME), делаю все необходимые изменения в шаблоне, затем создаю новую почту с соответствующим plain + htmlтекст и отправить его на другой адрес.
Проблема в том, что, когда почта попадает на другую сторону, некоторые из писем были искажены, со странными символами, такими как Ã
и Â
, волшебным образом вставлялись.Их не было в оригинальных письмах, их нет в моем шаблоне, и я не могу найти какой-либо предсказуемый образец относительно того, когда появляются эти символы.Я уверен, что это как-то связано со свойствами кодировки писем, но я проверяю, чтобы кодировка и кодировка передачи исходящей почты совпадали с входящей почтой.Так что еще мне нужно сделать?
РЕДАКТИРОВАТЬ: Вот отрывок образца входящей почты:
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
=0A=0ASafari Special:=0A=0A=A0=0A=0ASafari in Thornybush Priv=
ate Game Reserve 9-12=0AJanuary 2012 (3nights)
После обработки это выглядит как:
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
=0D=0A=0D=0ASafari Special:=0D=0A=0D=0A=C2=A0=0D=0A=0D=0A=
Safari in Thornybush Private Game Reserve 9-12=0D=0AJanuary=
2012 (3nights)
Обратите внимание на вставку символов =0D
и =C2
(кроме нескольких символов =0A
, которых не было в оригинале).
Так что же выдумаете, что здесь происходит?
ДРУГОЙ КЛЮЧ: Вот мой код, который создает альтернативное представление:
var htmlView = AlternateView.CreateAlternateViewFromString(htmlBody, null, "text/html");
htmlView.ContentType.CharSet = charSet;
htmlView.TransferEncoding = transferEncoding;
m.AlternateViews.Add(htmlView);
В соответствии с тем, что предложил @mjwills, возможно, *Метод 1027 * уже предполагает UTF-8, и изменение его позже на iso-8859-1 не имеет значения?