صفحة ارسال بريد الكتروني لادارة الموقع
هذا المثال من صفحة واحده تحتوي على نموذج لارسال رسالة الكترونية لادارة الموقع
يوجد في الصفحة مكان لادخال اسم المرسل وبريده وعمره واي معلومات اخرى عن نفسه مثل بلده
او اي معلومات اخرى تطلبها انت
كما يحتوي على مكان لادخال عنوان رسالته وصندوق لكتابة الرساله
HTML في هذا المثال تم تحديد نوع الرساله بانها سيتم ارساله على شكل كود
HTML لهذا فانه يمكن تنسيق الرساله باستخدام كود
HTML او وضع صندوق تنسيق فوق مكان كتابة الرساله يعتمد على لغة ال
في اسفل النموذج يوجد اداة لتحميل ملف من الجهاز وارساله مرفق اذا رغب المستخدم بارفاق
ملف مع رسالته , كما يمكنك تعديل تصميم الواجهة بالاحترافية التي تريد
في الاسفل كود عملية ارسال الرساله وكود التأكد من المرفقات
يتكون تصميم الصفحة من
المعلومات المدخلة بها هي الاسم والعمر والبريد الالكتروني وعنوان الرساله ونصها textbox خمسة ادوات
File Field وتحتوي على اداة واحد لتحميل المرفق من الجهاز اداة
يوجد بها اسماء الدول ويختار المرسل اسم دولته من بينها DropDownList وتحتوي على قائمة من نوع
لارسال الرسالة Button وتحتوي على زر واحد
ستة منها للتعريف والارشاد والسابعة لعرض رسائل الخطأ Label كما تحتوي على سبعة ادوات
في حال ارسال الرسالة بنجاح فانه ينقله الي صفحة ثانية تحتوي على جملة تم الارسال بنجاح
ملاحظة : لقد قمنا بهذا المثال باستخدام الكود للتحقق من ادخال المستخدم لجميع المعلومات المطلوب ادخالها
كما انه يمكنك الاستغناء عن استخدام الكود بأستخدام ادوات التحقق المتوفرة في قائمة الادوات والتي سيتم شرحها في موضوع ومثال اخر لاحقاً ان شاء الله تعالى
في اعلى صفحة الكود بقوم باستيراد الفئتين
Imports System.Web.Mail لارسال البريد الالكتروني
Imports System.IO للتحكم في الملفات والمجلدات وسنستخدمها هنا من اجل الملف المرفق
في داخل زر الارسال نقوم بكتابة الكود
كود:Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Try ' بداية تعريف تفادي الاستثناء ' بداية كود التحقق من ادخال المستخدم لجميع القيم المطلوبة ' وفي مثالنا هذا فان جميع القيم مطلوب ادخالها ما عدا الملف المرفق نتركه اختياري If TextBox1.Text = "" Then ' في حالة لم يتم ادخل اي قيمة في صندوق الاسم فانه يعرض له رسالة الخطأ Label7.Text = "حقل اسم المرسل فارغ الرجاء ادخل اسمك" Exit Sub ' الخروج من الدالة كاملة ليمنعه من تنفيذ باقي الكود ElseIf TextBox2.Text = "" Then ' في حالة لم يتم ادخل اي قيمة في صندوق العمر فانه يعرض له رسالة الخطأ Label7.Text = "حقل العمر فارغ - الرجاء ادخال عمرك" Exit Sub ' الخروج من الدالة كاملة ليمنعه من تنفيذ باقي الكود ElseIf TextBox3.Text = "" Then ' في حالة لم يتم ادخل اي قيمة في صندوق البريد الالكتروني فانه يعرض له رسالة الخطأ Label7.Text = "حقل عنوان بريدك الالكتروني فارغ الرجاء ادخال بريدك الالكتروني" Exit Sub ' الخروج من الدالة كاملة ليمنعه من تنفيذ باقي الكود ElseIf TextBox4.Text = "" Then ' في حالة لم يتم ادخل اي قيمة في صندوق عنوان الرسالة فانه يعرض له رسالة الخطأ Label7.Text = "الرجاء ادخال عنوان الرسالة" Exit Sub ' الخروج من الدالة كاملة ليمنعه من تنفيذ باقي الكود ElseIf TextBox5.Text = "" Then ' في حالة لم يتم ادخل اي قيمة في صندوق نص الرسالة فانه يعرض له رسالة الخطأ Label7.Text = "الرجاء ادخال نص الرسالة" Exit Sub ' الخروج من الدالة كاملة ليمنعه من تنفيذ باقي الكود ElseIf DropDownList1.SelectedItem.Value = 0 Then ' DropDownList1 في حالة عدم اختيارة للدولة من القائمة المنسدله ' في القائمة التي استخدمتها قمت بوضع اختيار بأسم (اختر الدولة) وجعلته القيمة الافتراضية 'له تساوي الصفر Value التي تكون مختارة بشكل تلقائي عند تحميل الصفحة وجعلت قيمة ال ' للخيار الذي قد تم اختياره يساوي صفر Value ففي الشرط اعلاه اذا كانت ال ' فان هذا يعني ان المستخدم لم يختر دولته اصلا لان الخيار المحدد في القائمة المنسدله هو ' الخيار صاحب الاسم (أختر دولتك) فاذا تحقق الشرط يقوم بطباعة رسالة الخطأ واخرجة من تنفيذ بقية الكود Label7.Text = "الرجاء اختيار الدولة" Exit Sub ' الخروج من الدالة كاملة ليمنعه من تنفيذ باقي الكود Else ' نتركها فارغة فلا حاجة لنا بها هنا ' كان من الممكن كتابة بقية الكود هنا ولكني لا افضل تقييد نفسك داخل جملة شرطية ' اثناء كتابتك لكود طويل او معقد نوعا ما 'في حالة تحقق اي شرط من الشروط اعلاه Exit Sub ومن اجل هذا استخدمنا الامر ' لما كنا بحاجة لاستخدام هذا الامر Elase ولو كتبنا بقية الكود في داخل ال End If 'نهاية كود التحقق من ادخال جميع القيم المطلوبة ' بعد التحقق من ادخال جميع القيم يتم تعريف متغير الارسال واسناد القيم المدخله له ' نقوم بتعريف متغير من نوع ارسال رسالة الكترونية Dim SMail As Mail.MailMessage = New Mail.MailMessage SMail.From = TextBox3.Text ' اسناد عنوان البريد الي تابع البريد في المتغير SMail.Subject = TextBox4.Text ' اسناد عنوان الرسالة الي تابع العنوان في المتغير SMail.To = "xp9" ' اسناد عنوان البريد المرسل له لتابع عنوان البريد المستقبل في المتغير Dim IPAddress As String = Request.UserHostAddress ' احضار الاي بي للمستخدم وخزينه في متغير SMail.BodyFormat = Mail.MailFormat.Html ' تحديد نوع تنسيق الرساله وهو html ' اسناد نص الرسالة المرسلة SMail.Body = TextBox5.Text & "<br><br> اسم المرسل هو : " & TextBox1.Text & "<br> عمره : " & TextBox2.Text & "<br> بلده هي : " & DropDownList1.SelectedItem.Text & "<br> IP Address : " & IPAddress ' للتأكد من انه المستخدم قام بختيار مرفق من جهازه If File1.PostedFile.FileName = "" Then ' في حالة عدم ارفاق مرفق GoTo A ' بقوم بالذهاب الي النقطة أ ويتخطى كل الكود الموجود بعد هذا السطر والنقطة أ End If ' في حالة ارفاق مرفق فانه لا يحقق الشرط اعلاه ولا ينتقل للنقطة أ ' وينفذ الكود التالي الذي يقوم بالتحقق من المرفق ومطابقته للشروط ومن ثم ارفاقه في الرساله ' فحص اذا كان المرفق حجمة اقل من واحد ميجا فيسمح بارساله غير هذا يعطيه رساله ان المرفق حجمه كبير If File1.PostedFile.InputStream.Length > 1048576 Then Label7.Text = "عذرا ان حجم المرفق اكبر من واحد ميجا الرجاء تقليل الحجم" Exit Sub End If ' فحص اذا كان نوع المرفق من ضمن الملفات المسموح بارفاقها والا فانه يرفض ارفاقه Dim FAtt As String = IO.Path.GetExtension(File1.PostedFile.FileName) If FAtt = ".exe" Or FAtt = ".doc" Or FAtt = ".pdf" Or FAtt = ".bmp" Or FAtt = ".BMP" Or FAtt = ".jpg" Or FAtt = ".JPG" Or FAtt = ".gif" Or FAtt = ".GIF" Or FAtt = ".zip" Or FAtt = ".rar" Then Else Label7.Text = "عذرا نوع المرفق غير مسموح بارفاقه" Exit Sub End If ' اضافة المرفق الي الرسالة SMail.Attachments.Add(File1.PostedFile.FileName) ' ترميز اللغة العربية , لتفادي اي مشاكل في مواقع الايميلات التي لا تدعم العربية SMail.BodyEncoding = System.Text.Encoding.GetEncoding("windows-1256") A: ' النقطة أ Mail.SmtpMail.SmtpServer = "loclahost" ' المستخدم في الارسال smtp تعيين ال Mail.SmtpMail.Send(SMail) ' ارسال الرساله Label7.Text = "تم ارسااااال الرساله بنجاااااااح" ' رسالة نجاح الارسال Catch ex As Exception ' في حالة حدوث استثناء في الصفحة ينتقل به هنا Label7.Text = ex.Message ' يقوم بعرض رسالة الخطأ التي حدثت داخل اداة الليبل End Try End Sub
انتــــــــــهى المثــــــــــــــال