我正在寻找一个允许我阅读传入电子邮件的解决方案。我现在想到的三种方法是:
最好的方法是什么?一个人如何实施呢?
由于
答案 0 :(得分:9)
如果您已经将Exchange服务器作为邮箱主机处理,我建议通过IMAP(首选)或POP访问来利用它。最近我开发了一个通过AfterLogic's MailBee.NET IMAP component访问指定邮箱的解决方案,我认为值得推荐。他们有标准的试用版和合理的价格。此外,如果你走这条路线,POP或IMAP自动化足够灵活,几乎可以与任何邮箱服务器平台一起使用;它不必限于Exchange环境。
还有免费的.NET IMAP组件也可以完成这项工作。在我的有限研究中,我发现免费替代品并不完全符合我的所有要求,或者不容易学习,但您的情况可能有所不同。为了完整起见,这里列出了我在决定在MailBee上花钱之前考虑的替代/免费IMAP库:
解决问题的第二部分......我最近的项目中的实现涉及编写一个引用MailBee.NET IMAP库的非常简单的控制台应用程序。控制台应用程序具有标准配置文件,并接受命令行参数作为参数。我们根据流程需要定义Windows计划任务以运行控制台应用程序。我相信你可以通过其他方式做到这一点,但这是满足我们需求的最简单方法。
答案 1 :(得分:5)
我知道这是一个较旧的主题,但我想添加一个名为ImapX2的开源Imap库的链接:http://imapx.codeplex.com/
我尝试了这个帖子中的大部分链接都取得了不同程度的成功,但我发现ImapX2库可以根据我的需要发挥最佳效果。
答案 2 :(得分:2)
使用现有的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,因此您可以轻松发送回复。
免责声明:我参与了此商业产品的开发。