【问题标题】:How do I read incoming mail using C# [closed]如何使用 C# 阅读收到的邮件 [关闭]
【发布时间】:2011-06-04 15:07:57
【问题描述】:

我正在寻找一种允许我阅读收到的电子邮件的解决方案。目前我能想到的三种方法是:

  1. 创建解析电子邮件的电子邮件服务器
  2. 挂钩到现有的交换服务器
  3. 连接到已使用电子邮件帐户设置的 Outlook

最好的方法是什么?以及如何实施它?

谢谢

【问题讨论】:

  • 我认为这真的取决于您打算如何处理电子邮件。如果您正在创建 Web 应用程序,那么轮询或使用服务接收传入的电子邮件会有所帮助。如果您确实想从 Outlook 的角度与电子邮件进行交互,那么构建一个插件会有所帮助。
  • @Steve 我希望能够阅读邮件(带附件),对其进行解析,然后发送自动回复。

标签: c# email mail-server


【解决方案1】:

如果您已经将 Exchange 服务器作为邮箱主机,我建议您通过 IMAP(首选)或 POP 访问来利用它。最近我开发了一个通过AfterLogic's MailBee.NET IMAP component访问指定邮箱的解决方案,我认为值得推荐。他们有标准的试用版和合理的价格。此外,如果你走这条路,POP 或 IMAP 自动化足够灵活,几乎可以与任何邮箱服务器平台一起使用;它不必局限于 Exchange 环境。

还有免费的 .NET IMAP 组件也可以完成这项工作。在我有限的研究中,我发现免费的替代品并不能完全满足我的所有要求或不那么容易学习,但您的情况可能会有所不同。为了完整起见,以下是我在决定将钱花在 MailBee 上之前考虑过的替代/免费 IMAP 库列表:

解决您问题的第二部分...我最近的项目中的实现涉及编写一个非常简单的控制台应用程序,该应用程序引用 MailBee.NET IMAP 库。控制台应用程序有一个标准配置文件并接受命令行参数作为参数。我们根据流程需要定义 Windows 计划任务来运行控制台应用程序。我相信您可以通过任何其他方式做到这一点,但这是满足我们需求的最简单方法。

【讨论】:

  • MailBee +1,我们也使用它。
  • 鉴于上面的 cmets,我会说这个答案很棒,尽管不要忘记有一些方法可以直接发送电子邮件而无需轮询。您可以设置一个邮件服务器以将电子邮件作为 HTTP 请求发送或使用第三方服务来执行此操作(我不会在这里提及任何内容,因为我运行了一个,但我相信您可以找到它们)
【解决方案2】:

我知道这是一个较旧的线程,但我想添加一个指向名为 ImapX2 的开源 Imap 库的链接:http://imapx.codeplex.com/

我尝试了这个线程中的大多数链接,但都取得了不同程度的成功,但我发现 ImapX2 库根据我的需要工作得最好。

【讨论】:

    【解决方案3】:

    为此使用现有的 IMAP 服务器和 IMAP component

    在我看来,创建自己的 IMAP 服务器存在很大的安全风险。

    有免费组件,但大多数都存在国家字符和“不标准”电子邮件消息的问题......并且没有任何支持(LumiSoft.Net 已被废弃近 2 年)

    using(Imap imap = new Imap())
    {
        imap.Connect("imap.server.com");
        imap.Login("user", "password");
    
        imap.SelectInbox();
        List<long> uidList = imap.Search(Flag.Unseen);
        foreach (long uid in uidList)
        {
            IMail email = new MailBuilder()
                .CreateFromEml(imap.GetMessageByUID(uid));
            Console.WriteLine(email.Subject);
            Console.WriteLine(email.Attachments.Count);
        }
        imap.Close();
    }
    

    Mail.dll 还包含 SMTP 组件和template engine,因此您可以轻松发送回复。

    免责声明:我参与了这个商业产品的开发。

    【讨论】:

      猜你喜欢
      • 2022-01-23
      • 1970-01-01
      • 2011-08-18
      • 2011-03-14
      • 2020-02-20
      • 2014-05-13
      • 1970-01-01
      • 2022-10-24
      • 1970-01-01
      相关资源
      最近更新 更多