منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : ارسال محتوى DataGridView1 الى ايميل
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
الاساتذة الافاضل السلام عليكم
 الجميع يعرف كود ارسال الرسائل الى الايميل و هذا الكود منتشر جدا داخل المنتدى فى اكثر من موضوع و هو يعمل معى جيدا
و قد طورت فى هذا الكود حتى جعلته يرسل رسائل جماعية و الحمد لله 
ولكن خطر فى بالى فكرة و اريد مساعدتكم فيها

*** اريد ارسال محتوى DataGridView1 بالكامل ***

و قمت بالتنفيذ 



ولكن بعد الارسال تم ارسال عنوان الرسالة فقد و الموضوع فارع






اذا كانت الفكرة ممكن تنفيذها رجاء تعديل الكود


  ProgressBar1.Value = 5
        email.From = New MailAddress(TextBox1.Text)
        ProgressBar1.Value = 10
        email.Subject = TextBox5.Text
        ProgressBar1.Value = 24
        email.Body = DataGridView1.Text
        ProgressBar1.Value = 40
        email.To.Add(TextBox4.Text)
        smtp.EnableSsl = True
        ProgressBar1.Value = 56
        smtp.Port = ("587")
        smtp.Host = ("smtp.gmail.com")
        smtp.Credentials = New Net.NetworkCredential(TextBox1.Text, TextBox2.Text)
        ProgressBar1.Value = 70
        ProgressBar1.Value = 80
        Try
            smtp.Send(email)
            ProgressBar1.Value = 100
            MsgBox("تم الارسال", MsgBoxStyle.DefaultButton1, "ogy soft")
            ProgressBar1.Value = 0

        Catch ex As Net.Mail.SmtpException
            MsgBox("error")
            ProgressBar1.Value = 0

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

حقيقه الصور لا تظهر لدي  لا اعلم ما هو السبب  ، على العموم طالما الارسال لديك يعمل بشكل صحيح  و يتم ارسال كل شيء ما عدى المحتوى  ،،  فهذا يدل ان لديك مشكله في  جزئية المحتوى  :

  email.Body = DataGridView1.Text

لا اعلم ماذا تقصد  بـ  Text  و ماذا  سترجع لك  من بيانات  ، و هي غالبا ترجع  بيانات فارغه لذلك من الطبيعي  ان تجد محتوى الرساله فارغ  فالقريدفيو ليست  textBox  اذا كيف سنقوم بحلها  ،  بما انك تتعامل مع محتوى ايميل  فاما اترسل له نص  عادي او  كود  Html ،  و بما انه جدول  سنصل الى  فكرة تحويل القريدفيو الى جدول  html  ، طبعا بحثت بالانترنت  و حصلت على هذه النتائج  ممكن تستفيد منها  :  
http://stackoverflow.com/questions/16008...-html-page
http://www.c-sharpcorner.com/UploadFile/...n-C-Sharp/

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

كود :
Private Function DataGridtoHTML(dg As DataGridView) As StringBuilder
Dim strB As New StringBuilder()
'create html & table
strB.AppendLine("<html><body><center><" + "table border='1' cellpadding='0' cellspacing='0'>")
strB.AppendLine("<tr>")
'cteate table header
For i As Integer = 0 To dg.Columns.Count - 1
strB.AppendLine("<td align='center' valign='middle'>" + dg.Columns(i).HeaderText + "</td>")
Next
'create table body
strB.AppendLine("<tr>")
For i As Integer = 0 To dg.Rows.Count - 1
strB.AppendLine("<tr>")
For Each dgvc As DataGridViewCell In dg.Rows(i).Cells
strB.AppendLine("<td align='center' valign='middle'>" + dgvc.Value.ToString() + "</td>")
Next

strB.AppendLine("</tr>")
Next
'table footer & end of html file
strB.AppendLine("</table></center></body></html>")
Return strB
End Function

بعد ان ندرج  القيمة الراجعه من  الـ Function  السابقة  نرسلها الى Body  .

الان  فقط يبقى عليك فقط  الاشارة الى  الكائن  email بان  محتوى الرسالة كود  html  وليس نص عادي  بهذه الطريقة  : 


كود :
            email.IsBodyHtml = True
            email.BodyEncoding = System.Text.Encoding.UTF8
السلام عليكم
بالامكان استبدال السطر التالي:
PHP كود :
email.Body DataGridView1.Text 

بالسطور التالية:
PHP كود :
       For rowindex As Integer 0 To DataGridView1.RowCount 2
            For colindex 
As Int16 0 To DataGridView1.ColumnCount 1
                email
.Body &= DataGridView1.Columns(colindex).HeaderText ":" DataGridView1.Rows(rowindex).Cells(colindex).Value Chr(10)
 
           Next
            email
.Body &= "**********************" Chr(10)
 
       Next 

تحياتي ...
هل يوجد مثال ؟؟

مع الشكر الجزيل
إقتباس :هل يوجد مثال ؟؟

مع الشكر الجزيل


اليك المثال في المرفقات

تحياتي ..
تعديل بسيط ... لعرض جدول , باللغة العربية , وعرض اسم الجهة المرسلة
السلام عليكم اخوتى جميعا
وشكرا لمشاركتكم فى هذا الموضوع
الحمد لله تم ماكنت اطمح اليه
وشكرا لكم جميعا
و شكرا لك اخى HASAN6.0 فالكود الذى ارفقته بالمثال يعمل جيدا
(12-10-16, 09:36 PM)HASAN6.0 كتب : [ -> ]تعديل بسيط ... لعرض جدول , باللغة العربية , وعرض اسم الجهة المرسلة

أستاذ HASAN6.0  أنا شاكر لك مجوداتك ولكن قابلتني مشكلة و هي فعلا جديدة عليا أنا أضفت الكود للمشروع الذي اعمل على تنفيذه وتم الإرسال بالفعل ولكن عندما غيرت   startup object على فورم أخر وجت أن الفورم هو هو الذي يفتح وغيرت startup object على أكثر من فورم أكثر من 50 مره أيضا لا يفتح غيره السورس علق على الفورم الخاصة بإرسال الرسائل ولا يفتح غيرها و العجيب أنى مسحت الكون من الفورم و برده نفس المشكلة عملت دليت للفورم بالكامل و برده يفتح نفس الفورم السورس توقف عن أي أبديت لأي نشاط جديد هذه المشكلة كيف حلها أخي 
من قائمة Build اضغط Clean Solution
ثم Rebuild Solution
الصفحات : 1 2