【问题标题】:How to add a string to a HTML file while sending it as email in asp .net如何将字符串添加到 HTML 文件中,同时在 asp .net 中将其作为电子邮件发送
【发布时间】: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


【解决方案1】:

您可以对小型 html 页面执行此操作

string smalHhtml = "<body>"
                   + "your some designing"
                   + "your Code : " + code
                   + "</body>";

注意:这是针对小正文的html,通过电子邮件发送验证码通常是小html。

【讨论】:

  • 是的,这是最好的主意,而且工作完美。非常感谢。
  • 要将文本放入 HTML 中,应该是 HttpUtility.HtmlEncode(code) 而不是 code
【解决方案2】:

您可以在消息正文中添加验证码,例如:

...
message.Body = body + authenicationCode;
...

或者,如果您不将 body 创建为 const,那么您可以在代码顶部创建它,例如;

...
const string subject = "email";
string body = "Your authentication code is: " + authenicationCode;
...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-06
    相关资源
    最近更新 更多