MailKit: выдает сбой аутентификации при вызове метода Authenticate из класса Pop3Client - PullRequest
0 голосов
/ 07 октября 2019

Я использую 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;
}

У кого-нибудь есть идеи?

1 Ответ

1 голос
/ 07 октября 2019

Я знаю, это звучит очевидно, но есть вероятность, что вы вводите неправильное имя пользователя и / или пароль. Вот что говорит ошибка.

Вы можете убедиться в этом, посмотрев файл журнала:

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

Может быть, вы можете попробовать создать новый Yahoo! Учетная запись электронной почты, которая не может аутентифицироваться так же, как ваша настоящая учетная запись, и дает мне имя пользователя / пароль для этой новой учетной записи, чтобы я мог отладить проблему?

Содержит ли ваше имя пользователя или пароль не-ASCII символы? Как насчет знаков препинания?

Если вы хотите, чтобы я в этом разбирался, мне нужно знать, что такое имя пользователя / пароль и что посылает MailKit в случае, если он отправляет неправильные строки (уверен, что нет, но явсе равно разбираюсь)Если вы не дадите мне эту информацию, я не смогу диагностировать проблему.

...