0
MailRepository rep = new MailRepository("imap.mail.yahoo.com", 993, true, @"xxxxx@yahoo.com", "*******");
foreach (Message email in rep.GetUnreadMails("Inbox"))
{
    //Console.WriteLine(string.Format("<p>{0}: {1}</p><p>{2}</p>", email.From, email.Subject, email.BodyHtml.Text));
    Console.WriteLine(email.From);
    Console.WriteLine(email.Subject);
    Console.WriteLine(email.BodyHtml.Text);
    if (email.Attachments.Count > 0)
    {
        foreach (MimePart attachment in email.Attachments)
        {
            Console.WriteLine(string.Format("<p>Attachment: {0} {1}</p>", attachment.ContentName, attachment.ContentType.MimeType));
        }
    }
}

以上是我的代码,用于读取邮件内容。当我尝试使用 gmail 端口时,它工作正常,但在使用 yahoo 或其他的时候。它不允许我阅读邮件抛出异常。有没有其他来源。请指导我

4

1 回答 1

0

首先,检查您的凭据是否正确。

其次,在构造函数中放置一个 try catch 以查看是否可以获得有关未处理异常的更多信息:

public MailRepository(string mailServer, int port, bool ssl, string login, string password)
{
  try {
    if (ssl) {
      Client.ConnectSsl(mailServer, port);
    }
    else {
      Client.Connect(mailServer, port);
    }
  Client.Login(login, password);
  }
  catch(Exception ex)
  {
     //Check the exception details here
  }
}

第三MailRepository该类的起源似乎来​​自这里,它使用Imap4Client其他人抱怨的实现不适用于 Yahoo: Connecting to yahoo email with IMAP4 MailSystem.NET

接受的答案建议使用ImapX 2 - .NET 的跨平台 IMAP 库来处理 GMail、Yahoo 等。

于 2016-07-21T06:10:42.660 回答