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

مشكلة بعمل ارسال ايميل من الموقع الى Gmail؟

بدأه ميقات في 26 فبراير 2012 · 26 رد · 3,772 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عندي مشكله في كود الايميل اللي عملته واذا ممكن احد يساعدني فيه حله..

هي اول مرة اعمله وعارفه اكيد فيه اخطاء وايد فيه عندي

عملت صفحه اتصل بنا كالاتي

file1993017505.jpg

بحيث يضيف الزائر ايميله وعنوان الرساله ومحتوي الرسالة.

عند ضغطه للارسال المفروض تنرسل الي ايميل gmail عاملتنه لاستقبال الرسائل الخاصه بالموقع.

الكود اللي وضعطته في button




Dim mailMessage As System.Net.Mail.MailMessage = New System.Net.Mail.MailMessage()

mailMessage.From = New System.Net.Mail.MailAddress(TextBox1.Text.Trim())

mailMessage.To.Add(New System.Net.Mail.MailAddress("mywebsiteemailuser@gmail.com")

mailMessage.IsBodyHtml = False

mailMessage.Subject = TextBox2.Text.Trim()
mailMessage.Body = TextBox3.Text.Trim()


Dim smtpClient As System.Net.Mail.SmtpClient = New System.Net.Mail.SmtpClient()

smtpClient.Send(mailMessage)




وفي web.config




<system.net>

<mailSettings>

<smtp >

<network

host="smtp.gmail.com"

userName="mywebsiteemailuser"

port="995"

password="password" />

</smtp>

</mailSettings >

</system.net>

اذا شغلت الصفحه يطلع لي انه فيه خطا في سطر



mailMessage.To.Add(New System.Net.Mail.MailAddress("mywebsiteemailuser@gmail.com")


مشكورين مقدما

تم تعديل هذه المشاركة بواسطة ميقات في 26 فبراير 2012 في 19:52

#2

ما في اي مساعده ؟؟؟

جربت كود ثاني، واذا دخلت بيانات وضغطت بعدين على الزر ما يحدث لي اي شي،،

وحتى بعد تحققت من بريد gmail لكن ما وصلتني الرساله اللي ارسلتها من موقعي..

شنو المشكلة؟؟؟

هي الكود بال vb


Dim senderemailaddress As String = TextBox1.Text
Dim sendersubject As String = TextBox2.Text

Dim message As New MailMessage()
message.From = New MailAddress(senderemailaddress.Trim())
message.[To].Add("mywebsiteuser@gmail.com")
message.Subject = sendersubject

message.IsBodyHtml = False
message.Body = usermessage

Dim mailClient As New System.Net.Mail.SmtpClient("smtp.gmail.com", "587")
Dim userCredential As New System.Net.NetworkCredential("mywebsiteuser", "password12225")

mailClient.Host = "smtp.gmail.com"
mailClient.UseDefaultCredentials = False
mailClient.Credentials = userCredential
mailClient.EnableSsl = True

mailClient.Send(message)
successconfirmation.Text = "The message was successfully sent to the gmail. "
       Dim usermessage As String = TextBox3.Text

تم تعديل هذه المشاركة بواسطة ميقات في 27 فبراير 2012 في 08:59

#3

اخى العزيز انظر الى هذا الموضوع سوف تجد الحل ان شاء الله

/index.php?showtopic=256102

byte[][] scores = new byte[5][];
for (int x = 0; x < scores.Length; x++) 
{
   scores[x] = new byte[4];
}
#4

مشكور اخوي على الرابط

اطلعت على هذا الموضوع مسبقاً بس ما بعرف هل هذا الكود عند ملئ الزائر بيانات الفورم راح يرسله الي ايميل gmail بحيث اطلع علي رسالته من خلاله؟؟

اقتباس

على كل: للتوضيح فالبورت 995 يستخدم ل SSL POP و أما SSL SMTP فهو 465 ( من موقع ياهو : Yahoo Email Settings)

انا جربت هذا الكود مع موقع ياهو و أرسل بنجاح:

            SmtpClient client = new SmtpClient("smtp.mail.yahoo.com", 587); 
            NetworkCredential mNetworkCredential = new NetworkCredential("xxxxxxx@yahoo.com", "mypassword"); 
            client.Credentials = mNetworkCredential; 
            MailAddress from = new MailAddress("xxxxxxx@yahoo.com", "My Name", System.Text.Encoding.UTF8); 
            MailAddress to = new MailAddress(to); 
            MailMessage message = new MailMessage(from, to); 
            message.Body = "Test"; 
            message.BodyEncoding = System.Text.Encoding.UTF8; 
            message.Subject = "Test"; 
            message.SubjectEncoding = System.Text.Encoding.UTF8; 

            client.Send(message);

و على فكرة : لما جربت أفعل SSL أعطاني خطأ أن السيرفر لا يدعم SSL !!!

تم تعديل هذه المشاركة بواسطةAdel Khayata: 03/02/2012 - 07:47 PM

تم تعديل هذه المشاركة بواسطة ميقات في 27 فبراير 2012 في 13:50

#5

جرب هذا الكود مع تعديل حسب ما تريد

public string sendMail (string from, string to, string cc, string bcc, string subject, string body) {
    // Mail initialization
    MailMessage mailMsg = new MailMessage();
    mailMsg.From = from;
    mailMsg.To = to;
    mailMsg.Cc = cc;
    mailMsg.Bcc = bcc;
    mailMsg.Subject = subject;
    mailMsg.BodyFormat = MailFormat.Text;
    mailMsg.Body = body;
    mailMsg.Priority = MailPriority.High;
    // Smtp configuration
    SmtpMail.SmtpServer = "smtp.gmail.com";//smtp is :smtp.gmail.com
      // - smtp.gmail.com use smtp authentication
    mailMsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
    mailMsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "myemail@gmail.com");
    mailMsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "mypassword");
    // - smtp.gmail.com use port 465 or 587
    mailMsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", "465");//port is: 465
    // - smtp.gmail.com use STARTTLS (some call this SSL)
    mailMsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true");
    // try to send Mail
    try 
    {
        SmtpMail.Send(mailMsg);
        return "";
    }
    catch (Exception ex) 
    {
        return ex.Message;
    }
}
byte[][] scores = new byte[5][];
for (int x = 0; x < scores.Length; x++) 
{
   scores[x] = new byte[4];
}
#6

مشكور اخوي تعبتك معي

بس هي الكود كأنه بال C

وانا اشتغل على VB اذا ممكن تعطيني واحد ثاني..

#7

للارسال من خلال الجي مي هناك عدة خطوات قد تحتاجها لذا ارجع الى هذا الموضوع

ولتحويل كود سي شارب الى في بي او العكس يمكنك من خلال هذا الموقع

1
#8

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

اخي الكريم اليك ما يلي :

لارسال ايميل يرجي اتباع التالي :

اولا : تقوم باحضار البيانات الخاصة بالسيرفر الا هتبعت من خلاله الميل وليكن سيرفر Gmail وتقوم بحفظها في ملف Web.Config الموجود في مشروعك كما يلي ك

<system.net>

<mailSettings>
  <smtp  deliveryMethod="Network">
    <network host="smtp.gmail.com" password="yourpassword" port="587"
     userName="youremail@gmail.com" enableSsl="true" />
  </smtp>
</mailSettings>

 </system.net>

وذي ما واضح من الكود بتحدد

- host : وهو عنوان خدمة البريد الالكتروني الا هتستخدمها من اجل ارسال البريد الالكتروني بتاعك والمثال فيه عنوان خادم البريد الالكتروني الخاص بموقع Gmail

- username : بتحدد فيه اسم الحساب بتاعك علي الخادم الخاص بالرسال البريد الالكتروني وطبعا هنا هيكون بريدك الالكتروني الخاص بموقع Gmail يعني حضترك هستخدم حسابك علي gmail من اجل ارسال البريد الالكتروني الي اي حد

- password : هو كلمة المرور اللازمة للولوج بحسابك في الخادم اي كلمة مرور بريدك الالكتروني علي gmail\

- port : هو المنفذ الا هيستخدم في عملية الاتصال بالخادم gmail

- enablessl : هو نوع نظام الحماية المتبع في الخادم من اجل الاتصال وهنا الخادم بيستخدم Secure Socket Layer كنظام حماية حاجة زي FireWall في الويندوز وهو افضل لانه بيتم تشفير البيانات المرسلة والمستقبلة بين الخادم والاجهزة الاخري من اجل الحماية .

ثانيا : تقوم باعداد الكود الخاص بك داخل ASp.net من اجل ارسال البريد الالكتروني اعتمادا علي بيانات الاتصال بسيرفر Gmail المحفوظة داخل Web.config

VisualBasic.Net

بيتم استيراد مكتبة التعامل مع البريد الالكتروني من خلال فضاء الاسماء التالي

Imports System.Net.Mail

بيتم وضع الكود التالي في اي مكان وليكن في حدث التحميل للصفحة او الضغط علي اي زر من اجل تنفيذه

'Define the Sender Address:
        Dim senderaddress As New MailAddress("youremail@gmail.com", "maxbayne sender")

        'Define the Reciever address:
        Dim recieveraddress As New MailAddress("Senderemail@gmail.com", "maxbayne reciever")

        'Define the message:
        Dim mymessage As New MailMessage()

        mymessage.Subject = "Test Message"
        mymessage.Body = "this is the message that sent to you from max bayne in the test application"
        mymessage.From = senderaddress
        mymessage.To.Add(recieveraddress)

        'Define the Smtp Server that can use to send email:
        Dim smtp As New SmtpClient()

        smtp.Send(mymessage)

        Response.Write("Mail Send Successfully")

C#.Net

بيتم استيراد مكتبة التعامل مع البريد الالكتروني من خلال فضاء الاسماء التالي

using System.Net.Mail; // use it to send mail

بيتم وضع الكود التالي في اي مكان وليكن في حدث التحميل للصفحة او الضغط علي اي زر من اجل تنفيذه

//Define the Sender Address:
        MailAddress senderaddress = new MailAddress("youremail@gmail.com", "maxbayne sender");

        //Define the Reciever address:
        MailAddress recieveraddress = new MailAddress("Senderemail@gmail.com", "maxbayne reciever");

        //Define the message:
        MailMessage mymessage = new MailMessage();
        mymessage.Subject = "Test Message";
        mymessage.Body = "this is the message that sent to you from max bayne in the test application";
        mymessage.From = senderaddress;
        mymessage.To.Add(recieveraddress);

        //Define the Smtp Server that can use to send email:
        SmtpClient smtp = new SmtpClient();
        smtp.Send(mymessage);

        Response.Write("Mail Send Successfully");

والله الموفق والمستعان

تم تعديل هذه المشاركة بواسطة Max bayne في 28 فبراير 2012 في 09:44

1
#9

مشكور اخوي Max bayne

راح اجرب كودك الحين واشوف وان شاء الله يضبط..

على فكرة انا اخت مو أخ :blush:

تم تعديل هذه المشاركة بواسطة ميقات في 28 فبراير 2012 في 10:14

#10

اخوي طارق عملت هي الخطوة من قبل وهي enable all pop

اخوي ماكس اتبعت الخطوات اللي وضعتها

وكتب الكود في web.config

ظهر لي

enableSsl="true"

خط ازرق تحته و مسج attribute ia not declared

كملت باقي الكود وضعت الكود الباقي في الزر وعملت رن له واضغط عليه بس نفس الشي، كأنه ما ضغط الزر وكذلك ما بنرسل لي شي.

هل فيه خطوه او شي يمكن يمنع الارسال عندي او هل المشكلة بالكود؟؟

#11
Partial Class _Default
  Inherits System.Web.UI.Page

  ''' <summary>
  ''' Actions when the Send button is clicked.
  ''' </summary>
  Protected Sub btnSend_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSend.Click

    'Create instance of main mail message class.
    Dim mailMessage As System.Net.Mail.MailMessage = New System.Net.Mail.MailMessage()

    'Configure mail mesage
    'Set the From address with user input
    '    mailMessage.From = New System.Net.Mail.MailAddress(txtFromAddress.Text.Trim())
    'Get From address in web.config
    mailMessage.From = New System.Net.Mail.MailAddress(System.Configuration.ConfigurationManager.AppSettings("fromEmailAddress"))
    'Another option is the "from" attirbute in the <smtp> element in the web.config.

    'Set additinal addresses
    mailMessage.To.Add(New System.Net.Mail.MailAddress(txtToAddress.Text.Trim()))
    'mailMessage.CC
    'mailMessage.Bcc
    'mailMessage.ReplyTo

    'Set additional options
    mailMessage.Priority = Net.Mail.MailPriority.High
    'Text/HTML
    mailMessage.IsBodyHtml = False

    'Set the subjet and body text
    mailMessage.Subject = txtSubject.Text.Trim()
    mailMessage.Body = txtBody.Text.Trim()

    'Add one to many attachments
    'mailMessage.Attachments.Add(New System.Net.Mail.Attachment("c:\temp.txt")

    'Create an instance of the SmtpClient class for sending the email
    Dim smtpClient As System.Net.Mail.SmtpClient = New System.Net.Mail.SmtpClient()

    'Use a Try/Catch block to trap sending errors
    'Especially useful when looping through multiple sends
    Try
      smtpClient.Send(mailMessage)
    Catch smtpExc As System.Net.Mail.SmtpException
      'Log error information on which email failed.
    Catch ex As Exception
      'Log general errors
    End Try

  End Sub

End Class

المثال فى المرفقات بVB

مع ملاحظة تعديل فى web config

<!--Mail settings-->
  <system.net>
    <mailSettings>
      <smtp>
        <network host="YOUR HOST HERE"/>
      </smtp>
    </mailSettings>
  </system.net>
  <!--Mail settings-->

SC-CS-Send Email_vb.zip

تم تعديل هذه المشاركة بواسطة medo200039 في 28 فبراير 2012 في 12:07

1
byte[][] scores = new byte[5][];
for (int x = 0; x < scores.Length; x++) 
{
   scores[x] = new byte[4];
}
#12

استخدمت هي الكود من قبل كان فيه عندي مشكلة كأنه

لكن راح اجربه مرة ثانية.. مع تعديل

هل اكتب في web.config التالي:

حتى ياخذ منه البريد اللي بيرسل منه؟؟

<system.net> 
    <mailSettings> 
      <smtp deliveryMethod="Network" from="username@gmail.com"> 
        <network defaultCredentials="false" host="smtp.gmail.com" port="587" userName=username" password="xxxxxxxxxxxx" /> 
      </smtp> 
    </mailSettings> 
  </system.net>

تم تعديل هذه المشاركة بواسطة ميقات في 28 فبراير 2012 في 12:31

#13

نعم ولكن ارسال البريد من الموقع ليس مقتصر الامر على الجى ميل فقط لكن من الممكن اسال الرسائل

من خلال السيرفر من بيانات الاستضافة وتصبح مثلا

<!--Mail settings-->
  <system.net>
    <mailSettings>
      <smtp>
        <network host="smtp.east.con.net"/>
      </smtp>
    </mailSettings>
  </system.net>
  <!--Mail settings-->

وطبعا الاختلاف حسب الاستضافة راجعى شركة الاستضافة المشتركة معها

وتكون لها مزايا كبيرة فهى ليست مقتصرة على ارسال الرسائل لل Gmail فقط ولكن لاى بريد اخر

byte[][] scores = new byte[5][];
for (int x = 0; x < scores.Length; x++) 
{
   scores[x] = new byte[4];
}
#14

جربت الكود اللي اضفته اخ ميدو ولكن

نفس النتيجة اضغط البوتون ولكن ما فيه استجابه ولا كأني ضغط البوتون.

ما يطلع لي ايرور ولا شي..

شنو المشكلة؟؟ :sad:

#15

في اعدادات gmail احتاج فقط أعمل enable to pop صح؟

هل احتاج اعمل هي الخطوة كمان؟؟

الرابط الخاص بي

#16

تنبية بسيط فقط معظم الاكواد فى الاعلى تعمل جيدا لكن الارسال فقط يكون على Gmail

معظم الاكواد الموجودة تكون لل Gmail طبعا لو ارسلتى الاميل الى الياهو او الهوتميل او اى بريد اخر غير Gmail

لا يصل ارجو ان تنتبه الى هذة المعلومة

وهذا كود شغال 100% على الجى ميل فقط

انظر الى الموضوع التالى

/index.php?showtopic=134247

byte[][] scores = new byte[5][];
for (int x = 0; x < scores.Length; x++) 
{
   scores[x] = new byte[4];
}
#17

انا الايميل االلي راح ارسله له gmail

والاكواد اللي جربتها كلها فوق وضعت في

from و to عنوان الايميل الخاص بي

و CC عنوان الشخص اللي عبئ الاستمارة وارسلها لي. (( هي المفروض يقبل اي نوع من الايميل؟؟)

وانا قبل ما اكتب الكود كنت مفعله خاصية POP في gmail.

مضبوطة الخطوات؟؟

كود الرابط اللي وضعته اخوي كأنه بال C# هل ممكن بال VB??

تم تعديل هذه المشاركة بواسطة ميقات في 28 فبراير 2012 في 18:47

#18

جربت الكود اللي في الرابط اللي وضعطت اخ ميدو

وطلع لي ايرور

Compiler Error Message: BC30456: 'Fields' is not a member of 'System.Net.Mail.MailMessage'.

#19

هي الكود اللي استخدمته اذا احد يقدر يشوف عنده شغال لو لا

انا ما يطلع عندي فيه خطأ بس مثل ما قلت قبل اذا اضغط على البوتون ما يحدث لي اي شي ولا ينرسل لي شي على gmail.

web.config

  <system.net>
    <mailSettings>
      <smtp>
        <network enableSsl="true" port="587" host="smtp.gmail.com" userName="userID@gmail.com" password="password"/>
      </smtp>
    </mailSettings>
  </system.net>

code inside button

Dim senderaddress As New MailAddress("userID@gmail.com")



        'Define the message: 
        Dim mymessage As New MailMessage()

        mymessage.Subject = "Test Message"
        'Define the Sender Address: 
        mymessage.From = senderaddress
        'Define the Reciever address: 
        mymessage.To.Add("userID@gmail.com")
        mymessage.CC.Add(VisitorFromEmail.Text.Trim())
        mymessage.Body = EmailBody.Text
        mymessage.IsBodyHtml = False
        'Define the Smtp Server that can use to send email: 
        Dim smtp As New SmtpClient()

        smtp.Send(mymessage)

        MsgBox("Mail Send Successfully")

تم تعديل هذه المشاركة بواسطة ميقات في 29 فبراير 2012 في 09:00

#20

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

اختي في الله

لجعل التبيه بالخط الازرق يختفي من عندك اجعلي التطبيق يدعم الفريم وارك 4 lمن الشاشة التالية :

اضغطي Shift+F4 من لوحة المفاتيح واجعلي Target Framework كما بالصورة

Capture1.png

دي بالنسبة لموضوع SSLEnable

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

جربي ارفعي المثال علي استضافة خارجية وجربي تشغليه

لان الكود سليم ومجرب من طرفي

والله الموفق والمستعان

#21

جرب بريد غير الجي ميل مثل gmx.com واعتقد ان اعداده اسهل بكثير .

وحسب ما وجدت سابقا ان الجي ميل من خلال asp.net احيانا يعمل واحيانا اخرى لايعمل ويظهر خطأ غير واضح .

#22

مسامحه متعبه الكل معاي

اخي ماكس انا الاصدار اللي باستخدمه 2008

فهل فيه مشكله يعني بقبول الحلول السابقة اللي طرحتوها؟؟

اما عن استخدام ايميل آخر شنو راح يكون أعداد host, port, smtp وكيف اعد الايميل نفسه لارسال واستقبال الرسائل من asp.net؟

#23
اقتباس
اخي ماكس انا الاصدار اللي باستخدمه 2008

هناك اختلاف فقط enablessl في web.config حيث انها موجودة في 2010 اي يجب ان تضعها بالكود

اقتباس
اما عن استخدام ايميل آخر شنو راح يكون أعداد host, port, smtp وكيف اعد الايميل نفسه لارسال واستقبال الرسائل من asp.net؟

كل شركة لها اعدادت خاصة وشركة gmx التي ذكرتها سابقا اعدادتها بسيطة وهي

mail.gmx.com

البورت الافتراضي فلا داعي لتغييره

والمستخدم وكلمة المرور هي معلوماتك التي تسجل بها .

وبامكانك ان تجرب فلا يحتاج الموضوع الى اكثر من 10 دقائق .

#24

اخ طارق عملت لي حساب في gmx

ونفس المشكلة عندي هل احتاج اي اعدادات في gmx غير اني اعمل حساب فيه.

هي رابط فيه عنه الايميل الموقع

وهي الكود

    Dim senderaddress As New MailAddress("UserIDn@gmx.com")


        'Dim recieveraddress As New MailAddress("UserID@gmx.com", "reciever")

        'Define the message: 
        Dim mymessage As New MailMessage()

        mymessage.Subject = "Test Message"
        'Define the Sender Address: 
        mymessage.From = senderaddress
        'Define the Reciever address: 
        mymessage.To.Add("UserID@gmx.com")
        mymessage.CC.Add(senderemail.Text.Trim())
        mymessage.Body = "this is the message that sent to you as a test"
        mymessage.IsBodyHtml = False
        'Define the Smtp Server that can use to send email: 
        Dim smtp As New SmtpClient()
        'smtp.EnableSsl = True

        smtp.Send(mymessage)

        MsgBox("Mail Send Successfully")

<system.net>
    <mailSettings>
      <smtp deliveryMethod="Network">
        <network  port="587" host="mail.gmx.com " userName="UserID@gmx.com" password="pasword"/>
      </smtp>
    </mailSettings>
  </system.net>

تم تعديل هذه المشاركة بواسطة ميقات في 29 فبراير 2012 في 20:59

#25

الحمد لله ضبط عندي وارسل لي على gmail.

مشكورين وايد على تعبكم ومساعدتكم معاي الله يوفقكم جميعاً.

الكودات السابقه كانت مضبوط لكن فيه شغله عندي كانت مانعه الارسال.

لذلك قراءت عن كيفية اعداد gmail لتفعيل خاصية pop.

وعملت configration الى outlook عندي بحيث ينزل الايميلات اللي في gmail وضبطه على الاعدادت اللي هم محددينها الى IMAP.

بعد هي الطريقة تأكدت انه جهازي مرتبط بالسيرفر الخاص بهم.

هي روابط لأعداد gmail يمكن احد يواجهه نفس مشكلتي وتكون هي حلها.

Problems sending mail

Outlook 2007

Supported IMAP client list

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