الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ارسال إيميل واعدادات السيرفر

بدأه cplusplus في 26 مارس 2008 · 7 رد · 2,817 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

بحثت كثيرا في المنتدى وغيره لكنني لم أجد ما يوضح لي تساؤلي

أنا مبتدئ و استخدم .NET 2005

أرغب ارسال إيميل بعدة طرق

1- تعبئة فورم بإيميل المرسل و عنوان ونص الرساله وهنا سوف يكون المستقبل ثابت ووهو ايميل الموقع

2- ارسال auto email وذلك عند التسجيل في الموقع لتأكيد أن العملية تمت وكدلك في حالة استرجاع كلمة المرور وهنا سيكون المرسل ثابت وهو إيميل الموقع مع اختلاف المستقبلين

تساؤلي

1- كيف يمكنني ضبط السيرفر لاتمام العملية

2- أريد الارسال يكون ممكن لايميلات مختلفة (gmail, hotmail,yahoo...............................) لأني وجدت أن الكثير عانى من مشكلة عدم الارسال لبعض الايميلات

3- مالفرق بين الارسال باستخدام فورم أو بشكل auto

4- وكيف يمكنني التحقق من أن الكود يعمل قبل رفع الموقع على

web server

هذا الكود المستخدم

Imports System.Net.Mail
Partial Class Contact_us
	Inherits System.Web.UI.Page




	Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
		Dim Email_From As String = EmailFrom.Text
		Dim Email_To As String = EmailTo.Text
		Dim Email_Subject As String = EmailSubject.Text
		Dim Email_Message As String = EmailBody.Text
		Dim MySMTPClient As New System.Net.Mail.SmtpClient("لا أعلم كيف يمكنني تحديد اسم السيرفر")
		Dim mail As New MailMessage()
		mail.From = Email_From
		mail.To = Email_To
		mail.Subject = Email_Subject
		mail.Body = Email_Message




	End Sub


	Protected Sub send_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles Send.Click


		MySMTPClient.Send(Mail)



	End Sub

End Class
#2

طريقتي في عمل نموذج لإرسال رسالة لأكثر من شخص (التعاميم الإلكترونية)

1. في ملف Web.Config أضف ما يلي

	<appSettings>
		<add key="From" value="info@WebMail.com" />
		<add key="SMTP" value="mail.WebMail.com" />
	</appSettings>

2. في كود الصفحة

Imports System.Web.Mail
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls
Imports System.IO

طبعا يجب إضافة Textbox لعنوان الرسالة، وآخر لنص الرسالة، وإضافة Listbox تحتوي على عناوين الإيميلات التي سترسل لها، وزر للإرسال

3. بعد أن تكون ال Listbox محتوية على عناصر الإيميلات (استخدم طريقتك في جلبها)، في الكود أنشئ Function لقراءة العناصر داخل label مثلا، وفي مثالي قمت بتسمية ال Label باسم lblRe وال Function هو

   Private Sub FillEmails()
		For Each Loop1 As ListItem In LstEmail.Items
			lblRe.Text += ";" & Loop1.Value
		Next
	End Sub

مع ضرورة الانتباه للعلامة ";"

4. إنشاء Function آخر للإرسال يحتوي على الكود التالي

	Private Sub SendMail()
		Dim objMail As New MailMessage
		Dim objConn As SmtpMail
		Try
			For Each Loop1 As ListItem In LstEmail.Items
				If Loop1.Selected Then
					lblRe.Text += ";" & Loop1.Value
					MsgBody = "========================================" + vbCrLf
					MsgBody += "الأستاذ " + LstEmail.SelectedItem.Text + vbCrLf
					MsgBody +=  txtBody.Text + vbCrLf
					MsgBody += vbCrLf + "========================================"
				End If
			Next
			objMail.From = ConfigurationManager.AppSettings("FROM")
			objMail.To =lblRe.Text
			objMail.Bcc = Any Email Adderss
			objMail.Subject = "عنوان الرسالة"
			objMail.BodyFormat = MailFormat.Text
			objMail.Body = MsgBody
			'lblBody.Text = objMail.Body
			 Try
				objConn.SmtpServer = ConfigurationManager.AppSettings("From")
				objConn.Send(objMail)
				lblStatus.Text = "تم إرسال الرسالة بنجاح"

			Catch ex As Exception
				lblStatus.Text = ex.Message
			End Try
		Catch ex As Exception
			lblStatus.Text = ex.Message
		End Try
	End Sub

5. وفي زر الإرسال قم باستدعاء ال Function الأخير SendMail

PMI_Logo_1.jpg

مدير مشاريع محترف - PMP
محلل أنظمة معتمد
مدير فريق برمجة تطبيقات ويب .Net

======|||||=====

======@ @====
==o0o== ( ) ==o0o===
================
كل منا يحتاج إلى الإرادة حتى يستطيع أن يقوم بعمله

#3

السلام عليكم ورحمة الله

كنت قد اجبت اخي الكريم على طريقة الارسال في هذه المشاركة

/index.php?showtopic=155679

اقتباس
كيف يمكنني ضبط السيرفر لاتمام العملية

اي سيرفر تقصد

اقتباس
2- أريد الارسال يكون ممكن لايميلات مختلفة (gmail, hotmail,yahoo...............................) لأني وجدت أن الكثير عانى من مشكلة عدم الارسال لبعض الايميلات

يمكن الارسال الى اي ايميل لكن عليك وضع ايميل مع كلمة مرور خاصة بالسيرفر مثلا اذا استخدمت Gmail يجب وضع ايميل منه وكلمة مرور

3- مالفرق بين الارسال باستخدام فورم أو بشكل auto

لم افهم مالمقصود ب Auto

4- وكيف يمكنني التحقق من أن الكود يعمل قبل رفع الموقع على

المفروض ان تجربه على جهازك وان يعمل بشكل صحيح وتجريب ان ترسل لايميلات مختلفة

#4

الأخ ماجد اشكرك لكن وددت أسأل مالفرق بين

Imports System.Web.Mail

و

Imports System.NET.Mail

الأخ طارق أشكرك

أقصد بضبط السيرفر هو أنني كي أتمكن من الإرسال أحتاج لــ SMTP Server ومن الممكن أن يكون ذلك عن طريق IIS فهل يحتاج السيرفر للضبط بطريقه معينة كي تتم الارسال عن طريق الــasp

كما أن لدي مشكله في تحديد اسم السيرفر المستخدم

---------

3- مالفرق بين الارسال باستخدام فورم أو بشكل auto

لم افهم مالمقصود ب Auto

أقصد بها اليميلات التي تتم عن طريق تعبئة فورم ثم الارسال (مثل اتصل بنا)

والايميلات التي ترسل مباشره من الموقع للأعضاء نتيجة عملية معينه مثل اتمام عملية التسجيل

#5
 Dim mail As New MailMessage()


	Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load


	End Sub


	Protected Sub send_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles Send.Click

		Try

			Dim message As New MailMessage(Email.Text, "ايميل ادارة الموقع", Subject.Text, Body.Text)
			Dim emailClient As New SmtpClient("localhost")
			emailClient.Send(message)

		Catch ex As Exception
			Response.Write(ex.Message.ToString)



		End Try


		' MySMTPClient.Send(Mail)



	End Sub

End Class

كتبت ها الكود ويطلعلي

Failur to send mail

تم تعديل هذه المشاركة بواسطة cplusplus في 29 مارس 2008 في 02:09

#6

السلام عليكم ورحمة الله

اخي الكريم انت تستخدم خادم محلي وهو غير موجود عندك SmtpClient("localhost") اي انت بحاجة الى Mail server وهو ما لا تستطيع توفيره لذا عليك باستخدام خادم بريد خارجي مثل ال Gmail والسبب انه يسمح لك باستخدام بريد pop اي ليس من داخل الموقع فقط (اعتقد ان ياهو وام اس ان لا يسمحوا ) .

غالبا اخي الكريم من يعمل موقع يكون مع هذا الموقع بريد وخادم بريد بامكانه استخدامه اما في حالة عدم وجود هذا الامر عليك باللجوء الى الخادامات المجانية لذا عليك بعمل بريد مجاني من الجي ميل ثم تفعيل pop (والكيفية موجودة المشاركة التي اشرت لها سابقا) ثم استخدام هذا البريد في الارسال

#7

أخي طارق جزاك الله خير الجزاء

سؤالي هل يكنني تحميل SMTP SERVER واستخادمه كخادم محلي مثل IIS

الطريقة التي ذكرت هل تجدي في حال كان ايميل المرسل غير محدد لأنك هنا أوضحت أن عي عمل ايميل gmail أرسل من خلاله لكن هنا العضو سيقوم بإدخال ايميله والمستقبل سيون أنا

>> جربت نفس الطريقه الي ذكرت لكن لم تنجح جربتها في الحالتين أن يكون ايميلي مرسل وأن يكون مستقبلا

	Protected Sub send_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles Send.Click

		Try


			Dim message As New MailMessage("USERNAME@gmail.com", Email.Text, Subject.Text, Body.Text)
			Dim emailClient As New SmtpClient()
			emailClient.Host = "pop.gmail.com"
			emailClient.Port = 995
			emailClient.Send(message)
			Response.Write("Mail Successfully Sent")

		Catch ex As Exception
			Response.Write(ex.Message.ToString)


				 End Try


		' MySMTPClient.Send(Mail)



	End Sub

web.confg

system.net>
	<mailSettings>
	  <smtp>
		 <network 
			 host="pop.gmail.com" 
			 port="995"
			 userName="username"
			 password="password" />
	  </smtp>
	</mailSettings>
  </system.net>
	<system.web>

شاكره و مقدره لك

خالص الدعاء لك

جزيت خير الجزاء

تم تعديل هذه المشاركة بواسطة cplusplus في 29 مارس 2008 في 18:21

#8
cplusplus كتب:
سؤالي هل يكنني تحميل SMTP SERVER واستخادمه كخادم محلي مثل IIS

من ناحية ممكن فهو ممكن مثل استخدام exchange server

لكن المتطلبات كثيرة ولن تستطيع توفيرها

اقتباس
الطريقة التي ذكرت هل تجدي في حال كان ايميل المرسل غير محدد لأنك هنا أوضحت أن عي عمل ايمي

انا استخدم الصفحة التالية او مثيلتها في مواقعي

http://3lamat.net/ContactUs.html

وعندما تصلني رسالة تكون من ايميلي وليس من ايميل المرسل لانه كثير من لايضع ايميل صحيح ثانيا من غير الممكن الارسال باستخدام ايميل شخص آخر

اي يكون المرسل والمستقبل نفس الايميل

في حالة استخدامك للجي ميل ارجو ان تتأكد من

اسم الايمبل وكلمة المرور صحيحة

انك فعلت Pop من داخل حساب الجي ميل

والافضل ايضا استخدام الاوتلوك او اي برنامج شبيه للتجريب الاستقبال و الارسال من هذا البريد ثم الانتقال الى البرمجة

مواضيع مشابهة