ارسال ایمیل یکی از قابلیتهای اساسی در بسیاری از برنامههای وب است. در این مقاله، به شما نشان خواهیم داد که چگونه میتوانید با استفاده از ASP.NET Core ایمیل ارسال کنید. ما از کتابخانه MailKit برای این منظور استفاده خواهیم کرد که یکی از محبوبترین و کارآمدترین کتابخانهها برای ارسال ایمیل در Asp.Net Core است.
ارسال ایمیل در برنامههای وب میتواند برای اهداف مختلفی مانند ارسال تأییدیه ثبتنام، بازنشانی رمز عبور، اعلانها و بسیاری موارد دیگر استفاده شود. ASP.NET Core با فراهم آوردن ابزارهای مناسب و انعطافپذیر، این فرآیند را سادهتر و کارآمدتر میکند.
dotnet add package MailKit
ابتدا تنظیمات SMTP سرور را در فایل appsettings.json خود اضافه کنید. این تنظیمات شامل آدرس سرور، پورت، نام کاربری و رمز عبور حساب ایمیل شما میشود.
{
"EmailSettings":
{
"SmtpServer": "smtp.gmail.com",
"SmtpPort": 587,
"SmtpUser": "your-email@gmail.com",
"SmtpPass": "your-app-password",
"SenderName": "Your Name",
"SenderEmail": "your-email@gmail.com"
}
}
یک کلاس برای نگهداری تنظیمات ایمیل ایجاد کنید.
public class EmailSettings
{
public string SmtpServer { get; set; }
public int SmtpPort { get; set; }
public string SmtpUser { get; set; }
public string SmtpPass { get; set; }
public string SenderName { get; set; }
public string SenderEmail { get; set; }
}
یک سرویس برای ارسال ایمیل ایجاد کنید که از MailKit استفاده کند.
using MailKit.Net.Smtp;
using MimeKit;
public class EmailService
{
private readonly EmailSettings _emailSettings;
public EmailService(IOptions emailSettings)
{
_emailSettings = emailSettings.Value;
}
public async Task SendEmailAsync(string toEmail, string subject, string htmlMessage)
{
var emailMessage = new MimeMessage();
emailMessage.From.Add(new MailboxAddress(_emailSettings.SenderName, _emailSettings.SenderEmail));
emailMessage.To.Add(new MailboxAddress("", toEmail));
emailMessage.Subject = subject;
var bodyBuilder = new BodyBuilder
{
HtmlBody = htmlMessage
};
emailMessage.Body = bodyBuilder.ToMessageBody();
using (var client = new SmtpClient())
{
await client.ConnectAsync(_emailSettings.SmtpServer, _emailSettings.SmtpPort, false);
await client.AuthenticateAsync(_emailSettings.SmtpUser, _emailSettings.SmtpPass);
await client.SendAsync(emailMessage);
await client.DisconnectAsync(true);
}
}
}
در Program.cs، تنظیمات ایمیل و سرویس ایمیل را به DI (Dependency Injection) اضافه کنید.
builder.Services.AddTransient<EmailService>();
builder.Services.Configure(configuration.GetSection("EmailSettings"));
در کنترلر، از سرویس ایمیل برای ارسال ایمیل استفاده کنید.
public class HomeController : Controller
{
private readonly EmailService _emailService;
public HomeController(EmailService emailService)
{
_emailService = emailService;
}
public async Task<IActionResult> SendEmail()
{
string htmlMessage = "Welcome to our service!We are glad to have you here.";
await _emailService.SendEmailAsync("recipient@example.com", "Welcome to Our Service", htmlMessage);
return View();
}
}
رمز عبور برنامه (App Password) یک رمز عبوری است که توسط گوگل ایجاد میشود و به شما اجازه میدهد تا به برنامهها و دستگاههای خاص دسترسی داشته باشید بدون اینکه نیاز به استفاده از رمز عبور اصلی حساب گوگل خود داشته باشید.
وارد حساب گوگل خود شوید.
به تنظیمات امنیتی بروید.
فعال کردن احراز هویت دو مرحلهای: اگر احراز هویت دو مرحلهای را فعال نکردهاید، ابتدا باید این ویژگی را فعال کنید.
ایجاد رمز عبور برنامه:
"SmtpPass": "your-app-password", // ramz ro inja bezarid
و تمام.
نوشته شده توسط :
علیرضا مقدم