【问题标题】:Automatic processing of e-mail attachements自动处理电子邮件附件
【发布时间】:2017-06-09 23:12:51
【问题描述】:

我想编写一个应用程序(很可能使用 C#)检查特定帐户的电子邮件,检测附加文件并将它们分离到一个文件夹中进行处理。

是否有标准的 .NET 类来执行这些任务?如果没有,我还能用什么?

应用程序将作为服务运行。

【问题讨论】:

  • 应该在桌面上运行吗?与客户(前景等)?还是在服务器上?哪个服务器(交易所等)?
  • @SimonMourier:实际上两者都可以。 Outlook 客户端或某些服务器(我现在没有信息)。对 Outlook 客户端的回答已经很有帮助了。
  • 您可以在 C# 中使用 Outlook 的 Application.NewMailEx 事件(如在 VBA 中:msdn.microsoft.com/en-us/library/office/aa171304.aspx)。根据您的配置(安全性、邮件帐户类型等),实施细节可能会有很大差异。
  • 你为什么不回答cmets?
  • @SimonMourier:我确实回答了你的第一条评论,不是吗?

标签: .net windows email attachment


【解决方案1】:

虽然 BCL 中没有用于下载电子邮件的 API,只有发送,但有一个非常受推崇的是现在微软推荐的用于发送和接收电子邮件的库,它支持 POP3、IMAP、SMTP。 https://github.com/jstedfast/MailKit

检测附加文件并将它们分离到一个文件夹中进行处理

我假设您的意思是将文件下载到目录。幸运的是,使用 MailKit 这很容易做到,该库的作者在这里写了一个示例:https://stackoverflow.com/a/36229918/2595033

(取自链接的代码)

foreach (var attachment in message.Attachments) {
    using (var stream = File.Create ("fileName")) {
        if (attachment is MessagePart) {
            var part = (MessagePart) attachment;

            part.Message.WriteTo (stream);
        } else {
            var part = (MimePart) attachment;

            part.ContentObject.DecodeTo (stream);
        }
    }
}

应用程序将作为服务运行。

这也很容易做到,你需要写一个Windows Service。有很多关于用 C# 编写的资源。在 Visual Studio 中也有一个模板。

【讨论】:

  • 我还发现了OpenPop,看起来很相似。令人惊讶的是,MS 忽略了接收的解决方案。
  • 那我的回答没有帮助吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-22
  • 1970-01-01
  • 2011-11-27
  • 2018-01-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多