如何发送HTML格式的电子邮件?

use*_*651 128 c# asp.net

我可以让Web应用程序使用Windows任务计划程序发送自动电子邮件.现在我想使用我为发送电子邮件而编写的以下方法发送HTML格式的电子邮件.

我的代码隐藏:

protected void Page_Load(object sender, EventArgs e)
    {
        SmtpClient sc = new SmtpClient("mail address");
        MailMessage msg = null;

        try
        {
            msg = new MailMessage("xxxx@gmail.com",
                "yyyy@gmail.com", "Message from PSSP System",
                "This email sent by the PSSP system");

             sc.Send(msg);
        }

        catch (Exception ex)
        {
            throw ex;
        }

        finally
        {
            if (msg != null)
            {
                msg.Dispose();
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

怎么做?我只想在电子邮件中添加一些带有一个链接和一个图像的粗体文本.

Sha*_*hai 219

设置isBodyHtmltrue允许您在邮件正文中使用HTML标记:

msg = new MailMessage("xxxx@gmail.com",
                "yyyy@gmail.com", "Message from PSSP System",
                "This email sent by the PSSP system<br />" +
                "<b>this is bold text!</b>");

msg.IsBodyHtml = true;
Run Code Online (Sandbox Code Playgroud)


Ash*_*ikh 78

发送html格式的电子邮件的最佳方式

此代码将位于" Customer.htm "中

    <table>
    <tr>
        <td>
            Dealer's Company Name
        </td>
        <td>
            :
        </td>
        <td>
            #DealerCompanyName#
        </td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

使用System.IO.File.ReadAllText读取HTML文件.获取字符串变量中的所有HTML代码.

string Body = System.IO.File.ReadAllText(HttpContext.Current.Server.MapPath("EmailTemplates/Customer.htm"));
Run Code Online (Sandbox Code Playgroud)

将特定字符串替换为您的自定义值.

Body = Body.Replace("#DealerCompanyName#", _lstGetDealerRoleAndContactInfoByCompanyIDResult[0].CompanyName);
Run Code Online (Sandbox Code Playgroud)

调用SendEmail(string Body)函数并执行发送电子邮件的程序.

 public static void SendEmail(string Body)
        {
            MailMessage message = new MailMessage();
            message.From = new MailAddress(Session["Email"].Tostring());
            message.To.Add(ConfigurationSettings.AppSettings["RequesEmail"].ToString());
            message.Subject = "Request from " + SessionFactory.CurrentCompany.CompanyName + " to add a new supplier";
            message.IsBodyHtml = true;
            message.Body = Body;

            SmtpClient smtpClient = new SmtpClient();
            smtpClient.UseDefaultCredentials = true;

            smtpClient.Host = ConfigurationSettings.AppSettings["SMTP"].ToString();
            smtpClient.Port = Convert.ToInt32(ConfigurationSettings.AppSettings["PORT"].ToString());
            smtpClient.EnableSsl = true;
            smtpClient.Credentials = new System.Net.NetworkCredential(ConfigurationSettings.AppSettings["USERNAME"].ToString(), ConfigurationSettings.AppSettings["PASSWORD"].ToString());
            smtpClient.Send(message);
        }
Run Code Online (Sandbox Code Playgroud)

  • 也许使用**MailDefinition**或**RazorEngine*****http://stackoverflow.com/questions/10512845/how-to-send-email-wth-email-template-c-sharp*** (3认同)

Paw*_*iya 20

这适合我

msg.BodyFormat = MailFormat.Html;
Run Code Online (Sandbox Code Playgroud)

然后你可以在你的身体中使用html

msg.Body = "<em>It's great to use HTML in mail!!</em>"
Run Code Online (Sandbox Code Playgroud)

  • 这适用于[`System.Web.Mail`]中的`MailMessage`(https://msdn.microsoft.com/en-us/library/system.web.mail.mailmessage.bodyformat%28v=vs.110%29的.aspx).做`IsBodyHtml`是[`System.Net.Mail`]中的那个(https://msdn.microsoft.com/en-us/library/system.net.mail.mailmessage.isbodyhtml(v = vs.110) )的.aspx) (8认同)