Truy cập vào link sau để lấy password: https://myaccount.google.com/security
Sau đó chọn 2-Step Verification, rồi chọn App passwords, tạo App Name rồi copy lại password
Thêm vào appsettings.json thông tin email như sau
{
"MailSettings": {
"Host": "smtp.gmail.com",
"Port": 587,
"Email": "refactortop@gmail.com",
"Password": "wbamanbphrtxhfat",
"DisplayName": "Web Shop"
}
}
Khai báo cấu hình class MailSettings với appsettings.json
public class MailSetting{
public string Host { get; set; } = null!;
public int Port { get; set; }
public string Email { get; set; } = null!;
public string Password { get; set; } = null!;
public string DisplayName { get; set; } = null!;
}
builder.Services.Configure<MailSetting>(builder.Configuration.GetSection("Mail:Gmail"));
Tạo hàm SendEmail
public static async Task<bool> SendEmail(MailSetting setting, string email, string subject, string body){
try{
using SmtpClient smtpClient = new SmtpClient{
Host = setting.Host,
EnableSsl = true,
Credentials = new NetworkCredential(setting.Email, setting.Password)
};
MailAddress mailFrom = new MailAddress(setting.Email, displayName: setting.DisplayName);
MailMessage message = new MailMessage{ Body = body, Subject = subject, From = mailFrom, IsBodyHtml = true};
message.To.Add(new MailAddress(email));
await smtpClient.SendMailAsync(message);
return true;
}
catch(Exception ex){
System.Console.WriteLine(ex.Message);
return false;
}
}
public class AuthController : Controller{
MailSetting setting;
public AuthController(IConfiguration configuration, IOptions<MailSetting> options){
setting = options.Value;
}
}