是否有内置的方法来访问C#中的Imap服务器(使用SSL),还是有一个好的免费库?
我一直在寻找IMAP解决方案一段时间,经过不少尝试后,我将选择AE.Net.Mail.
您可以通过转到"代码"选项卡并单击小的"下载"图标来下载代码.由于作者未提供任何预先构建的下载,您必须自己编译.(我相信你可以通过NuGet获得它).bin /文件夹中不再有.dll.
没有文档,我认为这是一个缺点,但我能够通过查看源代码(yay for open source!)和使用Intellisense来提升它.以下代码专门连接到Gmail的IMAP服务器:
// Connect to the IMAP server. The 'true' parameter specifies to use SSL // which is important (for Gmail at least) ImapClient ic = new ImapClient("imap.gmail.com", "name@gmail.com", "pass", ImapClient.AuthMethods.Login, 993, true); // Select a mailbox. Case-insensitive ic.SelectMailbox("INBOX"); Console.WriteLine(ic.GetMessageCount()); // Get the first *11* messages. 0 is the first message; // and it also includes the 10th message, which is really the eleventh ;) // MailMessage represents, well, a message in your mailbox MailMessage[] mm = ic.GetMessages(0, 10); foreach (MailMessage m in mm) { Console.WriteLine(m.Subject); } // Probably wiser to use a using statement ic.Dispose();
请务必查看Github页面以获取最新版本和一些更好的代码示例.
希望对某些人有用,你可能想看看我的情况:
S22.Imap
虽然有几个很好的,记录良好的IMAP库可用于.NET,但它们都不是免费的个人,更不用说商业用途了......而我对我发现的大部分被遗弃的免费替代品并不满意.
S22.Imap支持IMAP IDLE通知以及SSL和部分消息提取.我已经付出了一些努力来生成文档并使其保持最新,因为我发现的项目通常是文档稀疏或不存在.
如果您遇到任何问题,请随时尝试一下,让我知道!
IMAP没有.NET框架支持.您需要使用一些第三方组件.
试试https://www.limilabs.com/mail,它非常实惠且易于使用,它还支持SSL:
using(Imap imap = new Imap()) { imap.ConnectSSL("imap.company.com"); imap.Login("user", "password"); imap.SelectInbox(); Listuids = imap.SearchFlag(Flag.Unseen); foreach (long uid in uids) { string eml = imap.GetMessageByUID(uid); IMail message = new MailBuilder() .CreateFromEml(eml); Console.WriteLine(message.Subject); Console.WriteLine(message.TextDataString); } imap.Close(true); }
请注意,这是我创建的商业产品.
您可以在此处下载:https://www.limilabs.com/mail.
MailSystem.NET包含您对IMAP4的所有需求.它是免费和开源的.
(我参与了这个项目)
尝试使用该库:https: //imapx.codeplex.com/
该库免费,开源,并有这样的例子:https: //imapx.codeplex.com/wikipage?title = Sample%20code%20for%20get%20messages%20from%20your%20inbox