C# pop3尝试卸载附件时出现问题-C

C# pop3尝试卸载附件时出现问题-C,c#,gmail,pop3,openpop,C#,Gmail,Pop3,Openpop,一段时间以来,我一直在寻找一段易于使用的代码,让我的C项目从gmail的电子邮件中下载一个文本文件附件。我确实看过openpop.NETlib,这是我看到的唯一一个看起来很有前途的库!有人能给我看一些完成任务的代码吗?我看了其他人使用openpop的例子,但是api在他们的例子中是不同的,可能是旧版本?提前感谢您的帮助 以下是使用my library(我的库比OpenPOP.NET高效得多)执行此操作的方法: using System; using System.Linq; using Mai

一段时间以来,我一直在寻找一段易于使用的代码,让我的C项目从gmail的电子邮件中下载一个文本文件附件。我确实看过openpop.NETlib,这是我看到的唯一一个看起来很有前途的库!有人能给我看一些完成任务的代码吗?我看了其他人使用openpop的例子,但是api在他们的例子中是不同的,可能是旧版本?提前感谢您的帮助

以下是使用my library(我的库比OpenPOP.NET高效得多)执行此操作的方法:

using System;
using System.Linq;

using MailKit.Net.Pop3;
using MailKit;
using MimeKit;

namespace TestClient {
    class Program
    {
        public static void Main (string[] args)
        {
            using (var client = new Pop3Client ()) {
                client.Connect ("pop.gmail.com", 995, true);

                // Note: since we don't have an OAuth2 token, disable
                // the XOAUTH2 authentication mechanism.
                client.AuthenticationMechanisms.Remove ("XOAUTH2");

                client.Authenticate ("joey@gmail.com", "password");

                int count = client.GetMessageCount ();
                int unknown = 0;

                for (int i = 0; i < count; i++) {
                    var message = client.GetMessage (i);

                    foreach (var attachment in message.Attachments.OfType<TextPart> ()) {
                        var fileName = attachment.FileName ?? string.Format ("unknown{0}.txt", ++unknown);

                        // Save the content of the attachment in whatever
                        // charset it is in.
                        using (var stream = File.Create (fileName))
                            attachment.ContentObject.DecodeTo (stream);
                    }
                }

                client.Disconnect (true);
            }
        }
    }
}
如果你的GMail帐户中有很多邮件,或者你只是想更高效地下载邮件,GMail支持MailKit可以利用的管道扩展


您可以使用GetMessages批量请求一系列消息,而不是一次下载一条消息,这将利用管道扩展,大大减少延迟,从而大大减少下载时间。

以下是使用my library(比OpenPOP.NET高效得多)执行此操作的方法:

using System;
using System.Linq;

using MailKit.Net.Pop3;
using MailKit;
using MimeKit;

namespace TestClient {
    class Program
    {
        public static void Main (string[] args)
        {
            using (var client = new Pop3Client ()) {
                client.Connect ("pop.gmail.com", 995, true);

                // Note: since we don't have an OAuth2 token, disable
                // the XOAUTH2 authentication mechanism.
                client.AuthenticationMechanisms.Remove ("XOAUTH2");

                client.Authenticate ("joey@gmail.com", "password");

                int count = client.GetMessageCount ();
                int unknown = 0;

                for (int i = 0; i < count; i++) {
                    var message = client.GetMessage (i);

                    foreach (var attachment in message.Attachments.OfType<TextPart> ()) {
                        var fileName = attachment.FileName ?? string.Format ("unknown{0}.txt", ++unknown);

                        // Save the content of the attachment in whatever
                        // charset it is in.
                        using (var stream = File.Create (fileName))
                            attachment.ContentObject.DecodeTo (stream);
                    }
                }

                client.Disconnect (true);
            }
        }
    }
}
如果你的GMail帐户中有很多邮件,或者你只是想更高效地下载邮件,GMail支持MailKit可以利用的管道扩展

您可以使用GetMessages批量请求一系列消息,而不是一次下载一条消息,这将利用管道扩展,大大减少延迟,从而大大缩短下载时间