پلتفرم Net.
(DotNet Platform)ارسال ایمیل
در صورتی که تمایلی به خواندن آموزش متنی ندارید میتوانید ویدیوی آموزشی زیر را مشاهده کنید.
برای استفاده از سرویس ایمیل در برنامههای ASP.Net Core باید پس از ایجاد سرویس ایمیل، اطلاعات دسترسی SMTP را طبق مستندات تنظیم متغیرها در تنظیمات برنامه اضافه کنید.
MAIL_HOST=smtp.c1.liara.email
MAIL_PORT=587
MAIL_USERNAME=my-app
MAIL_PASSWORD=my-pass
اگر که از فایل env. برای بارگذاری متغیرهای محیطی در پروژه اصلی استفاده میکنید؛ میتوانید با استفاده از دستور زیر، پکیج DotEnv را نصب کنید.
dotnet add package dotenv.net
حال میتوانید بدون نگرانی در پروژهی خود با استفاده از دسترسی SMTP سرویس ایمیل لیارا بهصورت امن اقدام به ارسال ایمیلهای تراکنشی کنید.
نمونه کد ارسال ایمیل:
using System;
using System.Net;
using System.Net.Mail;
using System.IO;
using dotenv.net;
class Program
{
static void Main()
{
DotEnv.Load(); // loading env variables
string mailHost = Environment.GetEnvironmentVariable("MAIL_HOST");
int mailPort = int.Parse(Environment.GetEnvironmentVariable("MAIL_PORT"));
string mailUser = Environment.GetEnvironmentVariable("MAIL_USERNAME");
string mailPassword = Environment.GetEnvironmentVariable("MAIL_PASSWORD");
// SMTP Conf
SmtpClient client = new SmtpClient(mailHost)
{
Port = mailPort,
Credentials = new NetworkCredential(mailUser, mailPassword),
EnableSsl = true
};
// Creating and Sending Email
MailMessage message = new MailMessage("from@test.com", "to@test.com",
"hello", "hello from dotnet!");
try
{
client.Send(message);
Console.WriteLine("email sent successfully");
}
catch (Exception ex)
{
Console.WriteLine($"error in sending email: {ex.Message}");
}
}
}
اگر که یک برنامه Net. تحت وب دارید و قصد دارید که در کنترلر مدنظرتان، از سرویس ایمیل لیارا استفاده کنید؛ کافیست قطعه کد زیر را در کنترلرتان به کار ببرید.
using MimeKit;
using MailKit.Net.Smtp;
using DotNetEnv; // for install this, run: dotnet install add package DotNetEnv
namespace your_project_name.Controllers; // در اینجا نام پروژه خود را وارد کنید
public class TestController : Controller
{
[HttpPost]
public IActionResult SendEmail(string email)
{
// Email Information
Env.Load();
string senderName = Env.GetString("SENDER_NAME");
string senderEmail = Env.GetString("SENDER_ADDRESS");
string subject = Env.GetString("EMAIL_SUBJECT");
string body = Env.GetString("EMAIL_BODY");
// Email Instance
var message = new MimeMessage();
message.From.Add(new MailboxAddress(senderName, senderEmail));
message.To.Add(new MailboxAddress("Recipient", email));
message.Subject = subject;
// Creating The Body
message.Body = new TextPart("plain")
{
Text = body
};
try
{
// Sending Email
using (var client = new SmtpClient())
{
client.Connect(Env.GetString("MAIL_HOST"), Env.GetInt("MAIL_PORT"), false);
client.Authenticate(Env.GetString("MAIL_USERNAME"), Env.GetString("MAIL_PASSWORD"));
client.Send(message);
client.Disconnect(true);
}
ViewBag.Message = "Email Sent Successfully.";
}
catch (Exception ex)
{
ViewBag.Message = $"Error In Sending Email: {ex.Message}";
}
return RedirectToAction("Index");
}
}
برای اطلاعات بیشتر میتوانید به مستندات ارسال ایمیل MailKit مراجعه کنید.
متوجه شدم، برو گام بعدی!