当前位置:  开发笔记 > 编程语言 > 正文

在C#中访问Imap

如何解决《在C#中访问Imap》经验,为你挑选了5个好方法。

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



1> Dominic K..:

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


为什么人们去写这样的好东西,然后基本上没有文件?我不明白
它甚至不会建立!:(
@jase - 你是对的!我不确定问题究竟是什么(看起来像属性文件?)但我能够通过将所有相关文件复制到新的类项目中来进行编译.无论如何,我为您构建了库,因此您可以将它们作为.dll引用添加到您的项目中.http://dl.dropbox.com/u/8037514/AE.Net.Mail.zip正如免责声明,这附带原始项目附带的任何保证和版权,如果它爆炸,我不负责,等等.祝你好运!
+1我刚下载并编译了VS2010中*AE.Net.Mail*的最新提交,它运行得很好.感谢提示,我有比ImapX更好的经验.代码[这里](http://www.woodoweb.com/index_files/archive-oct-2011.html)给了我一个很好的快速启动.
它可以工作,但在较新的版本中,构造函数应如下所示:ImapClient ic = new ImapClient("imap.gmail.com","name@gmail.com","pass",AuthMethods.Login,993,true);

2> 小智..:

希望对某些人有用,你可能想看看我的情况:

S22.Imap

虽然有几个很好的,记录良好的IMAP库可用于.NET,但它们都不是免费的个人,更不用说商业用途了......而我对我发现的大部分被遗弃的免费替代品并不满意.

S22.Imap支持IMAP IDLE通知以及SSL和部分消息提取.我已经付出了一些努力来生成文档并使其保持最新,因为我发现的项目通常是文档稀疏或不存在.

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



3> Pawel Lesnik..:

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 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.


下载并在几分钟内启动并运行:)非常好
工作可爱,谢谢!
伟大的组件,就像一个魅力.测试试用版(几乎完全正常)几周,然后购买了许可证.

4> 小智..:

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

(我参与了这个项目)


@alhambraeidos和@Denis是对的.该项目几乎已经死亡.在VS 2008或2010中,样品都没有开箱即用.我将它们上转换然后不得不涉及16个参考问题.文档已过期,CodePlex页面未处理过去一年或更长时间内的任何问题/评论.我放弃了,最后购买了Mail.dll(不,我不隶属于他们).
这个项目似乎已经死了.不适用于IMAP4,没有更新,也没有作者的答案
该项目是否活跃?最新版本日期:2009年12月14日星期一上午9:00
项目已经死了,IDLE无法正常运行http://mailsystem.codeplex.com/workitem/23586

5> 小智..:

尝试使用该库:https: //imapx.codeplex.com/

该库免费,开源,并有这样的例子:https: //imapx.codeplex.com/wikipage?title = Sample%20code%20for%20get%20messages%20from%20your%20inbox

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有