我有一個ASP.Net/MVC應用程序,我試圖發送HTML電子郵件。我正在通過讀取帶有標記的HTML文件來完成此操作,然後替換標記。這部分是罰款和生成HTML這就是我想要的東西,但是當我發送電子郵件,就是我收到的樣子 -在C中使用SmtpClient發送電子郵件時出現問題#
<style type=3D"text/css">=
=0D=0A.styleTitles=0D=0A{=0D=0Afont-weight:=bold;=0D=0A}=0D=0A
.style1=0D=0A {=0D=0A
,應該看起來像
<style type="text/css">
.styleTitles
{
font-weight: bold;
}
.style1
{
height: 15px;
}
我已經看着網上,我似乎無法找到正確的語法來發送消息。我已經看到了一些解決方案,但似乎沒有任何工作。
我目前的測試代碼 -
SmtpClient smtpclient = new SmtpClient();
MailMessage message = new MailMessage();
MailAddress SendFrom = new MailAddress("[email protected]");
MailAddress SendTo = new MailAddress("[email protected]");
MailMessage MyMessage = new MailMessage(SendFrom, SendTo);
var plainView = AlternateView.CreateAlternateViewFromString(msgBody,null,"text/html");
plainView.TransferEncoding = System.Net.Mime.TransferEncoding.SevenBit;
MyMessage.AlternateViews.Add(plainView);
MyMessage.IsBodyHtml = true;
MyMessage.Subject = subjectLine;
MyMessage.Body = msgBody;
smtpclient.Send(MyMessage);
有什麼建議?
這導致消息以base64編碼發送,它似乎工作。謝謝 我已經跟蹤了真正的問題,事實上默認情況下「Content-Transfer-Encoding:quoted-printable」設置會導致所有問題。 quoted-printable設計用= 0D取代\ n,\ r用= 0A和= as = 3D取代。我還沒有找到一個更好的方法來改變傳輸編碼,所以它是8位,這會更簡單。無論如何。謝謝。 – 2009-09-21 22:40:00