我尝试了几个库,最终选择了来自http://www.lesnikowski.com/mail/的Lesnikowski Mail。它的对象模型非常适合电子邮件的实际工作方式;我使用过的其他库试图隐藏细节,但最终只是阻碍了进展。Lesnikowski库足够强大,可以在数百个安装中工作,并与许多不同类型的POP3服务器通信。
我们的 Rebex Secure POP3 可能适合您。它已经在 自 2006 年以来得到积极开发。
以下代码展示了如何从 POP3 服务器下载所有消息并将其保存到数据库中:
// create client, connect and log in
Pop3 client = new Pop3();
client.Connect("pop3.example.org");
client.Login("username", "password");
// get message list - full headers
Pop3MessageCollection messageList = client.GetMessageList();
foreach (Pop3MessageInfo messageInfo in messageList)
{
// download message
MailMessage message = client.GetMailMessage(messageInfo.SequenceNumber);
// store it to the database...
// depends on your DB structure.
// message.Save(stream) or message.ToByteArray() would be handy
...
}
client.Disconnect();
Indy库曾经是Delphi开发人员进行套接字编程(包括SMTP和POP3)的老牌选择。现在已经移植到C#并开源。你可能想要查看一下。但需要注意的是:目前没有太多的文档可用,但大部分代码都相当自解释...
我可以推荐http://www.chilkatsoft.com/及其邮件组件。
它不仅可以让您发送电子邮件(纯文本/加密/HTML),还具有POP3 / IMAP组件。有很多不同语言的示例,如果需要支持,他们也非常好。
它还提供30天免费试用(完全功能)。
MailKit.Net是微软官方推荐的SmtpClient替代品,同时也支持Pop3和Imap。可以通过nuget package进行下载。