System.Net.Mailیک کلاس کاملا جدید برای ساخت و ارسال ایمیل معرفی کرده است گرچه بعضی از ویژگیهای system.web.mail حذف شده، اما فضای نام System.Net.Mail بسیار فراگیر تر و تطبیق پذیر تر از system.web.mail است که وابسته به کتابخانه CDO میباشد

برای ارسال ایمیل در دات نت به چه چیزی نیازمندیم؟

قبل از هر چیزی لازم است که دات نت فریم ورک را نصب کنید سپس system.dll را به عنوان مرجع (reference) به صفحه معرفی کنید(به صورت اتوماتیک به صفحات اضافه میشود). برای ایجاد و ارسال ایمیل از فضای نام System.Net.Mail استفاده میشود در این مرحله شما با برنامه نویسی ،به پیکربندی برنامه خود میپردازید شما نیازمند یک سرور واسط برای ارسال ایمیل هستید یک سرور واسط (Relay Server) که یک سرور ایمیل(Email Server) یا یک SMTP سرور /سرویس است که ارسال ایمیل را مدیریت میکند.(Handle) System.Net.Mail بسادگی ایمیل را برای سرور ارسال میکند و سرور ایمیل مسئول رساندن ایمیل به مقصد نهایی میباشد

سرور واسط

یک واسط یک سرویس است،که به شما اجازه میدهد ایمیل ارسال کنید واسط به طور معمول یک سرور ایمیل (Mail Server)کامل است یا برای سرویس SMTP پیکربندی شده است بطور مثال:

ایمیل سرور ها(Mail Server):

Microsoft Exchange IMail by IPSwitch Mail Enable by Mail Enable سرویس های SMTP:

سرویس SMTP که بر روی IIS نصب میشود (System.Net.Mail) SNM ایمیل را برای سرور واسط ارسال میکند و سرور ایمیل مسئول رساندن ایمیل به مقصد نهایی میباشد زمانی که ایمیل برای سرور واسط ارسال میگردد،شما باید اجازه دسترسی به آن سرور را داشته باشید.دلیل این امر مسئله SPAM ها میباشد دسترسی به سرورهای واسط به طور طبیعی یا از طریق IP Address یا username/password امکان پذیر میباشد

سرویس SMTP در IIS

سرویس IIS SMTP یک سرویس برای ارسال ایمیل میباشد این سرویس تمام سرویس های زیر را مدیریت میکند

 

MX Record (Mail server location) lookups SMTP connections to remote mail servers Retries Failures

اطلاعات بیشتر را میتوانید از سایت مایکروسافت بخواهید http://www.microsoft.com/mind/1299/smtp2000/smtp2000.asp

آیا با استفاده از System.Net.Mail میتوانیم ایمیل هایمان را بخوانیم؟

جواب نه میباشد.با استفاده از SNM فقط میتوانید ایمیل ارسال کنید برای خواندن ایمیل میتوانید از Mime parsing component یا POP3 component استفاده کنید

نگاهی به کلاس های فضای نام System.Net.Mail:

MailMessage Class MailAddress Class Attachment Class SmtpClient Class AlternateView Class Linked Resource

کلیه کلاس های فوق به طور کامل شرح داده خواهند شد

کلاس MailMessage:

کلاس MailMessage ساخت و مدیریت پیغام ایمیل را تامین میکند سایر کلاسها به نوعی با این کلاس در ارتباط هستند برخی از ویژگی های(Properties) کلاس MailMessage به شرح زیر میباشند

 

توضیحات تکمیلی در http://msdn2.microsoft.com/en-us/library/system.net.mail.mailmessage.aspx [C#]

MailMessage mail = new MailMessage();         mail.From = new MailAddress(“me@mycompany.com“);         mail.To.Add(“you@yourcompany.com“);         mail.Subject = “This is an email”;         mail.Body = “this is the body content of the email.”;

[VB]

Dim mail As New MailMessage()         mail.From = New MailAddress(“me@mycompany.com“)         mail.To.Add(“you@yourcompany.com“)         mail.Subject = “This is an email”         mail.Body = “this is the body content of the email.” این نکته در کد بالا قابل توجه است که: به این نوع ایمیل که بدنه(Body) آن شامل متن ساده است در اصطلاح Plain Text گفته میشود اما بدنه (Body) میتواند شامل تگ های HTML نیز باشد جهت استفاده از این امکان باید خاصیت IsBodyHtml را برابر True کنیم به مثال زیر توجه کنید: [C#]

MailMessage mail = new MailMessage();

mail.From = new MailAddress(“me@mycompany.com“); mail.To.Add(“you@yourcompany.com“);

mail.Subject = “This is an email”; mail.Body = “this is a sample body with html in it. This is bold This is blue”; mail.IsBodyHtml = true;

SmtpClient smtp = new SmtpClient(“127.0.0.1”); smtp.Send(mail);

[VB]

Dim mail As New MailMessage()

mail.From = New MailAddress(“me@mycompany.com“) mail.To.Add(“you@yourcompany.com“)

mail.Subject = “This is an email” mail.Body = “this is a sample body with html in it. This is bold This is blue” mail.IsBodyHtml = True

Dim smtp As New SmtpClient(“127.0.0.1”) smtp.Send(mail)