Невозможно отправить письмо для подтверждения в ASP. NET Core 3.1 MVC - PullRequest
0 голосов
/ 11 января 2020

В файле startup.cs у меня есть:

 services.AddTransient<IEmailSender, EmailSender>();
 services.Configure<AuthMessageSenderOptions>(Configuration);

В EmailSender класс у меня есть:

public Task SendEmailAsync(string email, string subject, string message)
{
    return Execute( subject, message, email);
}

public Task Execute( string subject, string message, string email)
{
    var apiKey = Environment.GetEnvironmentVariable("KEY");
    //var client = new SendGridClient(apiKey);
    var client = new SendGridClient(apiKey);
    var msg = new SendGridMessage()
        {
            From = new EmailAddress("Joe@contoso.com", Options.SendGridUser),
            Subject = subject,
            PlainTextContent = message,
            HtmlContent = message
        };
    msg.AddTo(new EmailAddress(email));

    // Disable click tracking.
    // See https://sendgrid.com/docs/User_Guide/Settings/tracking.html
    msg.SetClickTracking(false, false);

    return client.SendEmailAsync(msg);
}

Я получаю эту страницу вместо отправки почты. Что касается документации Microsoft, у меня нет страницы / Identity / Account / Manage / PersonalData.

1 Ответ

0 голосов
/ 11 января 2020

Ранее не использовал SendGrid, но, исходя из URL, я бы сказал, что вам необходимо завершить регистрацию пользователя для своей учетной записи poudyalrupak2@gmail.com, прежде чем можно будет отправлять электронные письма: https://sendgrid.com/docs/ui/account-and-settings/verifying-your-account/

Кроме того, в качестве небольшого улучшения в вашем коде, вы должны сделать любой метод, который вызывает asyn c методов asyn c

public async Task Execute( string subject, string message, string email)

, а затем ждут при любых вызовах asyn c:

return await client.SendEmailAsync(msg);
...