/ در آموزش ویژوالبیسیک, اشتراک رایگان, ویژوالبیسیک / توسط
آخرین زمان ویرایش:

مجموعه سورس کدهای ویژوالبیسیک ۶ قسمت ۱۳

جهت مطالعه و دسترسی به سورس ها به ادامه مطلب مراجعه نمائید

میل سندر با ویژوال بیسیک !
سلام
خوب اول Object های زیر را در فرمتون ایجاد کنین :

۶ عدد Text Box با نام های :

txtToEmailAddress
txtFromEmailAddress
txtFromName
txtEmailSubject
txtEmailServer
txtMessage

و یک Button با نام CmdSendMail

و از طریق Components یک Winsock control به فرم اضافه می کنین و اسمش هم به صورت پیش فرض Winsock1 هستش

یک label هم برای دیدن Status برنامه ایجاد می کنیم که اسمش را StatusTxt می ذاریم

در قمست General فرم سه عدد متغیر تعریف می کنیم به این صورت:

 

Dim Response As String
Dim Start As Single, Tmr As Single

سپس در قسمت رویداد های Winsock کد زیر را اضافه می کنیم

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

Winsock1.GetData Response

End Sub

 

حالا یک Sub برای چک کردن و متوجه شدن Error های موجود در Smtp برنامه ایجاد می کنیم که برای اینکار کد زیر را وارد کنین :

Sub WaitFor(ResponseCode As String)
Start = Timer
While Len(Response) = 0
Tmr = Start – Timer
DoEvents
If Tmr > 50 Then
MsgBox “SMTP service error, timed out while waiting for response”, 64, MsgTitle
Exit Sub
End If
Wend
While Left(Response, 3) <> ResponseCode
DoEvents
If Tmr > 50 Then
MsgBox “SMTP service error, impromper response code. Code should have been: ” + ResponseCode + ” Code recieved: ” + Response, 64, MsgTitle
Exit Sub
End If
Wend
Response = “”

End Sub

 

البته این Sub یک کار دیگه هم می کنه و اون اینه که یک تاخیر هم ایجاد می کنه !
حالا به قسمت اصلی برنامه می رسیم که ایجاد Sub فرستادن mail هستش که برای این کار کد زیر را وارد می کنیم :

 

Sub SendEmail(MailServerName As String, FromName As String, FromEmailAddress As String, ToName As String, ToEmailAddress As String, EmailSubject As String, EmailBodyOfMessage As String)
Dim DateNow As String
Dim first As String, Second As String, Third As String
Dim Fourth As String, Fifth As String, Sixth As String
Dim Seventh As String
With Winsock1
If .State = sckClosed Then
DateNow = Format(Date, “Ddd”) & “, ” & Format(Date, “dd Mmm YYYY”) & ” ” & Format(Time, “hh:mm:ss”) & “” & ” -0600″
first = “mail from: ” & FromEmailAddress & vbCrLf
Second = “rcpt to: ” & ToEmailAddress & vbCrLf
Third = “Date: ” & DateNow & vbCrLf
Fourth = “From: “”” & FromName & “”” <” & FromEmailAddress & “>” + vbCrLf
Fifth = “To: ” & ToNametxt & vbCrLf
Sixth = “Subject: ” & EmailSubject & vbCrLf
Seventh = EmailBodyOfMessage & vbCrLf
Ninth = “X-Mailer: STMP Sender” & vbCrLf
LocalPort = 0
Protocol = sckTCPProtocol
RemoteHost = MailServerName
RemotePort = 25
Connect
WaitFor (“220”)
StatusTxt.Caption = “Connecting….”
SendData (“HELO EnterComputerNameHere” & vbCrLf)
WaitFor (“250”)
StatusTxt.Caption = “Connected”

SendData (first)
StatusTxt.Caption = “Sending Message”

WaitFor (“250”)
SendData (Second)
WaitFor (“250”)
SendData (“data” & vbCrLf)
WaitFor (“354”)
SendData (Fourth & Third & Ninth & Fifth & Sixth & vbCrLf)
SendData (Seventh & vbCrLf)
SendData (“.” & vbCrLf)
WaitFor (“250”)
SendData (“quit” & vbCrLf)
StatusTxt.Caption = “Disconnecting”
WaitFor (“221”)
Close
Else
MsgBox (Str(.State))
End If
End With
End Sub

 

و حالا برای فرستادن ایمیل کافی که در Button این کد را اضافه کنین :

Private Sub CmdSendMail_Click()
SendEmail txtEmailServer.Text, txtFromName.Text, txtFromEmailAddress.Text, txtToEmailAddress.Text, txtToEmailAddress.Text, txtEmailSubject.Text, txtMessage.Text
StatusTxt.Caption = “Mail Sent”
Beep
Close
End Sub

و حالا با اجرای برنامه Email که شما همه چیزش را به صورت دستی Set می کنین Send می شود .

اما توضیح در مورد چندتا از کدهای به کاررفته:

Winsock1_DataArrival

این کد چک می کنه چه درخواستی برای برنامه فرستاده می شود !

If .State = sckClosed Then

چک می کنه که Socket که همون winsock محسوب می شود اگه بسته باشد کاری انجام دهد که اینجا شما در کدتون دستور های متعددی بهش دادین

first = “mail from: ” & FromEmailAddress & vbCrLf
ایمیل شخص فرستنده را می گیره

Second = “rcpt to: ” & ToEmailAddress & vbCrLf
ایمیل کسی را که می خواهین براش میل بفرستین را می گیره
Fourth = “From: “”” & FromName & “”” <” & FromEmailAddress & “>” + vbCrLf
اسم شخص فرسنتده را می گیره
.RemotePort = 25
پرت smtp را برای winsock ست می کنه

نوشته های مشابه

مجموعه سورس کدهای ویژوالبیسیک ۶ قسمت ۱۲

جهت مطالعه و دسترسی به سورس ها به ادامه مطلب مراجعه نمائید (بیشتر…)

مجموعه سورس کدهای ویژوالبیسیک ۶ قسمت ۱۴

جهت مطالعه و دسترسی به سورس ها به ادامه مطلب مراجعه نمائید (بیشتر…)

 کانال تلگرام داده باران شارژ آنلاین

نظری بدهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *