c# - 邮件不以表格格式发送 C#

标签 c# asp.net visual-studio-2012 smtp sendmail

我正在使用以下代码发送邮件:

        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”中一样。我错过了什么吗?请提出建议。

最佳答案

用 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);

关于c# - 邮件不以表格格式发送 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31745928/

相关文章:

c# - 给定一个类型实例,如何在 C# 中获取泛型类型名称?

c# - 无法在 Xaml 的嵌套类上设置属性

c# - 如何从 C# 打开对话框(模态)

c# - C# 中的 "javadoc"

c# - 在服务器端 Blazor 中使用 SignInManager

c# - 从 ASP.NET 网站下载动态生成的图像

javascript - 有没有更好的方法从 JavaScript 中的 url 中读取值

c++ - 如何禁止来自内部 Visual Studio 文件的警告

c++ - 延迟crtp基类中的成员函数实例化

windows - 无法在 visual studio 11 中构建项目