1

我刚刚为 MVC 网站编写了一段代码,该网站使用 .NETSmtpClient通过我们的 Exchange 服务器发送 SMTP 电子邮件。它发送的电子邮件有一个 HTML 正文,其中包含指向网站上托管的图像和文件的链接。

电子邮件在我们的网络内部运行时可以正常发送,但是当它从不在我们域中的托管服务器上运行时,电子邮件会通过,但正文是空白的。有人知道为什么吗?是因为链接的图像或文件可能是潜在威胁并且来自不在域上的服务器,因此不受信任?

这是发送电子邮件的代码,它使用MailDefinition该类将指向文件的链接插入到他们要求下载的正文中:

MailDefinition md = new MailDefinition();
md.From = "test@testing.com";
md.Subject = "Test Email";
md.IsBodyHtml = true;

ListDictionary replacements = new ListDictionary();
replacements.Add("REQUESTED_LINK", @"C:\MyFile.pdf");

MailMessage email = md.CreateMailMessage(mailTo, replacements, content, new System.Web.UI.Control());

SmtpClient emailClient = new SmtpClient();
emailClient.Host = "MyExchangeServer";

emailClient.Send(email);
4

2 回答 2

1

我的猜测是MailDefinition.BodyFileName代码中缺失的值。

包含消息正文的文件的名称。默认值为空。

对开发或在内部服务器BodyFileName有一定的价值。托管服务器上的文件丢失,因此电子邮件正文为空。

请参阅此示例以供参考

于 2012-06-12T10:49:06.550 回答
0

已修复,原来包含电子邮件正文的 .html 文件尚未部署到实时服务器,因此电子邮件正文为空白。添加它可以解决问题,因此它毕竟不是安全问题。谢谢你的帮助

于 2012-06-12T11:09:55.703 回答