【发布时间】:2017-07-31 20:10:59
【问题描述】:
我们使用 System.Net.Mail.SmtpClient 发送电子邮件。我们的一些电子邮件包含链接,但我们不希望它们在发送时呈现为可点击状态。 SmtpClient 和 MailMessage 使用以下设置:
using var smtp = new SmtpClient(_emailSettings.SmtpHost, _emailSettings.SmtpPort))
{
var mail = new MailMessage(new MailAddress(sender), new MailAddress(recipient))
{
Subject = email.Subject,
Body = email.Body,
IsBodyHtml = true
};
await smtp.SendMailAsync(mail);
}
一个示例电子邮件正文可能是:
带有链接的示例文本:www.test.no
但是当我们发送电子邮件时,链接的原始文本被 smtp 客户端转换为<a href="www.test.no">www.test.no</a>,并且链接呈现为可点击。
通过调试解决方案,我们确保在 smtp.SendMailAsync(mail) 函数调用之前,正文只是没有任何锚标记的文本。
我们可以通过在链接中注入“不可见”的空格来规避该问题,使其不被识别为可点击的链接:
带有链接的示例文本:www̷.test.no
但是,我们想知道是否可以将 SmtpClient 设置为不首先将链接转换为<a href... >?
【问题讨论】:
-
正如您自己所说的,它的邮件客户端将链接呈现为可点击。如果您无法编辑客户端的设置,我认为您不走运。
标签: c# email hyperlink smtpclient