#c# #visual-studio #email #.net-core #sendgrid
# #c# #visual-studio #Адрес электронной почты #.net-ядро #отправить сетку
Вопрос:
Я пытаюсь реализовать .NET CORE API sendgrid, следуя руководству:
Но я не могу отправлять электронные письма.
public Task SendEmailAsync(string email, string subject, string message)
{
return Execute(Options.SendGridKey, subject, message, email);
}
public Task Execute(string apiKey, string subject, string message, string email)
{
var client = new SendGridClient(apiKey);
var msg = new SendGridMessage()
{
From = new EmailAddress("myemail@email.it", 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);
}
Код не выдает ошибку, но не отправляет электронные письма.
У вас есть какие-либо предложения?
Спасибо
Комментарии:
1. Если вы используете бесплатный тарифный план SendGrid, имейте в виду, что некоторые поставщики услуг электронной почты могут блокировать запросы с IP-адресов Azure, которые отправляют эти электронные письма.
2. Спасибо за ответ, да, я использую бесплатный тарифный план, являются ли Outlook и gmail одними из тех, которые вызывают проблемы? потому что я пробовал как почтовый ящик office365, так и gmail. Спасибо
Ответ №1:
Для меня это выглядит хорошо. Я бы проверил правильность вашего ключа API. Можете ли вы поделиться кодом, который фактически вызывает этот метод? Очевидно, исключите API из соображений безопасности.
Комментарии:
1. Спасибо за ответ, я использую регистр Identity Controrrel, я не могу полностью согласиться с кодом, потому что я превышаю длину комментария.
2.
public async Task<IActionResult> OnPostAsync(string returnUrl = null) { if (ModelState.IsValid) { { await _emailSender.SendEmailAsync(Input.Email, "Conferma la tua email", $"Conferma il tuo account < a href='{HtmlEncoder.Default.Encode(callbackUrl)}'> facendo clic qui </a>."); } } return Page(); }
3. Спасибо, вы установили точку останова для этого метода, чтобы узнать, попадает ли он вообще?