为了账号安全,请及时绑定邮箱和手机立即绑定

使用c#.net库检查来自gmail服务器的IMAP消息

/ 猿问

使用c#.net库检查来自gmail服务器的IMAP消息

跃然一笑 2019-11-14 15:27:19

是否有人在使用.Net框架的示例代码中通过IMAP SSL连接到googlemail服务器,以检查新电子邮件?



查看完整描述

3 回答

?
临摹微笑

您可能会对此处列出的URL感兴趣


http://www.codeplex.com/InterIMAP


这是对


http://www.codeproject.com/KB/IP/imaplibrary.aspx?fid=91819&df=90&mpp=25&noise=5&sort=Position&view=Quick&fr=26&select=2562067#xx2562067xx


查看完整回答
反对 回复 2019-11-14
?
动漫人物

我建议您查看MailKit,因为它可能是那里最强大的邮件库,并且是开源(MIT)。


关于MailKit的令人敬畏的事情之一是所有网络API都是可取消的(我在其他任何IMAP库中都看不到这种东西)。


这也是我所知道的唯一支持消息线程化的库。


using System;

using System.Net;

using System.Threading;


using MailKit.Net.Imap;

using MailKit.Search;

using MailKit;

using MimeKit;


namespace TestClient {

    class Program

    {

        public static void Main (string[] args)

        {

            using (var client = new ImapClient ()) {

                using (var cancel = new CancellationTokenSource ()) {

                    client.Connect ("imap.gmail.com", 993, true, cancel.Token);


                    // If you want to disable an authentication mechanism,

                    // you can do so by removing the mechanism like this:

                    client.AuthenticationMechanisms.Remove ("XOAUTH");


                    client.Authenticate ("joey", "password", cancel.Token);


                    // The Inbox folder is always available...

                    var inbox = client.Inbox;

                    inbox.Open (FolderAccess.ReadOnly, cancel.Token);


                    Console.WriteLine ("Total messages: {0}", inbox.Count);

                    Console.WriteLine ("Recent messages: {0}", inbox.Recent);


                    // download each message based on the message index

                    for (int i = 0; i < inbox.Count; i++) {

                        var message = inbox.GetMessage (i, cancel.Token);

                        Console.WriteLine ("Subject: {0}", message.Subject);

                    }


                    // let's try searching for some messages...

                    var query = SearchQuery.DeliveredAfter (DateTime.Parse ("2013-01-12"))

                        .And (SearchQuery.SubjectContains ("MailKit"))

                        .And (SearchQuery.Seen);


                    foreach (var uid in inbox.Search (query, cancel.Token)) {

                        var message = inbox.GetMessage (uid, cancel.Token);

                        Console.WriteLine ("[match] {0}: {1}", uid, message.Subject);

                    }


                    client.Disconnect (true, cancel.Token);

                }

            }

        }

    }

}


查看完整回答
反对 回复 2019-11-14
?
饮歌长啸

作为上述项目的作者,我可以说是的,它确实支持SSL。


我目前正在开发该库的新版本,该版本将完全异步以提高其与IMAP服务器交互的速度。


该代码虽然不完整,但是可以与原始同步库(也支持SSL)一起从上面链接的代码plex站点下载。


查看完整回答
反对 回复 2019-11-14

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信