【发布时间】:2018-02-07 10:46:39
【问题描述】:
我正在使用 asp .net。我想在用户注册时向用户的电子邮件发送验证码。我正在使用此代码发送电子邮件。我正在添加要发送的 html 文件。如何将身份验证代码添加到此 HTML 文件?
这是我用来通过电子邮件发送 html 文件的代码。那么如何在 HTML 文件中添加string(authenticationCode) 以将其发送给用户进行身份验证。
var fromAddress = new MailAddress("hamza230@gmail.com", "From Hamza");
var toAddress = new MailAddress("usama90@gmail.com", "To Usama");
const string fromPassword = "****";
const string subject = "email";
const string body = "hello world";
var smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
Credentials = new NetworkCredential(fromAddress.Address, fromPassword),
Timeout = 20000
};
MailMessage message = new MailMessage(fromAddress, toAddress);
message.Subject = subject;
message.Body = body;
message.BodyEncoding = Encoding.UTF8;
String plainBody = "Title";
AlternateView plainView = AlternateView.CreateAlternateViewFromString(plainBody, Encoding.UTF8, "text/plain");
message.AlternateViews.Add(plainView);
MailDefinition msg = new MailDefinition();
msg.BodyFileName = "~/newsletter.html";
msg.IsBodyHtml = true;
msg.From = "usamaazam10@gmail.com";
msg.Subject = "Subject";
ListDictionary replacements = new ListDictionary();
MailMessage msgHtml = msg.CreateMailMessage("usamaazam10@gmail.com", replacements, new LiteralControl());
AlternateView htmlView = AlternateView.CreateAlternateViewFromString(msgHtml.Body, Encoding.UTF8, "text/html");
LinkedResource logo = new LinkedResource(System.Web.HttpContext.Current.Server.MapPath("~/images/logo.jpg"), MediaTypeNames.Image.Jpeg);
logo.ContentId = "logo";
htmlView.LinkedResources.Add(logo);
LinkedResource cover = new LinkedResource(System.Web.HttpContext.Current.Server.MapPath("~/images/cover.jpg"), MediaTypeNames.Image.Jpeg);
cover.ContentId = "cover";
htmlView.LinkedResources.Add(cover);
message.AlternateViews.Add(htmlView);
smtp.Send(message);
【问题讨论】:
-
我会这样做:使用身份验证代码的占位符手动更改 HTML 文件:{0},然后通过流读取器读取文件,
msg.Body=string.format(htmTxt, authcode);
标签: c# html asp.net email email-attachments