تابع ارسال ایمیل ASP.Net
ارسال ایمیل با ASP.Net بسیار ساده است. .NET framework شامل فضای نام (Namespace) امکان دسترسی به تمامی کلاس های لازم جهت ارسال ایمیل را در اختیار برنامه نویس قرار میدهد و آن System.Net.Mail میباشد.
بطور مثال در ادامه از دو کلاس این Namespace استفاده شده است؛ یکی کلاس MailMessage برای ایجاد ایمیل و دیگری کلاس SmtpClient برای ارسال ایمیل.
از آنجایی که میدانید ایمیل ها از طریق پروتکل SMTP ارسال می شوند و برای ارسال ایمیل با .NET framework شما نیاز به دسترسی به سرور SMTP را خواهید داشت.
چناچه میخواهید ارسال ایمیل را از طریق وبسایتتان انجام دهید میباسیت شرکت خدمات هاستینگ مربوطه SMTP سرور داشته باشد تا بتوانید از آن استفاده نمایید.
جهت این کار ابتدا فضای نام System.Net.Mail را اضافه میکنیم.
using System.Net.Mail;
سپس به تنها چیز که نیاز دارید نوشتن کد زیر است:
protected void Page_Load(object sender, EventArgs e)
{
try
{
MailMessage mailMessage = new MailMessage();
mailMessage.To.Add("email@yourdomain.com");
mailMessage.From = new MailAddress("another@yourdomain.com");
mailMessage.Subject = "ASP.NET e-mail test";
mailMessage.Body = "Hello world,\n\nThis is an ASP.NET test e-mail!";
SmtpClient smtpClient = new SmtpClient("smtp.your-hosting.com");
smtpClient.Send(mailMessage);
Response.Write("E-mail sent!");
}
catch(Exception ex)
{
Response.Write("Could not send the e-mail - error: " + ex.Message);
}
}
توضیح کد بالا:
ابتدا اقدام به ایجاد یک نمونه(شئ) از کلاس MailMessage میکنیم، وسپس یک دریافت کننده اضافه میکنیم (قسمت To) و آدرس فرستنده (قسمت From) و موضوع (قسمت Subject) را مشخص کرده و محتوای ایمیل را در قسمت Body مینویسیم.
سپس اقدام به ایجاد یک نمونه(شئ) از کلاس SmtpClient میکنیم و سپس اطلاعات SMTP سرور را وارد میکنیم سپس از شئ کلاس SmtpClient که ایجاد کردیم برای ارسال ایمیل به فضای مجازی استفاده میکنیم.
تمام این موارد برای کنترل و اداره خطا توسط بلاک های Try و Catch احاطه شده است.
چنانچه تمایل به بررسی گزینه های و موارد بیشتر دارید به کد های زیر نیز نگاهی بیندازید.
میتوانید برای ارسال کننده نامی مشخص در نظر بگیرید:
با کد زیر میتوانید نام ارسال کننده را مشخص کنید، در غیر اینصورت تنها نام ایمیل ارسال کننده نمایش داده خواهد شد.
mailMessage.From = new MailAddress("me@yourdomain.com", "My Name");
میتوانید ایمیل های HTML ارسال نمایید:
به جای متن ساده و پیشفرض ایمیل ها با کد زیر میتوانید ایمیل های HTML ارسال نمایید.
mailMessage.IsBodyHtml = true;
mailMessage.Body = "Hello <b>world!</b>";
میتوانید یک با چند فایل را ضمیمه(Attach) کنید:
به راحتی با اضافه کردن مجموعه Attachment میتوانیم فایلی که در مسیر Root وبسایت قرار دارد را ضمیمه ایمیل خود کنیم، در این مثال فایل با نام image.jpg را ضمیمه کردیم.
mailMessage.Attachments.Add(new Attachment(Server.MapPath("~/image.jpg")));
میتوانید برای ایمیل هایتان اولویت (Priority) مشخص کنید:
کد مربوطه به شرح زیر است.
mailMessage.Priority = MailPriority.High;
میتوانید ایمیل ها را به صورت همزمان برای چند نفر ارسال کنید:
برای اینکار کافیست آدرس ایمیل های دیگر را در قسمت To اضافه نمایید.
mailMessage.To.Add("your.own@yourdomain.com");
mailMessage.To.Add("another@yourdomain.com");
میتوانید از فیلدهای CC و BCC استفاده کنید:
برای این کار کافیست کد زیر را اضافه کرده و آدرس ایمیل ها را درون آن قرار دهید.
mailMessage.CC.Add("me@yourdomain.com");
mailMessage.Bcc.Add("me2@yourdomain.com");