发送HTML电子邮件 - 如何将.html文件附加到电子邮件?
问题描述:
我已经发送一个简单的电子邮件下面的方法:发送HTML电子邮件 - 如何将.html文件附加到电子邮件?
private void WelcomeMail(string recipient)
{
MailMessage mailMessage = new MailMessage("MyEmail", recipient);
StringBuilder sbEmailBody = new StringBuilder();
sbEmailBody.Append("How can I attach .html file here instead of writing the whole code");
mailMessage.IsBodyHtml = true;
mailMessage.Body = sbEmailBody.ToString();
mailMessage.Subject = "Welcome to domain.com";
SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587);
smtpClient.Credentials = new System.Net.NetworkCredential()
{
UserName = "MyEmail",
Password = "MyPassword"
};
smtpClient.EnableSsl = true;
smtpClient.Send(mailMessage);
}
我应该怎么删除/修改/添加到发送HTML格式的电子邮件?
该HTML文件被称为responsivemail.html并包含100多行HTML代码(这就是问题所在)。
答
如果您的网站根目录中的HTML文件位于名为emailtemplate.html的文件中,您可以简单地将HTML读入内存并将其分配给电子邮件正文。
mailMessage.Body = File.ReadAllText(Server.MapPath("~/emailtemplate.html"));
我不建议这样做,但是您也可以直接将HTML嵌入到代码中。由于HTML跨越多行,因此我们需要使用字符串文字(@"this is a string literal"
)。 HTML中可能有双引号。您需要通过加倍双引号来避开它们。
mailMessage.Body = @"
<h1>This is HTML in an email!</h1>
<a href=""http://google.com\"">This is a test link.</a>
";
从长远来看,如果你将要发送的HTML电子邮件,你需要将值注入到他们,我建议你看看Postal或其他库。邮政甚至可以很容易地embed images。
你想添加什么HTML?你正在做的一切,你只是缺乏HTML。你想HTML作为*附件*,还是在* body *中? – Amy
看起来你已经有了吗?你只需要在添加到'sbEmailBody'的字符串中添加HTML标签。所以我不确定你在问什么?反正,如果你打算做HTML电子邮件,你应该看看[Postal](https://github.com/andrewdavey/postal)。 – mason
我从一个网站(这是一个html文件,所有的
等标签)的HTML电子邮件。我询问了如何将附加的.html文件附加到附加区 – concretejungle