Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.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# MailKit:从Pop3Client类调用Authenticate方法时引发身份验证失败_C#_Pop3_Mailkit_.net Core 3.0 - Fatal编程技术网

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

C# MailKit:从Pop3Client类调用Authenticate方法时引发身份验证失败,c#,pop3,mailkit,.net-core-3.0,C#,Pop3,Mailkit,.net Core 3.0,我正在使用发送和接收电子邮件。但是,当我尝试获取电子邮件时,会出现身份验证失败错误。这是我的密码: using MailKit.Net.Pop3; using MimeKit; public List<Email> GetEmails() { using var emailClient = new Pop3Client(); emailClient.Connect("pop.mail.yahoo.com", 995, true); emailClient.A

我正在使用发送和接收电子邮件。但是,当我尝试获取电子邮件时,会出现
身份验证失败
错误。这是我的密码:

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;
}
使用MailKit.Net.Pop3;
使用MimeKit;
公共列表GetEmails()
{
使用var emailClient=new Pop3Client();
emailClient.Connect(“pop.mail.yahoo.com”,995,true);
emailClient.AuthenticationMechanisms.Remove(“XOAUTH2”);//对这行进行注释没有帮助。
emailClient.Authenticate(“电子邮件”、“密码”);//此行引发“身份验证失败”异常。
var=新列表();
对于(int i=0;i<10;i++)
{
var message=emailClient.GetMessage(i);
var emailMessage=新电子邮件
{
Content=message.TextBody,
主题=消息。主题
};
emails.Add(emailMessage);
}
回复邮件;
}

有人知道吗?

我知道这听起来很明显,但很可能是您提供了错误的用户名和/或密码。这就是错误所说的

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

var emailClient = new Pop3Client(new ProtocolLogger("pop3.log"))
也许你可以尝试创建一个新的雅虎!无法像真实帐户一样进行身份验证的邮件帐户,并为我提供该新帐户的用户名/密码,以便我可以调试该问题

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


如果你想让我深入了解这一点,我需要知道用户名/密码是什么,以及MailKit发送的是什么,以防它发送了错误的字符串(很确定不是,但我还是会研究它)。如果你不给我这些信息,我就无法诊断这个问题。

stacktrace:
在MailKit.Net.Pop3.Pop3Client.d_82.MoveNext()在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()在System.Runtime.CompilerServices.TaskWaiter.ThrowForOnSuccess(任务任务)在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)在System.Runtime.CompilerServices.TaskAwaiter.GetResult()在MailKit.Net.Pop3.Pop3Client.Authenticate(编码编码、ICredentials凭据、取消令牌取消令牌)
在MailKit.MailService.Authenticate(编码、字符串用户名、字符串密码、CancellationToken CancellationToken)位于MailKit.MailService.Authenticate(字符串用户名、字符串密码、CancellationToken CancellationToken)
谢谢@jstedfast,但我用不同的值尝试了20多次,例如:1-user:myId,pass:myPass,2-myId@yahoo.com、密码:myPass等。无论如何,我将使用其他凭据重试。我更改了密码并使用了一个简单的密码,但问题仍然存在。日志文件:
已连接到pops://pop.mail.yahoo.com:995/ s:+OK Hello from jpop-0.1 C:CAPA S:+OK CAPA列表如下S:IMPLEMENTATION jpop-0.1 S:EXPIRE-NEVER S:Pipeling S:RESP-CODES S:TOP S:UIDL S:USER S:SASL PLAIN XOAUTH2 S:.C:AUTH PLAIN S:+C:AGVoc20yMDIwADEyMzQ1OTg3NjU=S:-错误[SYS/TEMP]服务器错误-请稍后重试。C:用户ehsm2020 S:+需要确定密码。C:传递1234598765 S:-错误[SYS/TEMP]服务器错误-请稍后再试。
用户名字符串的正确格式为
username@yahoo.com
。您收到的错误表示服务器出现临时错误,提示您稍后再试。我建议您按照服务器给您的指示操作。您可能触发了某种安全措施正在将您帐户的登录尝试列入黑名单,因为您已用尽重试限制。这是我第一次尝试连接到我的新邮件,因此我认为此错误与大量登录无关。我也尝试了
username@yahoo.com
正如我在第一条评论中提到的,还有一个问题……您可以使用Thu登录吗安德伯德?我打赌你不能。