在C#中访问Imap
有没有一个内置的方法来访问C#中的Imap服务器(SSL)或有一个很好的免费库?
我一直在寻找一个IMAP解决scheme,在尝试了几个之后,我将使用AE.Net.Mail 。
您可以通过转到“代码”选项卡并单击小的“下载”图标来下载代码。 由于作者不提供任何预build的下载,您必须自己编译。 (我相信你可以通过NuGet得到它)。 bin /文件夹中不再有.dll文件。
没有文档,我认为这是一个缺点,但是我可以通过查看源代码(开放源代码!)和使用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和部分消息提取。 我已经花了一些努力来生成文档,并保持最新,因为通过我发现的项目,文档通常是稀疏的或不存在的。
随时尝试一下,让我知道如果你遇到任何问题!
没有.NET框架支持IMAP。 你需要使用一些第三方组件。
尝试https://www.limilabs.com/mail ,这是非常实惠和易于使用,它也支持SSL:
using(Imap imap = new Imap()) { imap.ConnectSSL("imap.company.com"); imap.Login("user", "password"); imap.SelectInbox(); List<long> uids = 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); }
请注意,这是我创build的商业产品。
你可以在这里下载: 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
我没有尝试过,但是这是一个免费的库,你可以试试(我不太确定这个版本的SSL部分):
http://www.codeproject.com/KB/IP/imaplibrary.aspx
此外,还有xemail,其中有SSL的参数:
http://xemail-net.sourceforge.net/
[编辑]如果你(或客户)有一个专业的邮件客户端的钱,这个线程有一些很好的build议:
.NET组件访问电子邮件收件箱的build议