با سلام
مقاله ای که ارائه داده شده است حاصل ساعتها جستجو،مطالعه و ترجمه میباشد
و با توجه به نبود یک منبع کامل چه به صورت فارسی و چه به صورت انگلیسی در مورد ارسال ایمیل در دات نت 2 و استفاده برنامه نویسان از تکنیک های دات نت 1،امیدوارم این مجموعه حسن ختامی بر تمام سردرگمی های ارسال ایمیل در دات نت 2 باشد
امیدوارم این مقاله به عنوان مرجعی کامل،مشکل گشای برنامه نویسان فارسی زبان باشد
توجه:کلیه حقوق این مقاله متعلق به سایت DotNetSource.Com میباشد.استفاده از مطالب این مقاله با ذکر نام منبع و نویسنده بلامانع است
_____________________________________
کلمات کلیدی:

ارسال ایمیل،دات نت 2،Email،Sending Email،.Net 2
_____________________________________
بخش اول


مقدمه:

فضای نام System.Net.Mail

System.Net.Mail یک فضای نام که برای ارسال ایمیل در دات نت 2 استفاده میشود.بر خلاف system.web.mail که در دات نت 1 معرفی شده، System.Net.Mail بر پایه کتابخانه های CDO/CDOSYS ساخته نشده است.در عوض زمینه ساخت آن بر اساس عدم استفاده از Com Introp بوده،یعنی بر اساس هیچ نوع کتابخانه ی Com ساخته نشده است

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/s...0/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/lib...ilmessage.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. <b>This is
bold</b> <font color=#336699>This is blue</font>";
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. <b>This is
bold</b> <font color=#336699>This is blue</font>"
mail.IsBodyHtml = True

Dim smtp As New SmtpClient("127.0.0.1")
smtp.Send(mail)
پایان بخش اول