کلاس SmtpClient مسئولیت ارسال یا نقل و انتقال ایمیل را بر عهده دارد کلاس SmtpClient توانایی حمل محتویات ایمیل بر روی شبکه دارد،یا میتواند ایمیل را به صورت یک فایل سیستم در سرویس SMTP IIS در داخل پوشه

(جهت مشاهد RFC میتوانی به سایت rfc-editor.org مراجعه کنید) کلاس SmtpClient میتواند ایمیل را هم به صورت هم زمان(Synchronously) و هم به صورت غیر هم زمان(Asynchronously) ارسال کند کلاس SmtpClient ارسال ایمیل به صورت SSL را هم جهت اهداف امنیتی پشتیبانی میکند

برخی از ویژگی های(Properties) کلاس SmtpClient به شرح زیر میباشند

Pickup Directory به شبیه به فرمت ذکر شده در RFC822 ذخیره کند

توضیحات تکمیلی در

http://msdn2.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx [C#]

using System.Net;

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.”; SmtpClient smtp = new SmtpClient(“127.0.0.1”);

smtp.Credentials = new NetworkCredential(“username”, “secret”);

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 the body content of the email.” Dim smtp As New SmtpClient(“127.0.0.1”)

smtp.Credentials = New Net.NetworkCredential (“username”, “secret”)

smtp.Send(mail) این نکات در کد بالا قابل توجه است که:

۱٫ زمانی که شما جهت استفاده از سرور واسط (ایمیل سرور) مجبور به تعیین هویت هستید و با ارائه نام کاربری و کلمه عبور امکان استفاده از سرویس سرور واسط محیا خواهد شد،ناچار به ارسال نام کاربری و کلمه عبور برای سرور واسط هستید.این امر با استفاده از دستود زیر امکان پذیر خواهد شد   smtp.Credentials = new NetworkCredential(“username”, “secret”)   NetworkCredential در فضای نام System.Net قرار دارد و جهت استفاده از آن باید با این فضای نام به عنوان یکی از مراجع انتخاب شود

 

جواب این سوال بسیار ساده است،و اجازه دهید پرسشی دیگر جهت آشکار شدن موضوع بیان کنیم،و آن پرسش این است، که شما جهت استفاده از سرویس ایمیل Yahoo چطور عمل میکنید؟ اگر دقت کرده باشید به طور معمول Yahoo هم جهت استفاده از سرویس ایمیل خود، به شما اجازه نخواهد داد به عنوان یک ناشناس ایمیل ارسال و یا دریافت کنید حتما باید دارای ایمیلی از این ایمیل سرور باشید

توجه:امکان ارسال ایمیل به صورت ناشناس و با ایمیل جعلی توسط سرور Yahoo و دیگر سرور های مجانی و جود دارد که خارج از بحث ما میباشد

و با ارائه نام کاربری (ایمیل) و کلمه عبور امکان بهره برداری از سرویس های این ایمیل سرور مقدور خواهد شد

پس ما برای ارائه کلمه عبور به ایمیل سرور باید دارای یک ایمیل از آن ایمیل سرور باشیم ایجاد ایمیل بر روی هاست، از طریق ورود به قسمت کنترل (Control Panel) سایت و ورود به قسمت مدیریت ایمیل ها امکان پذیر است

توجه: به هیچ عنوان از ایمیلی که اطلاعات داخل آن برای سایت حائز اهمیت میباشد جهت ارسال ایمیل استفاده نکنید ایمیل هایی همچون Info و Support و…

توجه:هنگام استفاده از دستور زیر باید به جای username ، ایمیل را به صورت کامل و به جای Mypassword ، کلمه عبور ایمیل را وارد کنید. ۲٫ حال سوالی که در اینجا در ذهن شما ایجاد میشود این است که این نام کاربری و کلمه عبور را از کجا بدست آوریم؟   smtp.Credentials = new NetworkCredential(“Send@Yoursite.com”,”Mypassword“)   . نکته ای دیگر این که نام یا Ip Address سرور واسط (ایمیل سرور) سرویس دهنده خود را از کجا به دست بیاوریم؟

در جواب این سوال باید گفت،عموما سرویس دهنده های هاست در ایمیل ارسالی برای شما که در آن اطلاعات هاست شما قرار دارد اطلاعات این سرور را ارسال میکنند اما تماس با واحد پشتیبانی سرویس دهنده هاست بهترین گزینه است

حال اگر نخواستید از گزینه بالا استفاده کنید از روش زیر استفاده کنید

با داشتن یک فایروال مناسب و آنتی ویروس بروز وارد سایت زیر شود   http://www.mob.net/~ted/tools/mx.php3   و در محل مشخص شده نام هاست خود را به طور کامل تایپ کنید اندکی تامل کنید تا پاسخ شما که نام سرور ایمیل هاست شما میباشد برای شما لیست گردد با دستور Telnet به صورت زیر میتوانید به ایمیل سرور خود متصل شوید در منوی Start گزینه Run را انتخاب کنید و در Run دستور CMD را تایپ کنید تا پنجره Command Prompt بازشود سپس دستور زیر را وارد کنید   telnet mail.YourSite.Com 25   بعد از دستور Telnet آدرسی را که به عنوان ایمیل سرور از طریق مرحله قبل به دست آوردیم را وارد میکنیم

عدد ۲۵ به مفهوم پورتی است که میخواهیم از طریق آن به سرور ایمیل متصل شویم توجه کنید که بین هر قسمت فاصله (Space) وجود دارد پس از این دستور با پیغامی شبیه پیغام زیر مواجه میشوید

 

متوجه خواهید شد که در اکثرموارد بعد از عدد ۲۲۰ نام ایمیل سرور دیگری نمایش داده میشود.بهتر است از این ایمیل سرور معرفی شده در این قسمت استفاده کنید پس از توضیحات متوجه میشوید که جهت ارسال ایمیل باید خط زیر را به این صورت تنظیم کنید(با توجه به مثال بالا و به دست آوردن ایمیل سرور از نام بدست آمده استفاده میکنیم)

 

SmtpClient smtp = new SmtpClient(“mailserver1.parmishost.com”);

یــا Dim smtp As New SmtpClient(“mailserver1.parmishost.com”) 4. نکته ای دیگر این که از کجا بفهمیم که برای استفاده از امکانات یک سرور واسط،حتما باید به آن نام کاربری و کلمه عبور بدهیم؟

برای فهمیدن این موضوع به صورت زیر عمل میکنیم بعد از استفاده از دستور telnet به همان شکل توضیح داده شده،در اولین خط دستور ،این دستور را وارد کنید. Auth login اگر بعد از دستور فوق جوابی شبیه پیغام زیر را بگیرید که با عدد ۳۳۴ شروع میشود ،قطعا جهت استفاده از ایمیل سرور باید نام کاربری و کلمه عبور داشته باشیم.