MailKit:从Pop3Client类调用Authenticate方法时引发身份验证失败

问题描述 投票:0回答:1

我正在使用MailKit发送和接收电子邮件。但是当我尝试获取电子邮件时,出现Authentication Failed错误。这是我的代码:

using MailKit.Net.Pop3;
using MimeKit;

public List<Email> GetEmails()
{
    using var emailClient = new Pop3Client();
    emailClient.Connect("pop.mail.yahoo.com", 995, true);
    emailClient.AuthenticationMechanisms.Remove("XOAUTH2"); //commenting this line won't help.
    emailClient.Authenticate("email", "password"); // this line throws 'Authentication Failed' exception.

    var emails = new List<Email>();
    for (int i = 0; i < 10; i++)
    {
        var message = emailClient.GetMessage(i);
        var emailMessage = new Email
        {
            Content = message.TextBody,
            Subject = message.Subject
        };
        emails.Add(emailMessage);
    }

    return emails;
}

有人有什么想法吗?

c# pop3 mailkit .net-core-3.0
1个回答
1
投票

我知道这听起来很明显,但是很可能您输入的用户名和/或密码错误。这就是错误的意思。

您可以通过查看日志文件来验证:

var emailClient = new Pop3Client(new ProtocolLogger("pop3.log"))

也许您可以尝试创建新的Yahoo!与您的真实帐户一样无法通过身份验证的邮件帐户,并给我该新帐户的用户名/密码,以便我可以调试问题?

您的用户名或密码是否包含非ASCII字符?标点符号如何?

[如果您希望我对此进行深入研究,我需要知道用户名/密码是什么,以及MailKit在发送错误字符串时会发送什么(肯定不是,但我还是会研究它)。如果您不提供该信息,则无法诊断问题。

© www.soinside.com 2019 - 2024. All rights reserved.