首页 > 解决方案 > 从 SmtpClient.Send 生成的电子邮件如果包装会破坏图像 src

问题描述

我们正在构建一个使用 RazorEngine 生成 HTML 电子邮件的站点。

使用断点我们可以看到生成的电子邮件正文符合预期。但是生成的 .eml 文件有一个图像 URL 包装,它似乎添加了一个额外的点,这当然会破坏 URL 并阻止显示图像。

下面显示了循环中的模型 BaseUrl:

循环显示 BaseUrl 的 Razor 模板

而且,在调用 SmtpClient.Send 之前的断点处,电子邮件正文显示为:

传递给 SmtpClient.Send() 之前的电子邮件正文

web.config 中的 SMTP 设置将其发送到 c:/temp/,当我在 notepad++ 中查看生成的 eml 文件时,我们看到:

eml 文件中的内容

请注意,第二个图像链接在“co”和“uk”之间有一个额外的点,该点不存在于其他链接或最终电子邮件正文中。

团队的其他成员之前在任何项目中都没有遇到过这种情况。

我们是否在做明显错误的事情?是否有我们不知道的“陷阱”?

非常感激任何的帮助。

标签: asp.nethtml-emailsmtpclient

解决方案


事实证明,创建并保存到磁盘的 .eml 文件不应该直接在电子邮件客户端中打开。

如果实际发送了 .eml 文件,则它会正确显示在电子邮件客户端中。

不记得我在哪里找到这个信息,但我想我会添加它,因为我意识到它仍然是开放的。

因此,如果您看到类似的问题,请尝试发送电子邮件然后检查它 - 不要只是保存到磁盘并检查它。


推荐阅读