使用 Windows 服务将电子邮件另存为 .eml

Saving an email as .eml with Windows Service

我有一个用于自动化电子邮件系统的服务,它还会在本地文件夹中保存 .eml 文件的副本

使用 Outlook Interop dll 可以很好地用于交互式应用程序,但是我们需要使其成为非交互式服务,并且使该服务具有交互性会呈现很多security issues 个。

tl;dr 有没有办法使用非交互式 Windows 服务将 .eml 文件保存在文件夹中?

PS: 电子邮件是一个 System.Net.Mail.MailMessage 对象。

System.Net.Mail.SmtpClient 包含以 .eml 格式将消息写入磁盘的内置功能:

using (var c = new System.Net.Mail.SmtpClient.SmtpClient()
{
    DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory,
    PickupDirectoryLocation = "c:\temp"
})
{
    var mail = new MailMessage("someone@example.com", "someonelse@example.com", "Very important", "No, just kidding");
    c.Send(mail);
}