Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用pop3 c阅读来自Yahoo mail的最新电子邮件#_C#_Pop3_Email Client_Yahoo Mail_Openpop - Fatal编程技术网

C# 如何使用pop3 c阅读来自Yahoo mail的最新电子邮件#

C# 如何使用pop3 c阅读来自Yahoo mail的最新电子邮件#,c#,pop3,email-client,yahoo-mail,openpop,C#,Pop3,Email Client,Yahoo Mail,Openpop,我想从我的雅虎邮件帐户中阅读电子邮件。我正在使用“OpenPop.Pop3”从我的yahoo mail帐户读取电子邮件,我正在使用以下代码:- using OpenPop.Pop3; public DataTable ReadEmailsFromId() { DataTable table = new DataTable(); try { using (Pop3Client client = new Pop3Client()) {

我想从我的雅虎邮件帐户中阅读电子邮件。我正在使用“OpenPop.Pop3”从我的yahoo mail帐户读取电子邮件,我正在使用以下代码:-

using OpenPop.Pop3;    

public DataTable ReadEmailsFromId()
{
    DataTable table = new DataTable();
    try
    {
        using (Pop3Client client = new Pop3Client())
        {
            client.Connect("pop.mail.yahoo.com", 995, true); //For SSL                
            client.Authenticate("Username", "Password", AuthenticationMethod.UsernameAndPassword);

            int messageCount = client.GetMessageCount();
            for (int i = messageCount; i > 0; i--)
            {
                table.Rows.Add(client.GetMessage(i).Headers.Subject, client.GetMessage(i).Headers.DateSent);
                string msdId = client.GetMessage(i).Headers.MessageId;
                OpenPop.Mime.Message msg = client.GetMessage(i);
                OpenPop.Mime.MessagePart plainTextPart = msg.FindFirstPlainTextVersion();
                string message = plainTextPart.GetBodyAsText();                           
            }
        }
    }
return table;
}
同样的代码可以访问其他邮件,如gmail、outlook,但在处理yahoo mail邮件时,我可以获得主题、日期,但在邮件部分,即:

OpenPop.Mime.Message msg = client.GetMessage(i);
OpenPop.Mime.MessagePart plainTextPart = msg.FindFirstPlainTextVersion();
它的给定错误“用于从中检索响应的流已关闭”

以下是“StackTrace”:

如果我遗漏了什么或做错了什么,请告诉我。
此外,我还使用POP使yahoo mail电子邮件可以在任何地方访问。

首先,根据您的代码片段,您将下载每条邮件4次。那会非常慢

至于你为什么会出错,我不知道。我没有使用以下命令得到错误:

at OpenPop.Pop3.Pop3Client.IsOkResponse(String response)
at OpenPop.Pop3.Pop3Client.SendCommand(String command)
at OpenPop.Pop3.Pop3Client.Disconnect()
at OpenPop.Pop3.Pop3Client.Dispose(Boolean disposing)
at OpenPop.Pop3.Disposable.Dispose()
using MimeKit;
using MailKit;
using MailKit.Net.Pop3;    

public DataTable ReadEmailsFromId()
{
    DataTable table = new DataTable();
    try
    {
        using (Pop3Client client = new Pop3Client())
        {
            client.Connect("pop.mail.yahoo.com", 995, true); //For SSL                
            client.Authenticate("Username", "Password");

            for (int i = client.Count - 1; i >= 0; i--)
            {
                var msg = client.GetMessage (i);

                table.Rows.Add(msg.Subject, msg.Date);
                string msdId = msg.MessageId;
                string message = msg.TextBody;
            }
        }
    }
return table;
}