ارسال ايميل در ويژوال بيسيک

ارسال Email در ویژوال بیسیک

 

باید از کنترل Winsock استفاده کنید. این کار بسیار ساده است و دو مرحله دارد:

1-                         Connect شدن به SMTP Server

1-                          صحبت کردن با SMTP Server

 

منظور از صحبت کردن، فرستادن اطلاعات به SMTP Server است که تعیین کنیم چه Email ی از طرف چه کسی برای چه کس ديگری می خواهیم بفرستیم.

 

SMTP Server چیست؟

هر سایت برای این که بتواند میل دریافت کند نیاز به یک SMTP Server دارد که روی پورت 25 منتظر دریافت درخواستهای ارسال میل می باشد. آدرس آن معمولا به صورت mail.DomainName.com است. به عنوان مثال mail.partiasoft.com . ولی در سایتهای بزرگی مثل یاهو تفاوت می کند. در آنجا SMTP  هایی با اسامی mta208.mail.scd.yahoo.com ، mx1.mail.yahoo.com و ... وجود دارد.

این نکته اینجا مطرح است که اگر شما بخواهید میل بزنید، باید Mail Server را از آدرسی که میل گیرنده در آن وجود دارد انتخاب کنید. به عنوان مثال اگر گیرنده ی میل شما یاهو است، شما باید یک SMTP Yahoo استفاده کنید و همچنین اگر گیرنده ی شما در Hotmail است، SMTP Hotmail و ... .

و اما کد نویسی:

ابتدا باید به SMTP Server مربوطه با پورت 25 Connect شویم. در این مثال گیرنده ی ما در Yahoo است. لذا به یک SMTP از یاهو Connect می شویم:

Socket.RemoteHost = "mta208.mail.scd.yahoo.com"

Socket.RemotePort = 25

Socket.Connect

بعد از این که Connect شدیم، باید با SMTP Server صحبت کنیم.

همانگونه که می دانید پارامترهای یک ایمیل عبارتند از:

FromName , FromAddress , ToAddress , Subject , Body

کلیه ی این اطلاعات را به فرمتی خاص در یک متغیر رشته ای ذخیره کرده و سپس با Socket می فرستیم و تمام.

Dim Txt As String

Const Cr = vbCrLf

Txt = ""

Txt = txt & "HELO aaa" & Cr

اولین فرمان ارسال ایمیل، HELO است. لازم به ذکر است که بعد از تمامی فرمانهای باید Enter بزنیم. یعنی vbCrLf به آخر رشته اضافه کنیم.

Txt = txt  & "MAIL FROM: <FromAddress>" & Cr

برای مشخص کردن آدرس فرستنده ابتدا کلمه ی MAIL FROM و سپس آدرس فرستنده را در داخل <> می گذاریم: MAIL FROM: <Sender@yahoo.com>

Txt = txt & "RCPT TO: <ToAddress>" & Cr

آدرس گیرنده را نیز با فرمان RCPT TO مشخص می کنیم

مثال: RCPT TO: <Recipient@yahoo.com>

Txt = txt & "DATA" & Cr

با فرمان DATA می گوئیم که می خواهیم متن نامه را شروع کنیم.

Txt = txt & "From: " & FromName & "<" & FromAddress & ">" & cr

در اینجا From Name را تنظیم می کنیم. From Name اسمی است که در موقع چک کردن ایمیل، در قسمت Sender به نمایش در می آید.

Txt = txt & "Subject: " & Subject & Cr

Subject هم که مشخص است

Txt = txt & Body & Cr

Body متن نامه است

Txt = txt & Cr & Cr & "." & Cr

در اینجا برای این که به SMTP Server حالی کنیم که متن نامه تمام شده است، از دو تا Enter باضافه ی نقطه استفاده می کنیم.

Txt = txt & "QUIT"

در اینجا هم با ارسال فرمان QUIT می گوئیم که کارمان تمام شده است.

Socket.SendData txt

در اینجا هم اطلاعات را با Socket می فرستیم. و دیگر کار تمام است.

 

Source Code Download

 

  
نویسنده : محمد ; ساعت ۳:۳۳ ‎ب.ظ روز پنجشنبه ۸ آبان ،۱۳۸٢