我使用以下代码发送邮件:
DataTable dt = Session["dt"] as DataTable;
string MailBody = "<html><table><tr><td><b>SNo.</b></td><td><b>ServerIP</b></td><td><b>ServerName</b></td><td><b>JobName</b></td><td><b>RunDateTime</b></td><td><b>RunStatus</b></td><td><b>Duration</b></td><td><b>ItemInventoryCount</b></td></tr>";
for (int i = 0; i < dt.Rows.Count; i++)
{
MailBody += "<tr><td>" + Convert.ToString(i + 1) + "</td>";
MailBody += "<td>" + dt.Rows[i]["ServerIP"] + "</td>";
MailBody += "<td>" + dt.Rows[i]["ServerName"] + "</td>";
MailBody += "<td>" + dt.Rows[i]["JobName"] + "</td>";
MailBody += "<td>" + dt.Rows[i]["RunDateTime"] + "</td>";
MailBody += "<td>" + dt.Rows[i]["RunStatus"] + "</td>";
MailBody += "<td>" + dt.Rows[i]["Duration"] + "</td>";
MailBody += "<td>" + dt.Rows[i]["ItemInventoryCount"] + "</td></tr>";
}
MailBody += "</table></html>";
MailMessage message = new MailMessage();
string fromEmail = "abc@domain.com";
string fromPW = "pwd123";
string toEmail = "abcdefgh@gmail.com";
message.From = new MailAddress(fromEmail);
message.To.Add(toEmail);
message.Subject = "Test Mail";
message.Body = MailBody;
message.IsBodyHtml = true;
message.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
SmtpClient smtpClient = new SmtpClient("smtp4.domain.com", 1028);
smtpClient.EnableSsl = false;
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new NetworkCredential(fromEmail, fromPW);
smtpClient.Send(message.From.ToString(), message.To.ToString(), message.Subject, message.Body);
但我收到的邮件是“MailBody”中的字符串。我错过了什么吗?请建议。
答案 0 :(得分:0)
尝试使用HTML,Body标记
DataTable dt = Session["dt"] as DataTable;
string MailBody = "<html><head><meta content=""text/html; charset=utf-8"" http-equiv=""Content-Type""></head><body><table><tr><td><b>SNo.</b></td><td><b>ServerIP</b></td><td><b>ServerName</b></td><td><b>JobName</b></td><td><b>RunDateTime</b></td><td><b>RunStatus</b></td><td><b>Duration</b></td><td><b>ItemInventoryCount</b></td></tr>";
for (int i = 0; i < dt.Rows.Count; i++)
{
MailBody += "<tr><td>" + Convert.ToString(i + 1) + "</td>";
MailBody += "<td>" + dt.Rows[i]["ServerIP"] + "</td>";
MailBody += "<td>" + dt.Rows[i]["ServerName"] + "</td>";
MailBody += "<td>" + dt.Rows[i]["JobName"] + "</td>";
MailBody += "<td>" + dt.Rows[i]["RunDateTime"] + "</td>";
MailBody += "<td>" + dt.Rows[i]["RunStatus"] + "</td>";
MailBody += "<td>" + dt.Rows[i]["Duration"] + "</td>";
MailBody += "<td>" + dt.Rows[i]["ItemInventoryCount"] + "</td></tr>";
}
MailBody += "</table></body></html>";
MailMessage message = new MailMessage();
string fromEmail = "abc@domain.com";
string fromPW = "pwd123";
string toEmail = "abcdefgh@gmail.com";
message.From = new MailAddress(fromEmail);
message.To.Add(toEmail);
message.Subject = "Test Mail";
message.Body = MailBody;
message.IsBodyHtml = true;
message.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
SmtpClient smtpClient = new SmtpClient("smtp4.domain.com", 1028);
smtpClient.EnableSsl = false;
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new NetworkCredential(fromEmail, fromPW);
smtpClient.Send(message.From.ToString(), message.To.ToString(), message.Subject, message.Body);