Я занимаюсь разработкой ASP. NET веб-приложения. Одна функция рассылает электронные письма с "забытым паролем".
Мой клиент жалуется, что он не может просматривать электронную почту, потому что его клиент веб-почты поддерживает стандарты RF C и не может читать отформатированные электронные письма в кодировке base64 (поскольку, очевидно, это не стандарт RF C.)
Я не видел нигде в моем коде, где я был явно установлен в base64. Поэтому я изменил код c#, чтобы попытаться сделать так, чтобы он не был base64 ....
Часть кода ....
mail.Body = messageBody;
mail.IsBodyHtml = true;
mail.BodyEncoding = Encoding.UTF8;
mail.BodyTransferEncoding = System.Net.Mime.TransferEncoding.SevenBit;
mail.Headers.Add("Content-Transfer-Encoding", "7BIT");
SmtpServer.Send(mail);
Я получаю письмо в порядке , Но когда я копаюсь в электронном письме, я вижу это (частичный фрагмент) ....
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="=-xxxxxxx=="
--=-xxxxxx==
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64
xxxxxx
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
version="2.0">
Как вы можете видеть, "Content-Transfer-Encoding: base64" по-прежнему отображается, хотя я настраиваю TransferEncoding в 2 местах в моем коде. Я не уверен почему. Есть предложения по этому поводу?
Заранее спасибо!