Использование SendGrid и других сервисов рекомендуется на производстве, так как эти сервисы настроены для правильного масштабирования и могут обрабатывать отправку миллионов писем одновременно.
Тем не менее, я действительно ценю настройку электронной почты SMTP при запуске приложения в dev.
Таким образом, по большей части вы можете следовать документам при настройке подтверждения по электронной почте. Вам необходимо изменить реализацию EmailSender для использования вашего SMTP-сервера.
using System.Net;
using System.Net.Mail;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Identity.UI.Services;
namespace YourApp
{
public class DevEmailSender : IEmailSender
{
public Task SendEmailAsync(string email, string subject, string htmlMessage)
{
var client = new SmtpClient("yoursmtpserver") {
UseDefaultCredentials = false,
Credentials = new NetworkCredential("yourusername", "yourpassword")
};
var mailMessage = new MailMessage {
From = new MailAddress("account-security-noreply@yourdomain.com")
};
mailMessage.To.Add(email);
mailMessage.Subject = subject;
mailMessage.Body = htmlMessage;
return client.SendMailAsync(mailMessage);
}
}
}
Тогда вам просто нужно настроить это как службы в ConfigureServices
в Startup.cs
:
services.AddTransient<IEmailSender, DevEmailSender>();
Настройка SMTP-сервера здесь выходит за рамки, но если у вас есть, например, gmail, вы можете следовать этому сообщению в блоге , как это сделать. Опять же, имейте в виду, что это не производственная стратегия, и она фактически открывает вашу учетную запись gmail для уязвимостей безопасности, которые Google выделит вам при настройке. Однако если вы используете одноразовую учетную запись, это может быть быстрым и грязным решением для получения подтверждения по электронной почте с помощью ASP.NET Core Identity.