簡體   English   中英

使用C#中的SmtpClient發送電子郵件時出現問題

[英]Problem sending email with SmtpClient in C#

我有一個ASP.Net/MVC應用程序,我正在嘗試發送HTML電子郵件。 我這樣做是通過讀取帶有令牌的HTML文件,然后替換令牌。 那部分很好,生成的HTML正是我想要的,但是當我發送電子郵件時,我收到的內容看起來像 -

<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("xxxx@abc.com");
MailAddress SendTo = new MailAddress("zzzz@gmail.com");
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);

有什么建議么?

也許是這樣的:

var plainView = AlternateView.CreateAlternateViewFromString(msgBody, new ContentType("text/plain; charset=UTF-8"));

MyMessage.AlternateViews.Add(plainView);
MyMessage.BodyEncoding = Encoding.UTF8;
MyMessage.IsBodyHtml = true;
MyMessage.Subject = subjectLine;
MyMessage.Body = msgBody;

試試這個改變:

plainView.TransferEncoding = System.Net.Mime.TransferEncoding.Base64;

要將傳輸編碼設置為8位,取自此處 ,您必須:

message.Body = null;
using (AlternateView body =
AlternateView.CreateAlternateViewFromString(
    "Some Message Body",
    message.BodyEncoding,
    message.IsBodyHtml ? "text/html" : null))
{
body.TransferEncoding = 
    TransferEncoding.SevenBit;
message.AlternateViews.Add(body);
}

這可能不是您需要的答案,但您是否考慮過使用XSLT來翻譯您的電子郵件? 我正忙於發送電子郵件的項目,並且很高興使用XSLT作為解決方案的一部分。 還意味着將來模板可以很容易地以行業標准化方式進行定制,也許您應該考慮進行更改?

這很奇怪,但更簡單的代碼對我有用:

var message = new MailMessage(Email, mailTo);
message.IsBodyHtml = true;
message.SubjectEncoding = message.BodyEncoding = Encoding.UTF8;
message.Subject = "Subject";
message.Body = msgBody;
smtpclient.Send(message);
string emailMessage="a skjdhak kdkand"; 
MailMessage mail = new MailMessage();
                    mail.To.Add(obj_Artist.EmailAddress);
                    mail.From = new MailAddress(EmailList[0].FromEmail, "Sentric Music - Rights Management");
                       mail.Subject = (EmailList[0].Subject);

                    if (EmailList[0].BCC1 != null && EmailList[0].BCC1 != string.Empty)
                    {
                        mail.Bcc.Add(EmailList[0].BCC1);
                    }
                    if (EmailList[0].BCC2 != null && EmailList[0].BCC2 != string.Empty)
                    {
                        mail.Bcc.Add(EmailList[0].BCC2);
                    }
                    if (EmailList[0].CC1 != null && EmailList[0].CC1 != string.Empty)
                    {
                        mail.CC.Add(EmailList[0].CC1);
                    }
                    if (EmailList[0].CC2 != null && EmailList[0].CC2 != string.Empty)
                    {
                        mail.CC.Add(EmailList[0].CC2);`enter code here`
                    }


                    string Body = emailMessage;


                    mail.Body = Body;
                    mail.BodyEncoding = System.Text.Encoding.GetEncoding("utf-8");
                    mail.IsBodyHtml = true;
                    AlternateView plainView = AlternateView.CreateAlternateViewFromString
                    (System.Text.RegularExpressions.Regex.Replace(Body, @"<(.|\n)*?>", string.Empty), null, "text/plain");
                    System.Net.Mail.AlternateView htmlView = System.Net.Mail.AlternateView.CreateAlternateViewFromString(Body, null, "text/html");
                    mail.AlternateViews.Add(plainView);
                    mail.AlternateViews.Add(htmlView);
                    SmtpClient smtp = new SmtpClient();
                    smtp.EnableSsl = true;
                    smtp.Send(mail);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM