Функция «Забыл письмо» не отправляет письмо - PullRequest
0 голосов
/ 01 декабря 2019

Я создаю свое первое приложение ASP.NET Core Razor Pages.

Я создал класс EmailSender, который реализует IEmailSender.

public class EmailSender : IEmailSender
{
    private readonly EmailSettings Settings;

    public EmailSender(IOptions<EmailSettings> emailSettings)
    {
        Settings = emailSettings.Value;
    }

    public async Task SendEmailAsync(string email, string subject, string htmlMessage)
    {
        using (MailMessage message = new MailMessage())
        using (SmtpClient client = new SmtpClient())
        {
            client.Host = Settings.Host;
            client.Port = Settings.Port;
            client.Credentials = new NetworkCredential(Settings.UserName, Settings.Password);
            client.EnableSsl = Settings.EnableSsl;

            message.To.Add(email);
            message.From = new MailAddress(Settings.FromAddress);
            message.Subject = subject;
            message.Body = htmlMessage;
            message.IsBodyHtml = true;

            await client.SendMailAsync(message);
        }
        await Task.CompletedTask;
    }
}

И я 'я зарегистрировал EmailSender в Startup.cs.

public void ConfigureServices(IServiceCollection services)
{

    // Default initialization...

    services.AddTransient<IEmailSender, EmailSender>();
    services.Configure<EmailSettings>(Configuration.GetSection("EmailSettings"));
}

Мой код создается без ошибок.

Используя точки останова, я вижу, что когда я запускаю приложение и нажимаю Забыливаш пароль , вызывается конструктор EmailSender, а экземпляр EmailSettings имеет ожидаемые значения. И когда я ввожу свой адрес электронной почты и нажимаю Сброс пароля , конструктор EmailSender вызывается во второй раз. Тем не менее, EmailSender.SendEmailAsync() никогда не вызывается 1023 *, и электронное письмо не отправляется.

Я убежден, что мой класс EmailSender настроен правильно, потому что вызывается конструктор. Но я не знаю, как определить причину, по которой SendEmailAsync() никогда не вызывается.

У кого-нибудь есть предложение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...