c# - 在电子邮件中发送 HTML

标签 c# .net html-email embedding

我需要我的 .NET 桌面应用程序能够发送各种 HTML 邮件,允许用户创建自定义模板,包括图像和可能的 CSS 样式(如果他们从其他来源复制/粘贴 HTML)。

从我一直在阅读的内容来看,事情并没有那么简单:

  • 需要嵌入图像并将其链接替换为内容 ID
  • 包含图像的 CSS 样式也需要修复
  • 背景颜色/图像不起作用,最好将邮件包装在表格中并对其应用 CSS
  • SMTP 服务器可以将以点开头的行解释为“传输结束”,因此至少必须在所有此类行中添加一个空格
  • 谁知道还有什么

我的问题是:

  1. 还有什么我需要注意的吗?
  2. 是否有一个图书馆已经这样做了,这样我就不用重新发明了?

最佳答案

我能想到的一件事,利用Alternate views对于那些邮件客户端不能/不会接受 HTML 电子邮件(或者他们已将其关闭)的收件人。这样他们就会得到一个纯文本版本,如果他们决定要查看它,您可以在其中包含指向在线 html 版本的链接。

我还听说,不包含纯文本版本会增加您被标记为垃圾邮件的可能性 - 这是因为许多邮件过滤器会比较邮件的纯文本和 html 版本;如果它们差异太大,那对你来说不是一个好兆头:-)

其他垃圾邮件指标包括图片多于文本的 html 邮件,以及通常草率的 html - 损坏的 css、错误链接、缺少标签等 - 考虑在发送前使用某种标记验证器。

关于c# - 在电子邮件中发送 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12239477/

相关文章:

c# - 字符串创建

c# - 操作可能会破坏运行时的稳定性?

html - HTML 电子邮件中的图像 mask

c# - WCF:CustomBinding 混淆端点

c# - 射弹滞后,未完全删除

c# - 如何使用 Windows Store C++ 在没有窗口句柄的情况下渲染路径几何

.net - Resharper 单元测试运行器找不到内容文件

c# - 创建 DriveItem 时为 "Error getting value from ReadTimeout"

HTML 电子邮件列宽随不同的电子邮件客户端而变化

objective-c - 如何避免图像重定位使用带有 HTML 内容的 NSSharingService 发送电子邮件