gpt4 book ai didi

c# - 发送保存在磁盘上的 eml 文件

转载 作者:太空狗 更新时间:2023-10-29 17:41:10 39 4
gpt4 key购买 nike

我正在创建 eml,并使用 here 中提到的过程将它们保存到目录中.我想知道如何发送这些 eml 文件?我尝试使用 SMTPClient 类的对象,但它使用 MailMessage 对象作为其参数,我找不到使用这些保存的 eml 文件创建 MailMessage 类型对象的方法。

最佳答案

正确加载 EML 文件并不像看起来那么容易。你可以在几天内编写一个在 95% 的情况下工作的实现。剩下的 5% 至少需要几个月的时间 ;-)。我知道,因为我参与了开发。

考虑以下困难:

  • unicode 电子邮件
  • 从右到左的语言
  • 更正流行邮件客户端和服务器中众所周知的错误导致的格式错误的 EML 文件
  • 处理 S/MIME(加密和签名的电子邮件消息)
  • 正确处理几种附件编码方法
  • 处理嵌入到 HTML 电子邮件中的内联图像和样式表
  • 确保它正确解析 MIME torture message来自 Mike Crispin(Mime 和 IMAP RFC 的合著者)
  • 确保格式错误的消息不会导致缓冲区溢出或其他应用程序崩溃
  • 处理分层消息(带有附加消息的消息)
  • 确保它能正确处理非常大的电子邮件

这种解析器的成熟需要数年时间,并且需要不断地为它的用户提供反馈。目前 .NET Framework 中不包含此类解析器。在它发生变化之前,我会建议从知名供应商那里获得第三方 MIME 解析器。

以下代码使用我们的 Rebex Secure Mail component ,但我确信类似的任务也可以通过其他供应商的组件轻松复制。

代码基于Mail Message tutorial .

// create an instance of MailMessage 
MailMessage message = new MailMessage();

// load the message from a local disk file
message.Load("c:\\message.eml");

// send message
Smtp.Send(message, "smtp.example.org");

关于c# - 发送保存在磁盘上的 eml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1306115/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com