yahooメールアカウントからメールを読みたいです。「OpenPop.Pop3」を使用して、yahoo メール アカウントからメールを読み込んでいます。以下のコードを使用しています。
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 メールの電子メールを操作しているときに、件名、日付を取得できますが、メッセージ部分に来ると、次のようになります。
OpenPop.Mime.Message msg = client.GetMessage(i);
OpenPop.Mime.MessagePart plainTextPart = msg.FindFirstPlainTextVersion();
「応答の取得に使用されたストリームが閉じられました」というエラーが表示されます。
「スタックトレース」は次のとおりです。
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()
何かが足りない、または何か間違っている場合はお知らせください。また、POP を使用してどこからでもアクセスできる yahoo メールのメールを作成しました。