View Full Version : سوال: توضیح در مورد برنامه ارسال ایمیل ساده
ironclip
شنبه 12 تیر 1389, 18:05 عصر
سلام به همه دوستان گل خودم
من یک سورس پیدا کردم برای ارسال ایمیل خیلی ساده هست
اما من از این قسمت حالی نمی شم کسی هست توضیح بده :
Private Const MAX_IP = 5
Private Type IPINFO
dwAddr As Long ' IP address
dwIndex As Long ' interface index
dwMask As Long ' subnet mask
dwBCastAddr As Long ' broadcast address
dwReasmSize As Long ' assembly size
unused1 As Integer ' not used
unused2 As Integer ' not used
End Type
Private Type MIB_IPADDRTABLE
dEntrys As Long 'number of entries in the table
mIPInfo(MAX_IP) As IPINFO 'array of IP address entries
End Type
Private Type IP_Array
mBuffer As MIB_IPADDRTABLE
BufferLen As Long
End Type
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Declare Function GetIpAddrTable Lib "IPHlpApi" (pIPAdrTable As Byte, pdwSize As Long, ByVal Sort As Long) As Long
اگه میشه توضیحاتتون یکم کامل باشه
تا حالا به موارد برخورد نکردم
ممنون میشم
parselearn
یک شنبه 13 تیر 1389, 20:17 عصر
اون كدها مربوط به ايميل نميشه رويه اصلي cmdSend_Click
تابع اصلي SendMail
بقيه رو حذف كنيد
كدهاي داخل cmdSend_Click هم به اين تغيير دهيد
Dim Send As Boolean
Send = mdlMail.SendMail(txtSender.Text, txtSubject.Text, txtReciver.Text, txtText.Text, txtPassword.Text)
If Send = True Then
MsgBox "Sending..."
End If
كد همين نمونه
http://barnamenevis.org/forum/showpost.php?p=1017152&postcount=18
ironclip
سه شنبه 15 تیر 1389, 22:04 عصر
سلام به دوستان و آقای parselearn (http://www.barnamenevis.org/forum/member.php?u=48732) ببخشید اسمتونو نمی دونم
سلام مرسی از توضیحی که دادید
من برنامه را چند بار چک کردم ولی می خوام بعضی قسمتهای این سورس را بدونم چه کاری انجام میده .
به این کد نگاه کنید :
'start SendMail code
Function SendMail(Sender As String, Subject As String, Reciever As String, Text As String, Password As String) As Boolean
If Sender <> "" Or Password <> "" Then
frmMain.MousePointer = 11
Dim iMsg, iConf, Flds, schema, SendEmailGmail
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields
' send one copy with Google SMTP server (with autentication)
schema = "http://schemas.microsoft.com/cdo/configuration/"
Flds.Item(schema & "sendusing") = 2
Flds.Item(schema & "smtpserver") = "smtp.gmail.com"
Flds.Item(schema & "smtpserverport") = 465
Flds.Item(schema & "smtpauthenticate") = 1
Flds.Item(schema & "sendusername") = Sender
Flds.Item(schema & "sendpassword") = Password
Flds.Item(schema & "smtpusessl") = 1
Flds.Update
With iMsg
DoEvents
.To = Reciever
.From = Sender
.Subject = Subject
.HTMLBody = Text
.Sender = Sender
.Organization = "S.M.B Productions"
.ReplyTo = Sender
Set .Configuration = iConf
SendEmailGmail = .Send
End With
Set iMsg = Nothing
Set iConf = Nothing
Set Flds = Nothing
frmMain.MousePointer = 0
SendMail = True
Else
MsgBox "Please, Fill the Sender Mail Address or Sender Mail Password", vbCritical, "Connection Error"
SendMail = False
End If
End Function
'end SendMail code
چرا در این برنامه از CreateObject استفاده شده
و منظور از دستور set چی هست
و اگه میشه قسمت Flds را توضیح بدید که چرا از چند Flds استفاده شده
و چرا از With استفاده شده
ببخشید این دیگه برنامه نیست که بخوام بگم انجام بدید این فقط برای یادگیری خودم هست
اگه میشه توضیحی بدید ممنون می شم
parselearn
چهارشنبه 16 تیر 1389, 02:57 صبح
چرا در این برنامه از CreateObject استفاده شده تابع CreateObject براي ساخت شيهايي است كه به صورت پيشفرض دسترسي به آن نداريم
(اطلاعات دقيقي ندارم)
و منظور از دستور set چی هست دستور Set براي انتساب اشياء كاربرد دارد
مثال
set pic1.picture = pic2.pictureمثالي ديگر
http://www.barnamenevis.org/forum/showthread.php?t=229998&highlight=set
و اگه میشه قسمت Flds را توضیح بدید که چرا از چند Flds استفاده شده
فيلدهاي اين كد به عنوان Header نامه ارسال مي شوند
كه در اينجا براي مثال
http://schemas.microsoft.com/cdo/configuration/sendusing = 2
قرار گرفته است
و چرا از With استفاده شده With براي دسترسي به توابع، رويه ها ، پروپرتي هاي يك شي كاربر دارد
براي مثال
به جاي اينكه بنويسيم
TextBox1.Text = 15
TextBox1.MaxLength = 3
TextBox1.Width = 300مي نويسيم
With TextBox1
.Text = 15
.MaxLength = 3
.Width = 30
End With
جنبه كم كردن كد رو داره
ironclip
چهارشنبه 16 تیر 1389, 23:03 عصر
یک سوال دیگه ؟
چرا در این کد :
schema = "http://schemas.microsoft.com/cdo/configuration/"
Flds.Item(schema & "sendusing") = 2
Flds.Item(schema & "smtpserver") = "smtp.gmail.com"
Flds.Item(schema & "smtpserverport") = 465
Flds.Item(schema & "smtpauthenticate") = 1
Flds.Item(schema & "sendusername") = Sender
Flds.Item(schema & "sendpassword") = Password
Flds.Item(schema & "smtpusessl") = 1
Flds.Update
"http://schemas.microsoft.com/cdo/configuration/" را برابر schema قرار داده هست
آیا در تمام Flds.Item ها schema با متدهای مثل "sendusing" یا "smtpserver"
جمع می شوند
مثلا
در این قسمت از کد
Flds.Item(schema & "smtpserver") = "smtp.gmail.com"
به فرض اینطوری می شود
http://schemas.microsoft.com/cdo/configuration/smtp.gmail.com
و به Flds.Item اختصاص داده می شود ؟
کسی هست دلیل این کارو بگه ؟
parselearn
پنج شنبه 17 تیر 1389, 00:44 صبح
Config ايميل مجموعه اي از آيتمهاست كه در Flds ذخيره مي شوند
دليل خاصي نداره
تنظيمات به صورت آرايه ذخيره مي شوند
ironclip
پنج شنبه 17 تیر 1389, 02:58 صبح
فکر نکنم به این سوالم جواب داده باشید
چرا "http://schemas.microsoft.com/cdo/configuration/" را برابر schema قرار داده شده
این لینکی که در سورس بود تست کردم هیچ صفحه ای باز نشد
چرا در این تکه کد
Flds.Item(schema & "sendusing") = 2
برابر 2 قرار گرفته است .
و چرا
Flds.Item(schema & "smtpusessl") = 1
برابر 1 قرار گرفته شده
ببخشید خیلی سوال میپرسم
تشکر که جواب می دید
ironclip
پنج شنبه 17 تیر 1389, 19:05 عصر
یک سوال دیگه :
Set iMsg = Nothing
Set iConf = Nothing
Set Flds = Nothing
چرا برابر Nothing قرار گرفته شده ؟
parselearn
پنج شنبه 17 تیر 1389, 20:05 عصر
Nothing دقيق نمي دونم
ولي فكر ميكنم اين كار باعث از بين رفتن و از حافظه خارج شدن متغير ميشه
xxxxx_xxxxx
جمعه 18 تیر 1389, 22:50 عصر
نسبت دادن nothing به یک آبجکت (از هر نوعی) باعث میشه تا مقدار پیش فرض اون آبجکت بهش داده بشه. مثلاً اگر متغیر عددی هست مقدار صفر، اگر boolean هست، مقدار False و ...
tnmsoft
شنبه 19 تیر 1389, 01:07 صبح
دوستان سلام میگم چرا این سورس روی ویندوز کریستال جواب میده و بصورت کامل کار میکنه ولی روی ویندوز سرویس پک 3 جواب نمی ده یعنی ایمل ارسال نمی کنه لطفآ راهنمایی کنید .
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.