6

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

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

做这个的最好方式是什么?以及如何实施它?

谢谢

4

3 回答 3

9

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

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

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

于 2011-01-06T12:27:51.707 回答
5

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

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

于 2013-01-25T22:41:53.193 回答
2

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

在我看来,创建自己的 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 组件和模板引擎,因此您可以轻松发送回复。

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

于 2011-01-18T11:23:44.173 回答