在C#中访问Imap

时间:2009-03-21 23:09:25

标签: c# imap

是否有内置方法可以在C#中访问Imap服务器(使用SSL),还是有一个好的免费库?

6 个答案:

答案 0 :(得分:86)

我一直在寻找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页面以获取最新版本和一些更好的代码示例。

答案 1 :(得分:33)

希望对某些人有用,你可能想看看我的去吧 在它:

S22.Imap

虽然.NET有一些很好的,记录良好的IMAP库 可用,没有一个是免费的个人,更不用说商业用途......和 我对大多数被遗弃的免费替代品感到满意 我找到了。

S22.Imap支持IMAP IDLE通知以及SSL和部分消息 取。我已经付出了一些努力来制作documentation并保持 它是最新的,因为我发现的项目,文档往往很少 或者不存在。

如果您遇到任何问题,请随时尝试一下,让我知道!

答案 2 :(得分:17)

IMAP没有.NET框架支持。 你需要使用一些第三方组件。

试试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);
}

请注意,这是我创建的商业产品。

您可以在此处下载:https://www.limilabs.com/mail

答案 3 :(得分:14)

MailSystem.NET包含您对IMAP4的所有需求。这是免费的开源。

(我参与了这个项目)

答案 4 :(得分:4)

答案 5 :(得分:2)

我自己没试过,但这是一个你可以尝试的免费库(我不太确定这部分的SSL部分):

http://www.codeproject.com/KB/IP/imaplibrary.aspx

此外,还有xemail,它具有SSL参数:

http://xemail-net.sourceforge.net/

[编辑]如果您(或客户)有专业邮件客户的钱,这个帖子有一些很好的建议:

Recommendations for a .NET component to access an email inbox