c# - HTML格式的电子邮件不起作用

时间:2017-02-15 11:35:52

标签: c# html email

我有以下代码:

MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient(Properties.Settings.Default.smtpServer);
mail.From = new MailAddress(Properties.Settings.Default.mailFrom);
mail.To.Add(mailto);
if (!string.IsNullOrEmpty(CC)) {
 mail.CC.Add(CC);
};
mail.Subject = subject;
mail.IsBodyHtml = true;
mail.Body = body;
mail.Priority = MailPriority.High;
mail.To.Add(mailto);
SmtpServer.EnableSsl = Properties.Settings.Default.SSL;
SmtpServer.UseDefaultCredentials = false;
SmtpServer.Port = Properties.Settings.Default.smtpPort;
SmtpServer.Credentials = new System.Net.NetworkCredential(Properties.Settings.Default.Username,     Properties.Settings.Default.emailPassword);
SmtpServer.DeliveryMethod = SmtpDeliveryMethod.Network;
SmtpServer.Timeout = 200000;
SmtpServer.Send(mail);
markEmailAsSent(uid);

我正在尝试将以下内容作为HTML发送,但是电子邮件并非如此发送,我收到了原始html。我已经加入了mail.IsBodyHtml = true;所以我不确定为什么这不起作用。

以下是信息的内容:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Trilogy</title>
<style type="text/css">
<!--
.style1 {color: #F33621}
.style4 {font-family: Arial}
.style6 {
    font-family: Arial;
    font-size: 11pt;
    color: #A2A2A2;
}
.style7 {
    font-family: "Agency FB";
    color: #FFAF9A;
    font-size: 10.5pt;
}
.style8 {
    font-family: Arial;
    font-size: 11pt;
}
.style9 {
    font-size: 11pt
}
.header {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 24px;
    font-weight: bold;
}
-->
</style>
</head>
<body>
<p align="left" class="style8">bla bla bla bla bla<br />
  <br />
<strong>Sometext</strong>
<br />t: 01666 666 666
<br />e: <a href="mailto:abc@123.net%</a></p>

</body>
</html>

3 个答案:

答案 0 :(得分:0)

将html更改为:

<html> <head> <title>Trilogy</title> <style type="text/css"> </style> </head> <body> <p align="left" class="style8">bla bla bla bla bla<br />   <br /> <strong>Sometext</strong> <br />t: 01666 666 666 <br />e: <a href="mailto:abc@123.net"</a></p>

</body> </html>

答案 1 :(得分:0)

根据规范,这个;

<p align="left" class="style8">bla bla bla bla bla<br />
<br />
<strong>Sometext</strong>
<br />t: 01666 666 666
<br />e: <a href="mailto:abc@123.net"</a></p>

应该足够了

答案 2 :(得分:0)

这对我来说适用于大型HTML文件。

            MailMessage mail = new MailMessage();
            mail.To.Add(new MailAddress(toEmail));
            mail.Subject = subject;
            mail.From = new MailAddress(fromEmail);
            mail.Body = message;
            mail.IsBodyHtml = true;

            SmtpClient smtpClient = new SmtpClient();
            smtpClient.UseDefaultCredentials = false;
            smtpClient.Port = smtpPort;
            smtpClient.Credentials = new System.Net.NetworkCredential(smtpUser, smtpPass);
            smtpClient.EnableSsl = smtpEnableSsl;
            
            smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
            smtpClient.Host = smtpHost;
            try
            {
                smtpClient.Send(mail);
                log.LogInformation("SUCCESS sent a mail for SUBSCRIPTION - " + tableData.subscription + " and SUBSCRIPTION_ID - " + tableData.subscriptionId);

            }

            catch (Exception ex)
            {
                log.LogInformation(ex.ToString());
                log.LogInformation("ERROR -  Unable to send a mail for SUBSCRIPTION - "+ tableData.subscription +" and SUBSCRIPTION_ID - "+tableData.subscriptionId);
            }

Blockquote

相关问题