15-09-12, 12:28 AM
بسم الله الرحمن الرحيم
ملاحظة: الموضوع منقول من المنتدى القديم
وهو للأخ عبدالله الدوسري
ملاحظة: الموضوع منقول من المنتدى القديم
وهو للأخ عبدالله الدوسري
السلام عليكم ورحمة الله وبركاتة ,,
أحب أن أقدم لكم موضوع إرسال رسالة بريد إلكتروني
طريقة عرض الرسالة ستكون على شكل HTML ( يعني إمكانية إضافة صور في محتوى الرسالة مع إمكانية تنسيق الرسالة )
أيضاً بالإضافة إلى إمكانية عرضها بالطريقة العادية (القياسية) ( محتوى الرسالة نص فقط بدون أي تنسيق )
مع إمكانية إضافة ملفات مرفقة للرسالة (Attachment)
طريقة إرسال الرسال هي من خلال
ٍSMTP
وهي تعني
بروتوكول نقل البريد البسيط
Simple Mail Transfer Protocol
البروتوكول : هو نظام أو سلوك أو لغة تفاهم متفق عليها .
أغلب موفرين خدمة البريد يستخدمون هذا البروتوكول SMTP
بالإضافة إلى بروتوكولات أخرى لن أتطرق لها هنا .
3 الأشياء مهمة والتي يجب عليك معرفتها لإستخدام هذة الطريقة
هي
1 - الـ Port الخاص بخادم البريد الخاص بحساب بريدك الإلكتروني
2 - الـ Host وهو اسم خادم البريد ,,
على سبيل المثال
أسم خادم البريد الخاص بـالـ Hotmail هو : smtp.live.com
3 - معرفة ما إذا كان خادم البريد يطلب الميزة SSL في الإتصال
ماهو الـ SSL ؟
هو عبارة عن اختصار لكلمة Secure Socket Layer
Secure Socket Layer تعني تجويف طبقة الأمان
وهو بروتوكول يقوم بتشفير البيانات المنتقلة من وإلى متصفح الانترنت و الخادم “server”
لقد قمت بوضع هذة البيانات لأشهر موفرين خدمة البريد ,, داخل ملف المشروع
ومنهم Hotmail , Gmail , Yahoo , Aol
وإذا كنت تستخدم بريد لا تعرف البيانات الخاصة بالإتصال به ,, أرجوا أن تبحث في الإنترنت
أو أن تبحث في موقع موفر خدمة البريد نفسة
عن هذة البيانات: SSL Enabled ,, Port Number ,, Host Name
احب أن اذكر أنه إذا أردت أن ترسل رسالة ,, يجب أن يكون لديك حساب بريد إلكتروني
وأن تكتب كلمة المرور الخاصة بهذا الحساب ,, بالإضافة إلى بيانات الإتصال التي ذكرتها في الأعلى SSL Enabled ,, Port Number ,, Host Name
في الحقيقة أنه قبل عدة سنوات كان المجال مفتوح لإرسال البريد ,, حيث أن خادم البريد كان لا يسأل ما إذا كان لديك حساب بريد إلكتروني أم لا
كنا نضع البيانات Host Name و Port Number فقط
حتى أن بريد المرسل وإسمة أنت تكتبة ,, بغض النظر ما إذا كان هذا البريد موجود أصلاً أو لا
يعني لو كتبت في خانة بريد المرسل
"hotmail@hotmail.hotmai"l
فسوف يقراءة مستقبل البريد بنفس الطريقة ولا يعرف من أين جائت
أما الآن فتغيرت الأمور لكثرة الإستعمالات الغير قانونية للبريد فأصبح يجب عليك أن تمتلك بريد مسجل وأن تدخل كلمة المرور الخاصة بك ..
هناك طرق لإرسال البريد عن طريق خادم يتم تركيبة في جهازك فتصبح أنت موفر الخدمة
ولا أريد أن أتطرق إلى هذا الموضوع ,,,,
الآن ننتقل إلى شرح الطريقة
-----------------------------------------------------------------------------
في هذا المثال قمت بإستخدام بريد Gmail أنشأتة خصيصاً لهذا الشرح
"abdulla.aldosari.tester@gmail.com"
كلمة المرور www.vb4arab.com
وهو موجود في المشروع بشكل إفتراضي
---------------------------------------------------------------------
سأبداء بطريقة عرض الرسالة على شكل HTML
بسم الله
أولا سأضع الصورتين لترى طريقة العرض بالـ HTML وطريقة العرض العادية
طريقة العرض العادية
طريقة العرض بالـ HTML
بسم الله نبدأ بطريقة عرض الـ HTML
شكل نافذة البرنامج (المثال) للإرسال بطريقة عرض الـ HTML
أثناء وبعد إتمام عملية الإرسال
زر لمشاهدة الرسالة بنفس التنسيق التي ستظهر علية عند القارئ
------------------------------------------------------------------------------------------
سأبدأ الآن في شرح الكود
أولاً تم إضافة مجال الأسماء
System.Net.Mail
رمز برمجي:
Imports System.Net.Mail
ثم بالإعلان عن المتغيرات في أول سطور الكود في الفورم
رمز برمجي:
' عنوان مسار ملف صورة الشعار الذي سيظهر في أعلى الرسالة Dim CompanyLogoPath As String
رمز برمجي:
'الكائن الذي يحمل الرسالة بالكامل Dim Mail As New MailMessage()
رمز برمجي:
' في هذا المتغير سيتم إدخال الملفات المرفقة فية ' وقبل إرسال الرسالة سيتم تفريغها في الكائن الذي يحمل الرسالة Dim AttachmentCollection As New Collection
رمز برمجي:
'- موجود في الريسورس HTML هو ملف HTMLBodyText '- قمت بتصميمة كمثال ويمكنك تصميم ما تريد Dim MessageContaint As String = My.Resources.HTMLBodyText
رمز برمجي:
'- هذا متغير سيحمل صورة الشعار لتظهر في الرسالة عند عرظها للقرائة '- سيتم شرحة لاحقاً Dim logo As LinkedResource
SmtpServer هذا هو الكائن المسؤول عن عملية الإتصال بخادم البريد والإرسال ,, وهو ينحدر من مجال الأسماء System.Net.Mai
################################################## ###
طريقتين للإعلان عن الكائن SmtpServer للإستفادة من الحدث SendCompleted
الإعلان بواسطة الجملة WithEvents
أو الإعلان عنة بطريقة عادية وإستخدام الطريقة AddHandler لربط الحدث مع أي Sub
################################################## ###
من المستحسن إستخدام الجملة WithEvents قبل اسم الكائن
إذا أردت أن تستفيد من الحدث SendCompleted
أي أنه بعد الإنتهاء من إرسال الرسالة يقوم الكائن بإطلاق هذا الحدث والذي ستستفيد منه لعمل معين
رمز برمجي:
Friend WithEvents SmtpServer As New SmtpClient()
################################################## ###
################################################## ###
وإذا أردت أن لا تعلن عنه بوجود أحداث WithEvents وتريد الإستفادة من الحدث SendCompleted
استخدم الطريقة AddHandler
رمز برمجي:
Dim SmtpServer As New SmtpClient()AddHandler SmtpServer.SendCompleted, AddressOf MySubSendCompleted
حيث أن MySubSendCompleted
هو Sub ستقوم أنت بإنشائة ليتم مناداته عند الإنتهاء من عملية الإرسال
رمز برمجي:
Private Sub MySubSendCompleted() End Sub
###############################################
###############################################
الإجراءات والأحداث
الكود التالي في الحدث Load الخاص بتحميل النافذة mailform
################################################## #####
################################################## #####
رمز برمجي:
'- اسم المرسل Me.SenderName.Text = "عبدالله الدوسري"
رمز برمجي:
'- بريد المرسل Me.SenderEmail.Text = "abdulla.aldosari.tester@gmail.com"
رمز برمجي:
'- كلمة المرور الخاصة بالمرسل Me.SenderEmailPassword.Text = "www.vb4arab.com"
رمز برمجي:
'بريد المستلم Me.ReseverEmail.Text = "abdulla.aldosari.tester@gmail.com"
رمز برمجي:
'- عنوان الرسالة Me.MailSubject.Text = "دراسات وبحوث جديدة تثبت أن الطين له دور رئيسي في تكوين الحياه ."
رمز برمجي:
'- نص الرسالة '- وهو ملف نصي موجود في الريسورس Me.MessageBody.Text = My.Resources.MessageBody
الصورة CompanyLogo.jpg
نقوم بتعريف المسار الخاص بالصورة ونضعة في المتغير النصي CompanyLogoPath
رمز برمجي:
CompanyLogoPath = My.Application.Info.DirectoryPath & "\CompanyLogo.jpg"
الصورة موجودة ظمن ملفات المشروع وعند عمل Build يتم نسخ الصورة في نفس مجلد البرنامج
الخاصية لملف الصورة
Copy to Output Directory = Copy always
وضع مسار صورة الشعار CompanyLogoPath في التكست بكس
رمز برمجي:
Me.LogoPath.Text = CompanyLogoPath
تحميل صورة الشعار في صندوق الصورة من المسار CompanyLogoPath
رمز برمجي:
Me.CompanyLogo_PictureBox.Image = Image.FromFile(CompanyLogoPath)
لتعطيل زر حذف الملفات المرفقة لأنه حالياً البرنامج في الحدث لود وأكيد مافية ملفات مرفقة لحذفها
رمز برمجي:
Me.DeleteSelectedAttachment.Enabled = False
الإنتهاء من الحدث Load
################################################## #####
################################################## #####
الكود التالي في الحدث Click الخاص بالزر إرسال
################################################## #####
################################################## #####
Credential
هذا ما يسمى بـ وثائق التفويض في الشبكة
وهو طبعاً للتحقق من هويتك لدى خادم البريد ما إذا كنت أحد المستخدمين المسجيلين أو لا
يجب أن تستخدم حسابك الخاص لإرسال البريد الإلكتروني
هذة البيانات تحفظ في هذا المتغير حالياً حتى يأتي أمر الإرسال فيتم التحقق منها
رمز برمجي:
SmtpServer.Credentials = New Net.NetworkCredential(Me.SenderEmail.Text, Me.SenderEmailPassword.Text)
تعريف ببيانات الإتصال بالخادم
وفي هذا المثال إستخدمت الـ Gmail
رمز برمجي:
SmtpServer.Port = 587 SmtpServer.Host = "smtp.gmail.com"
الخاصية SSl كما ذكرت سابقاً وهي بروتوكول يقوم بتشفير البيانات المنتقلة
True مطلوبة من خادم البريد
False غير مطلوبة من خادم البريد
في هذا المثال ,, خادم البريد قوقل يطلب هذة الميزة
رمز برمجي:
SmtpServer.EnableSsl = True
إنشاء كائن جديد والذي يحمل الرسالة بالكامل بمحتوياتها
رمز برمجي:
Mail = New MailMessage()
هنا يتم إدخال عنوان المرسل وأسمة
آخر براميتر System.Text.Encoding.UTF8 يختص بترميز الحروف التي كتبت لاسم المرسل
حتى لا يتم تغييرها من قبل أي متصفح يقوم بعرضها لقارء الرسالة
لأنه من الممكن أن لا تظهر بالشكل التي كتبت علية
يعني مثلاً تكتب الاسم بالعربي فيظهر بشكل غيرب ,, لا يفهم!!!
تذكر كلمة الترميز فسوف تمر عليك أكثر من مرة في هذا المثال
رمز برمجي:
Mail.From = New MailAddress(Me.SenderEmail.Text, Me.SenderName.Text, System.Text.Encoding.UTF8)
لوائح المستلمين To, CC, BCC
################################################## #
################################################## #
إذا كنت قد أضفت أكثر من مستقبل واحد للرسالة فسيتم إضافة عناوينهم الآن
حتى لو كان شخص واحد الموضوع لن يتغير
--------------------------------------------------------
الآن نقوم بفصل عناوين البريد عن طريق الفاصلة الموجودة بين العناوين في حالة وجود أكثر من واحد
(",")Split هذة الوضيفة تقوم بفصل النص
يعني لو كان النص هكذا
"Ali@Gmail.com,Mohd@Hotmail.com,Abdulla@Yahoomail. com"
النتيجة ستكون
"Ali@Gmail.com"
"Mohd@Hotmail.com"
"Abdulla@Yahoomail.com"
كل عنوان سيكون عنصر مستقل سيتم إدخالهم كناصر في المصفوفة النصية ()addr
رمز برمجي:
Dim addr() As String = ReseverEmail.Text.Split(",") If addr.Length <> 0 Then For i As Integer = 0 To addr.Length - 1 Mail.To.Add(addr(i)) Next End If
كما تلاحظ في طريقة إضافة عناوين المستلمين لقد إستخدمنا المجموعة TO
رمز برمجي:
Mail.To.Add("Abdulla@Gmail.com")
بينما توجد هناك أساليب تختلف لإضافة عناوين مستقبلين البريد
هل تذكر في صفحة البريد أنه يوجد خيار (إرسال نسخة CC) (وإرسال نسخة مخفية Bcc)
هنا في هذا المثال قمنا بإضافة عناوين المستلمين في المجموعة TO
بينما توجد مجموعتين إضافيتين وهما CC و BCC
----------------------------------------------------------------------------
المجموعة CC
كلمة CC هي اختصار للعبارة الإنجليزية "Carbon Copy" وتعني "نسخة كربونية"
إذا قمت بإضافة اسم مستلم إلى هذة الممجموعة ، فسيتم إرسال نسخة من رسالتك إلى هذا المستلم، وسيظهر اسم المستلم لبقية مستلمي الرسالة.
رمز برمجي:
Mail.CC.Add("Abdulla@Gmail.com")
----------------------------------------------------------------------------
المجموعة BCC
كلمة BCC هي اختصار للعبارة الإنجليزية "Blind Carbon Copy" وتعني "نسخة كربونية مخفية"
إذا قمت بإضافة اسم مستلم إلى هذة المجموعة ، فسيتم إرسال نسخة من رسالتك إلى هذا المستلم، ولن يظهر اسم المستلم لبقية مستلمي الرسالة.
رمز برمجي:
Mail.Bcc.Add("Abdulla@Gmail.com")
################################################## #
################################################## #
رمز برمجي:
'- عنوان الرسالة Mail.Subject = MailSubject.Text '- ترميز عنوان الرسالة Mail.SubjectEncoding = System.Text.Encoding.UTF8
رمز برمجي:
'- نص الرسالة Mail.Body = Me.MessageBody.Text '- ترميز نص الرسالة Mail.BodyEncoding = System.Text.Encoding.UTF8
Attachments الملفات المرفقة
هنا سيتم إضافة مسارات الملفات المرفقة مع الرسالة والتي تم حفظها في المجموعة AttachmentCollection ويتم تعبئتها من مكان آخر في الكود عن طريق زر إضافة ملفات مرفقة
سنتحدث عنه فيما بعد
ولكن نحن الآن في حدث زر الإرسال أي أن الرسالة في مرحلة الإرسال لذلك نقوم بتفقد الملفات المرفقة
طبعاً إذا كانت AttachmentCollection تملك على الأقل ملف واحد فسندخل للحلقة التكرارية لإضافة الملفات
رمز برمجي:
If Me.AttachmentCollection.Count > 0 Then For i As Integer = 1 To Me.AttachmentCollection.Count Mail.Attachments.Add(New Attachment(Me.AttachmentCollection.Item(i).ToString)) Next End If
لم ينتهي الحدث Click الخاص بالزر إرسال
تابع ,,,,,,,,,,,,,,,,,,,,,,,,
أحب أن أقدم لكم موضوع إرسال رسالة بريد إلكتروني
طريقة عرض الرسالة ستكون على شكل HTML ( يعني إمكانية إضافة صور في محتوى الرسالة مع إمكانية تنسيق الرسالة )
أيضاً بالإضافة إلى إمكانية عرضها بالطريقة العادية (القياسية) ( محتوى الرسالة نص فقط بدون أي تنسيق )
مع إمكانية إضافة ملفات مرفقة للرسالة (Attachment)
طريقة إرسال الرسال هي من خلال
ٍSMTP
وهي تعني
بروتوكول نقل البريد البسيط
Simple Mail Transfer Protocol
البروتوكول : هو نظام أو سلوك أو لغة تفاهم متفق عليها .
أغلب موفرين خدمة البريد يستخدمون هذا البروتوكول SMTP
بالإضافة إلى بروتوكولات أخرى لن أتطرق لها هنا .
3 الأشياء مهمة والتي يجب عليك معرفتها لإستخدام هذة الطريقة
هي
1 - الـ Port الخاص بخادم البريد الخاص بحساب بريدك الإلكتروني
2 - الـ Host وهو اسم خادم البريد ,,
على سبيل المثال
أسم خادم البريد الخاص بـالـ Hotmail هو : smtp.live.com
3 - معرفة ما إذا كان خادم البريد يطلب الميزة SSL في الإتصال
ماهو الـ SSL ؟
هو عبارة عن اختصار لكلمة Secure Socket Layer
Secure Socket Layer تعني تجويف طبقة الأمان
وهو بروتوكول يقوم بتشفير البيانات المنتقلة من وإلى متصفح الانترنت و الخادم “server”
لقد قمت بوضع هذة البيانات لأشهر موفرين خدمة البريد ,, داخل ملف المشروع
ومنهم Hotmail , Gmail , Yahoo , Aol
وإذا كنت تستخدم بريد لا تعرف البيانات الخاصة بالإتصال به ,, أرجوا أن تبحث في الإنترنت
أو أن تبحث في موقع موفر خدمة البريد نفسة
عن هذة البيانات: SSL Enabled ,, Port Number ,, Host Name
احب أن اذكر أنه إذا أردت أن ترسل رسالة ,, يجب أن يكون لديك حساب بريد إلكتروني
وأن تكتب كلمة المرور الخاصة بهذا الحساب ,, بالإضافة إلى بيانات الإتصال التي ذكرتها في الأعلى SSL Enabled ,, Port Number ,, Host Name
في الحقيقة أنه قبل عدة سنوات كان المجال مفتوح لإرسال البريد ,, حيث أن خادم البريد كان لا يسأل ما إذا كان لديك حساب بريد إلكتروني أم لا
كنا نضع البيانات Host Name و Port Number فقط
حتى أن بريد المرسل وإسمة أنت تكتبة ,, بغض النظر ما إذا كان هذا البريد موجود أصلاً أو لا
يعني لو كتبت في خانة بريد المرسل
"hotmail@hotmail.hotmai"l
فسوف يقراءة مستقبل البريد بنفس الطريقة ولا يعرف من أين جائت
أما الآن فتغيرت الأمور لكثرة الإستعمالات الغير قانونية للبريد فأصبح يجب عليك أن تمتلك بريد مسجل وأن تدخل كلمة المرور الخاصة بك ..
هناك طرق لإرسال البريد عن طريق خادم يتم تركيبة في جهازك فتصبح أنت موفر الخدمة
ولا أريد أن أتطرق إلى هذا الموضوع ,,,,
الآن ننتقل إلى شرح الطريقة
-----------------------------------------------------------------------------
في هذا المثال قمت بإستخدام بريد Gmail أنشأتة خصيصاً لهذا الشرح
"abdulla.aldosari.tester@gmail.com"
كلمة المرور www.vb4arab.com
وهو موجود في المشروع بشكل إفتراضي
---------------------------------------------------------------------
سأبداء بطريقة عرض الرسالة على شكل HTML
بسم الله
أولا سأضع الصورتين لترى طريقة العرض بالـ HTML وطريقة العرض العادية
طريقة العرض العادية
طريقة العرض بالـ HTML
بسم الله نبدأ بطريقة عرض الـ HTML
شكل نافذة البرنامج (المثال) للإرسال بطريقة عرض الـ HTML
أثناء وبعد إتمام عملية الإرسال
زر لمشاهدة الرسالة بنفس التنسيق التي ستظهر علية عند القارئ
------------------------------------------------------------------------------------------
سأبدأ الآن في شرح الكود
أولاً تم إضافة مجال الأسماء
System.Net.Mail
رمز برمجي:
Imports System.Net.Mail
ثم بالإعلان عن المتغيرات في أول سطور الكود في الفورم
رمز برمجي:
' عنوان مسار ملف صورة الشعار الذي سيظهر في أعلى الرسالة Dim CompanyLogoPath As String
رمز برمجي:
'الكائن الذي يحمل الرسالة بالكامل Dim Mail As New MailMessage()
رمز برمجي:
' في هذا المتغير سيتم إدخال الملفات المرفقة فية ' وقبل إرسال الرسالة سيتم تفريغها في الكائن الذي يحمل الرسالة Dim AttachmentCollection As New Collection
رمز برمجي:
'- موجود في الريسورس HTML هو ملف HTMLBodyText '- قمت بتصميمة كمثال ويمكنك تصميم ما تريد Dim MessageContaint As String = My.Resources.HTMLBodyText
رمز برمجي:
'- هذا متغير سيحمل صورة الشعار لتظهر في الرسالة عند عرظها للقرائة '- سيتم شرحة لاحقاً Dim logo As LinkedResource
SmtpServer هذا هو الكائن المسؤول عن عملية الإتصال بخادم البريد والإرسال ,, وهو ينحدر من مجال الأسماء System.Net.Mai
################################################## ###
طريقتين للإعلان عن الكائن SmtpServer للإستفادة من الحدث SendCompleted
الإعلان بواسطة الجملة WithEvents
أو الإعلان عنة بطريقة عادية وإستخدام الطريقة AddHandler لربط الحدث مع أي Sub
################################################## ###
من المستحسن إستخدام الجملة WithEvents قبل اسم الكائن
إذا أردت أن تستفيد من الحدث SendCompleted
أي أنه بعد الإنتهاء من إرسال الرسالة يقوم الكائن بإطلاق هذا الحدث والذي ستستفيد منه لعمل معين
رمز برمجي:
Friend WithEvents SmtpServer As New SmtpClient()
################################################## ###
################################################## ###
وإذا أردت أن لا تعلن عنه بوجود أحداث WithEvents وتريد الإستفادة من الحدث SendCompleted
استخدم الطريقة AddHandler
رمز برمجي:
Dim SmtpServer As New SmtpClient()AddHandler SmtpServer.SendCompleted, AddressOf MySubSendCompleted
حيث أن MySubSendCompleted
هو Sub ستقوم أنت بإنشائة ليتم مناداته عند الإنتهاء من عملية الإرسال
رمز برمجي:
Private Sub MySubSendCompleted() End Sub
###############################################
###############################################
الإجراءات والأحداث
الكود التالي في الحدث Load الخاص بتحميل النافذة mailform
################################################## #####
################################################## #####
رمز برمجي:
'- اسم المرسل Me.SenderName.Text = "عبدالله الدوسري"
رمز برمجي:
'- بريد المرسل Me.SenderEmail.Text = "abdulla.aldosari.tester@gmail.com"
رمز برمجي:
'- كلمة المرور الخاصة بالمرسل Me.SenderEmailPassword.Text = "www.vb4arab.com"
رمز برمجي:
'بريد المستلم Me.ReseverEmail.Text = "abdulla.aldosari.tester@gmail.com"
رمز برمجي:
'- عنوان الرسالة Me.MailSubject.Text = "دراسات وبحوث جديدة تثبت أن الطين له دور رئيسي في تكوين الحياه ."
رمز برمجي:
'- نص الرسالة '- وهو ملف نصي موجود في الريسورس Me.MessageBody.Text = My.Resources.MessageBody
الصورة CompanyLogo.jpg
نقوم بتعريف المسار الخاص بالصورة ونضعة في المتغير النصي CompanyLogoPath
رمز برمجي:
CompanyLogoPath = My.Application.Info.DirectoryPath & "\CompanyLogo.jpg"
الصورة موجودة ظمن ملفات المشروع وعند عمل Build يتم نسخ الصورة في نفس مجلد البرنامج
الخاصية لملف الصورة
Copy to Output Directory = Copy always
وضع مسار صورة الشعار CompanyLogoPath في التكست بكس
رمز برمجي:
Me.LogoPath.Text = CompanyLogoPath
تحميل صورة الشعار في صندوق الصورة من المسار CompanyLogoPath
رمز برمجي:
Me.CompanyLogo_PictureBox.Image = Image.FromFile(CompanyLogoPath)
لتعطيل زر حذف الملفات المرفقة لأنه حالياً البرنامج في الحدث لود وأكيد مافية ملفات مرفقة لحذفها
رمز برمجي:
Me.DeleteSelectedAttachment.Enabled = False
الإنتهاء من الحدث Load
################################################## #####
################################################## #####
الكود التالي في الحدث Click الخاص بالزر إرسال
################################################## #####
################################################## #####
Credential
هذا ما يسمى بـ وثائق التفويض في الشبكة
وهو طبعاً للتحقق من هويتك لدى خادم البريد ما إذا كنت أحد المستخدمين المسجيلين أو لا
يجب أن تستخدم حسابك الخاص لإرسال البريد الإلكتروني
هذة البيانات تحفظ في هذا المتغير حالياً حتى يأتي أمر الإرسال فيتم التحقق منها
رمز برمجي:
SmtpServer.Credentials = New Net.NetworkCredential(Me.SenderEmail.Text, Me.SenderEmailPassword.Text)
تعريف ببيانات الإتصال بالخادم
وفي هذا المثال إستخدمت الـ Gmail
رمز برمجي:
SmtpServer.Port = 587 SmtpServer.Host = "smtp.gmail.com"
الخاصية SSl كما ذكرت سابقاً وهي بروتوكول يقوم بتشفير البيانات المنتقلة
True مطلوبة من خادم البريد
False غير مطلوبة من خادم البريد
في هذا المثال ,, خادم البريد قوقل يطلب هذة الميزة
رمز برمجي:
SmtpServer.EnableSsl = True
إنشاء كائن جديد والذي يحمل الرسالة بالكامل بمحتوياتها
رمز برمجي:
Mail = New MailMessage()
هنا يتم إدخال عنوان المرسل وأسمة
آخر براميتر System.Text.Encoding.UTF8 يختص بترميز الحروف التي كتبت لاسم المرسل
حتى لا يتم تغييرها من قبل أي متصفح يقوم بعرضها لقارء الرسالة
لأنه من الممكن أن لا تظهر بالشكل التي كتبت علية
يعني مثلاً تكتب الاسم بالعربي فيظهر بشكل غيرب ,, لا يفهم!!!
تذكر كلمة الترميز فسوف تمر عليك أكثر من مرة في هذا المثال
رمز برمجي:
Mail.From = New MailAddress(Me.SenderEmail.Text, Me.SenderName.Text, System.Text.Encoding.UTF8)
لوائح المستلمين To, CC, BCC
################################################## #
################################################## #
إذا كنت قد أضفت أكثر من مستقبل واحد للرسالة فسيتم إضافة عناوينهم الآن
حتى لو كان شخص واحد الموضوع لن يتغير
--------------------------------------------------------
الآن نقوم بفصل عناوين البريد عن طريق الفاصلة الموجودة بين العناوين في حالة وجود أكثر من واحد
(",")Split هذة الوضيفة تقوم بفصل النص
يعني لو كان النص هكذا
"Ali@Gmail.com,Mohd@Hotmail.com,Abdulla@Yahoomail. com"
النتيجة ستكون
"Ali@Gmail.com"
"Mohd@Hotmail.com"
"Abdulla@Yahoomail.com"
كل عنوان سيكون عنصر مستقل سيتم إدخالهم كناصر في المصفوفة النصية ()addr
رمز برمجي:
Dim addr() As String = ReseverEmail.Text.Split(",") If addr.Length <> 0 Then For i As Integer = 0 To addr.Length - 1 Mail.To.Add(addr(i)) Next End If
كما تلاحظ في طريقة إضافة عناوين المستلمين لقد إستخدمنا المجموعة TO
رمز برمجي:
Mail.To.Add("Abdulla@Gmail.com")
بينما توجد هناك أساليب تختلف لإضافة عناوين مستقبلين البريد
هل تذكر في صفحة البريد أنه يوجد خيار (إرسال نسخة CC) (وإرسال نسخة مخفية Bcc)
هنا في هذا المثال قمنا بإضافة عناوين المستلمين في المجموعة TO
بينما توجد مجموعتين إضافيتين وهما CC و BCC
----------------------------------------------------------------------------
المجموعة CC
كلمة CC هي اختصار للعبارة الإنجليزية "Carbon Copy" وتعني "نسخة كربونية"
إذا قمت بإضافة اسم مستلم إلى هذة الممجموعة ، فسيتم إرسال نسخة من رسالتك إلى هذا المستلم، وسيظهر اسم المستلم لبقية مستلمي الرسالة.
رمز برمجي:
Mail.CC.Add("Abdulla@Gmail.com")
----------------------------------------------------------------------------
المجموعة BCC
كلمة BCC هي اختصار للعبارة الإنجليزية "Blind Carbon Copy" وتعني "نسخة كربونية مخفية"
إذا قمت بإضافة اسم مستلم إلى هذة المجموعة ، فسيتم إرسال نسخة من رسالتك إلى هذا المستلم، ولن يظهر اسم المستلم لبقية مستلمي الرسالة.
رمز برمجي:
Mail.Bcc.Add("Abdulla@Gmail.com")
################################################## #
################################################## #
رمز برمجي:
'- عنوان الرسالة Mail.Subject = MailSubject.Text '- ترميز عنوان الرسالة Mail.SubjectEncoding = System.Text.Encoding.UTF8
رمز برمجي:
'- نص الرسالة Mail.Body = Me.MessageBody.Text '- ترميز نص الرسالة Mail.BodyEncoding = System.Text.Encoding.UTF8
Attachments الملفات المرفقة
هنا سيتم إضافة مسارات الملفات المرفقة مع الرسالة والتي تم حفظها في المجموعة AttachmentCollection ويتم تعبئتها من مكان آخر في الكود عن طريق زر إضافة ملفات مرفقة
سنتحدث عنه فيما بعد
ولكن نحن الآن في حدث زر الإرسال أي أن الرسالة في مرحلة الإرسال لذلك نقوم بتفقد الملفات المرفقة
طبعاً إذا كانت AttachmentCollection تملك على الأقل ملف واحد فسندخل للحلقة التكرارية لإضافة الملفات
رمز برمجي:
If Me.AttachmentCollection.Count > 0 Then For i As Integer = 1 To Me.AttachmentCollection.Count Mail.Attachments.Add(New Attachment(Me.AttachmentCollection.Item(i).ToString)) Next End If
لم ينتهي الحدث Click الخاص بالزر إرسال
تابع ,,,,,,,,,,,,,,,,,,,,,,,,
[/HR]