将 html 注入到电子邮件 asp.net 字符串中

本文关键字:net 字符串 asp 电子邮件 html 注入 | 更新日期: 2023-09-27 18:35:42

目前,我正在发送一封由 asp.net 字符串创建的HTML电子邮件,将链接输出为纯文本而不是超链接,这就是我要做的。 用于生成电子邮件字符串的代码如下所示:

 Uri link = new Uri("http://www.somesite.com");
string body = "Plus, you may wish to bookmark " + link + " for your rate comparison needs."
string subject = Resources.Email.VerificationEmailSubject;
Email.SendEmail(email, subject, body);
   public static void SendEmail(string toAddress, string subject, string body)
    {
        try
        {
            MailMessage mailMessage = new MailMessage();
            mailMessage.To.Add(new MailAddress(toAddress));
            mailMessage.Subject = subject;
            mailMessage.IsBodyHtml = true;
            mailMessage.Body = body;
            using (SmtpClient smtpClient = new SmtpClient())
            {
                smtpClient.Send(mailMessage);
            }
        }
        catch (Exception ex)
        {
            LogManager log = new LogManager();
            log.LogError(typeof(Email), ex);
        }
    }

最简单的方法是什么?

谢谢!

编辑 1:

试-

string emailContent = "Plus, you may wish to bookmark <a href='" + link + "'>www.comparsave.com</a> for your rate comparison needs.";

查看电子邮件源时,字符串正在由 asp.net 进行 html 编码,以在 html 中呈现为纯文本:<和> 被替换为">"<"等。如何阻止 asp.net 这样做??

编辑 2:

好吧,想通了!有时间稍后会发布答案。谢谢大家!

将 html 注入到电子邮件 asp.net 字符串中

如果是 HTML 电子邮件,请执行以下操作:

"<a href='" + link + "'>" + link + "</a>"

使用模板并将链接插入其中。

例如
const string template = "Plus, you may wish to bookmark <a href='{0}'>{0}</a> for your rate comparison needs."
string htmlEmailBody = String.Format(template, link);

解决方案是从cshtml文件中使用Html.Raw作为电子邮件模板。由于某种原因,我无法在上面发布的cs文件中调用Html.Raw。