2015-02-11 58 views
0

我试图发送电子邮件从C#的问题是,当我的身体
犯规IAM格式似乎是在那里工作的任何解决方案,我可以利用这个休息也行我需要创建邮件正文中的表。以下是我的代码,body1是我的电子邮件内容。格式邮件体中的C#系统生成的邮件

 var fromAddress = new MailAddress("[email protected]", "Name"); 

     const string fromPassword = "pwd123"; 
     const string subject = "System generated test mail "; 
     string email = bind_email(analyst); 

     string body1 = "Hi " + analyst.ToString(); 
     body1 = body1 + "<br/>"; 
     body1 = body1 + " This is system generated test mail for " + Session["TaskAssigned"].ToString(); 
     body1 = body1 + " To be competed before" + Session["Enddate"].ToString() + "<br/><br/> "; 

     var smtp = new SmtpClient 
     { 
      Host = "smtp.gmail.com", 
      Port = 587, 
      EnableSsl = true, 
      DeliveryMethod = SmtpDeliveryMethod.Network, 
      UseDefaultCredentials = false, 
      Credentials = new NetworkCredential(fromAddress.Address, fromPassword) 
     }; 
     using (var message = new MailMessage() 
     { 
      From = fromAddress, 
      Subject = subject, 
      Body = body1, 
     }) 

     { 
      message.To.Add(email);     
      smtp.Send(message); 
     } 
+0

你把isHtml =真的吗? – 2015-02-11 06:53:44

回答

1

乌斯把IsBodyHtml =真MAILMESSAGE中设置

mailMessage = new MailMessage() 
        { 
         From = new MailAddress(senderAddress), 
         Subject = subject, 
         Body = message, 
         IsBodyHtml = true 
        }; 

使用HTML标签,而不是纯文本的内部消息。

希望这会有所帮助。

1

你的问题是你没有指派MailMessage.IsBodyHtml为true。你可以使用真正的HTML格式化你的身体。

我用我的格式生成的电子邮件从HTML到来。首先创建一个test.html:

<html> 
     <body> 
      <p> 
       Hi #analyst# 
       <br/> 
       This is a system generated test mail for #task_assigned# to be completed before #enddate# 
       <br/> 
       <br/> 
      </p> 

     </body> 
    </html> 

然后只需更换所需的数据。

这里是你的代码,我编辑:

var fromAddress = new MailAddress("[email protected]", "Name"); 

const string fromPassword = "pwd123"; 
const string subject = "System generated test mail "; 
string email = bind_email(analyst); 

System.IO.StreamReader sr = new System.IO.StreamReader(Server.MapPath("~/App_Data/test.html")); 
string body1 = sr.ReadToEnd(); 
body1 = body1.Replace("#analyst#", analyst.ToString()); 
body1 = body1.Replace("#task_assigned#", Session["TaskAssigned"].ToString()); 
body1 = body1.Replace("#enddate#", Session["Enddate"].ToString()); 

var smtp = new SmtpClient 
{ 
    Host = "smtp.gmail.com", 
    Port = 587, 
    EnableSsl = true, 
    DeliveryMethod = SmtpDeliveryMethod.Network, 
    UseDefaultCredentials = false, 
    Credentials = new NetworkCredential(fromAddress.Address, fromPassword) 
}; 
using (var message = new MailMessage() 
{ 
    From = fromAddress, 
    Subject = subject, 
    Body = body1, 
    IsBodyHtml = true 
}) 

{ 
    message.To.Add(email);     
    smtp.Send(message); 
} 

Hope this helps