如何通过c#控制台应用程序读取邮件内容

本文关键字:读取 应用程序 何通过 控制台 | 更新日期: 2023-09-27 17:58:02

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端口时,它运行得很好,但当我去雅虎或其他公司时。它不允许我读取邮件抛出异常。还有其他来源吗。请指导我

如何通过c#控制台应用程序读取邮件内容

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

第二步,在构造函数中放入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:使用IMAP4 MailSystem.NET 连接到雅虎电子邮件

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