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

برامج ارسال بريد الكترونى مباشرتاً بالمرفقات والصور من خلال VB - VB.NET

رائج
بدأه Eng. Usama El-Mokadem في 2 أبريل 2007 · 56 رد · 67,419 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته أخوانى الأفاضل ...

SendEmail_v2.zip الإصدار 2.00 بتاريخ: 21 أبريل/نيسان 2007

هذا الموضوع يحتوى على مثال لتوضيح طريقة سهلة وبسيطة لإرسال بريد الكترونى من خلال (Visual Basic) دون الاعتماد على خادم (SMTP)، ويمكن أيضا إضافة مرفقات مع البريد، كذلك يمكنك إرسال البريد بهيئة HTML وليس مجرد نصوص فقط.

والأمثلة (Visual Basic) تعتمد فى إرسال البريد الإلكترونى على مكون (SendEmail.dll Component Module) الموجود داخل المجلد (Bin) فى الملف المرفق، لذا يجب تسجيله (Server Register) داخل النظام قبل البدء فى استخدامه ، ويمكن تسجيله بعدة طرق أبسطها:

CONSOLE
RegSvr32.exe SendEmail.dll

وهو أيضاً يستخدم فى عمله مكتبة مايكروسوفت dnsapi.dll الموجود مع ويندوز، لذا تأكد من وجود هذا الملف أو نسخه داخل مجلد النظام فى حالة عدم وجودة.

بعد نجاح عملية التسجيل، يمكنك استخدام المكون (Sender Object) من اى برنامج او لغة برمجة تدعم التعامل مع الـ Components ، مثل (VC6 - C#.Net - VB6 - VB.Net - Delphi - MSAccess - ASP - HTML - PHP - VBS) ... الخ

من خلال الـ (Sender Interface) يمكنك تحديد وضبط خصائص ، من حيث اتجاه الكتابة ، اللغة ، .... الخ.

يحتوى (الإصدار المرفق 2.00) على عدد من الخصائص (Prosperities) والدوال المكون (Methods) كالتالى:

  1. الخصائص (Prosperities):

    1. From: (أختيارى) لتحديد البريد الإلكترونى للشخص مرسل البريد
    2. FromName: (أختيارى) أسم الشخص الذى أرسل البريد
    3. To: البريد الالكترونى المراد مراسلته
    4. ToName: (أختيارى) أسم الشخص المرسل له الرسالة
    5. Reply: (أختيارى) البريد الإلكترونى فى حالة أن أردة الرد يتم توجيهه على بريد أخر غير الذى أرسلت منه
    6. Subject: (أختيارى) عنوان الرسالة
    7. Body: (أختيارى) محتوى الرسالة وممكن يكون نص أو (HTML)
    8. PlainBody: (أختيارى) محتوى الرسالة النصى، لإمكانه مشاهدتها من الأنظمة التى تعرض النصوص فقط (مثل بعض أنظمة تشغيل الهاتف الجوال)
    9. TypeHTML: (الأفتراضى 0) يعنى محتوى الرسالة نصى – 1: محتوى الرسالة HTML
    10. Priority: أهمية الرسالة (0: منخفضة – 1: عادية – 2: عالية)
    11. CharSet: (أختيارى) لتحديد اللغة والكود المراد استخدامه فى عرض محتوى الرسالة، مثل: windows-1256 – الأفتراضى : windows-1252
    12. RTL: اتجاه عرض الرسائل النصية، (0: من اليسار لليمين – 1: من اليمين لليسار)
    13. FailTries: عدد مراة المحاولة فى حالة الفشل فى الإرسال، الافتراضى 2
    14. Result: النتيجة ن رسالة توضح إذا ما تم الإرسال من عدمه
    15. hWndTextMessage: (أختيارى) مقبض صندوق نصى (TextBox) لمتابعة الرسالة إثناء إرسالها
    16. hWndProgressBar: (أختيارى) مقبض شريط تقدم (ProgressBar) لمتابعة الإرسال
    17. DNSServer: (أختيارى) لتحديد خادم DNS محدد يتم استخدامه أولاً
    18. SMTPServer: (أختيارى) لتحديد خادم SMTP يتم الإرسال من خلاله
    19. SMTPSVRPort: (أختيارى) تحديد منفذ الخادم، فى حالة تحديد خادم SMTP يتم الإرسال من خلاله، الأفتراضى 25 أو 465 عند استخدام SSL

    20. الإضافات فى (الإصدار 2.00) من الخصائص (Prosperities)كالتالى:
      1. HelperString: (أختيارى) مساعدة للمبرمج لإضافة متغير واستعادتة
      2. SMTPUsername: (أختيارى) أسم المستخدم (فى حالة أستخدام SMTPServer يحتاج أسم مستخدم/كلمة مرور)
      3. SMTPPassword: (أختيارى) كلمة المرور (فى حالة أستخدام SMTPServer يحتاج أسم مستخدم/كلمة مرور)
      4. SMTPSSL: محاولة أستخدام أتصال مؤمن (الأفتراضى: False)

[*]الـ (Methods)

  1. Clear: للبدء فى ارسال رسالة جديدة
  2. AttachFile: (أختيارى) لإضافة مرفقات مع الرسالة
  3. Send: للإرسال، ويأتى فى النهاية بعد ضبط الخصائص والمرفقات
  4. Execute: مثل Send، ولكن Send ينتظر حتى يتم الإرسال أو لا يتم، إما Execute فيطلق Thread يقوم بعملية الإرسال، وليس هناك طريقة للتأكد إذا ما تم الإرسال أم لا، ويجب عدم إنهاء البرنامج إثناء الإرسال بـ Execute لأن هذ سيلغى الارسال، وهو مفيد فى حالة الرغبة بإرسال عدد كبير من الرسائل على التوازى، أو فى مواقع الويب ...الخ، لأنه لا يعطل النظام أثناء الإرسال.

post-98027-1175468592_thumb.jpg

post-98027-1175468618_thumb.jpg

post-98027-1175468632_thumb.jpg

للاستخدام من خلال (Visual basic 6.0) وبعد إتمام عملية التسجيل، من قائمة (Project) أختر (References):

post-98027-1175468645_thumb.jpg

وبعد ذلك يمكن استخدام النوع Sender فى التعريف وإرسال بريد الكترونى:

 Dim SendEM As New Sender

كما يمكن الاستغناء عن ذلك وتعريف المتغير من النوع (Object)، مثال لعملية إرسال بسيطة:


Set SendEM = CreateObject("SendMail.Sender ")

SendEM.Clear

SendEM.From = "test@sendmail.org"
SendEM.FromName = "VB Test"
SendEM.To = "mokadem2000@gmail.com"
SendEM.Subject = "VB Test Message"
SendEM.Body = ""
SendEM.PlainBody = ""
SendEM.CharSet = "windows-1256"
SendEM.RTL = True

' Version 2.00
' you can use you account for login username/password
' ''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' SendEM.SMTPSSL = True
' SendEM.SMTPServer = "smtp.gmail.com"
' SendEM.SMTPSVRPort = 465
' SendEM.SMTPUsername = "gm_user"
' SendEM.SMTPPassword = "gm_pass"
'
' ''''''''''''''''''''''''''''''''''''''''''''''''''''

SendEM.Send
MsgBox SendEM.Result

Set SendEM = Nothing
	Dim SendEM As Object

وفى الإصدار الثانى يمكنك أستخدام بريدك الخاص فى الإرسال، فمثلاً لو أن لديك حساب فى Google ، فيمكنك أستغلال خادم Gmail وهو smtp.gmail.com والذى يتطلب أسم مستخدم/كلمة مرور يتم تخصيصهم فى SMTPUsername / SMTPPassword ، كذلك يستخدم أتصال مؤمن فيتم تخصيص true للخاصية SMTPSSL وتحديد المنفذ 465 من خلال SMTPSVRPort، ومرفق مثال لذلك فى المجلد Version2 مع الملف المرفق.

post-47859-1177176906_thumb.jpg

post-47859-1177177054_thumb.jpg

post-47859-1177177100_thumb.jpg

ملاحظات:

  • عند إرسال رسالة مع مرفقات والرسالة تحتوى على HTML وصورن فيتم إرفاق المرفقات أولاً ثم تحميل الملف HTML ثم الإرسال مباشرتاً، لعدم تغير المسار الذى تحتويه الصور الموجودة فى الملف HTML، ولإظهار الرسالة بالشكل الصحيح.
  • بعد خوادم البريد الإلكترونى (Email Server) تطبق بعض القواعد الحازمة فى استقبال البريد الوارد إليها بغرض استبعاد البريد الدعائى أو الغير مرغوب فيه، فمثلاً Hotmail تشترط إعدادات إضافية فى DNS من IP خادم البريد (Domain) الذى تم منه إرسال الرسالة لاستقبالها بشكل صحيح، للمزيد راجع: Sender ID Framework SPF Record Wizard، وخوادم أخرى تستخدم الـ Bulk أو Spam فى الرسائل المشكوك فيها ... الخ

كذلك يمكن مراجعة ...

مثال باستخدام MS-Access

مثال باستخدام MS-VC – C#.NET

مثال باستخدام ASP - HTML - PHP - VBS

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

dnsapi.zip

SendEmail_v2.zip

تم تعديل هذه المشاركة بواسطة Eng. Usama El-Mokadem في 21 نوفمبر 2007 في 03:12

1

Eng. Usama El-Mokadem

Nothing is impossible, the word impossible itself says that: I M - Possible

#3

عندما أنقر على send يكتبلي خطأ في actvx

ما الحل

#4

أرجو منك ان تضع sendemail.dll في المرفقات

#5

أرجو منك ان تضع sendemail.dll في المرفقات

نعم ارجو وضعه حتى نستطيع تشغيل البرنامج

#6
Max bayne كتب:
اخي وين المرفقات ... ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
afakaz كتب:
عندما أنقر على send يكتبلي خطأ في actvx

ما الحل

afakaz كتب:
أرجو منك ان تضع sendemail.dll في المرفقات
أسير البرمجة كتب:
أرجو منك ان تضع sendemail.dll في المرفقات

نعم ارجو وضعه حتى نستطيع تشغيل البرنامج

أخوانى الأفاضل ...

الملف sendemail.dll موجود داخل المجلد (Bin) فى الملف المرفق، كذلك توجد منه نسخه أخرى مضغوطة cab داخل المجلد (HTML)

شكراً جزيلاً

Eng. Usama El-Mokadem

Nothing is impossible, the word impossible itself says that: I M - Possible

#7

دلوقتى اردلك قولك بداية جميلة فى تصنيع مكتبات ال Dll

وممكن تكون بداية شركة Osamasoft

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

ومبروك على الترقية وعقبال مدير عام :lol:

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#8

السلام عليكم

اريد ان اسأل كيف يمكن تسجيل ملف sendemail.dll

ممكن توضح الطريقه يعني وين نكتب RegSvr32.exe SendEmail.dll

وشكرا

#9

من الـ Start menu أختر Run و أدخل RegSvr32.exe SendEmail.dll ثم أضغط Enter

و أعتقد أن المهندس أسامة ارفق ملف *.Bat فى نفس المجلد , مجرد ان تفتح الملف سيتم التسجيل.

#10
w6w_20050526123631556fe705.gif اخ Eng. Usama El-Mokadem نبذه + مثال + تنسيق .. موضوع ولا احلى في الشموليه وانت بعد w6w200504111348476fff23c80.gif يتم التثبيت للفائدة

سجل ايميلك هنا

googlejb5.gif ليصلك كل ما هو مفيد في عالم البرمجة
#11

ماشاء الله عليك يا أخ أسامة

الله يباركلك

أعوذ بالله من الشيطان الرجيم

قل إنّ صلاتي و نسكي و محيّاي و مماتي لله رب العالمين

صدق الله العظيم

#12

السلام عليكم

الف الف شكر للخ العزيز اسامة على هذا الموضوع الجميل :D

والى مزيد من التقدم ان شاء الله تعالى :)

Hany Saad Mostafa

ITI (Information Technology Institute) l

SD Dept.-Teaching Assistant

---

اسألكم الدعاء بظهر الغيب

#13

الف مليون شكر ياباشا ,

من المواضيع المميزة

وبجد فكرة ممتازة

اقتباس

آسف الدخول متقطع هذه القتره

اقتباس

[يمين]

.[/يمين]

A7med_prof-4-2007.jpg

اخر مواضيعي 2007

االمثال مطبق على موقع بورصه سعودي

.

.

مواضيع مهمه ومطلوبه بكثره VB6

.

بــرامج ومشــاريع عربيه كامــله {HnHn} والمزيد في قسم برامج الاعضاء || ربط قواعد بيانات اكسس مع الفيجوال بيسك, مادة دراسية كاملة {بنت اليمن}|| المرجع الشامل لجمل SQL ا {GENIUS-IT} || كيفية التعامل مع مكتبة الـ DAO, في الوصول إلى قاعدة بيانات {رمضان} || مثال ريط Visaul Basic 6.0 مع SQL SERVER ا || العمليات التي تجرى على قاعدة البيانات, مثال كامل {بنت اليمن} || تصدير البيانات من الاكسل الي الاكسس بالفيجوال بيسك {HnHn} || البحث في قاعدة البيانات {MANSUR} || قواعد البيانات العلائقية وتقنيات الوصول إليها {عبد الله فتحي} || كيفية أظهار بيانات جدولين بواسطة التاريخ ,,,,,,,

.

أخي ربما سؤالك اجابته في أحدى هذه المواضيع فإن لم تجد قم بالبحث وان لم تجد اطرح سؤالك مع وضع عنوان مناسب بحيث ان يكون هذا العنوان دال على محتوى الموضوع فغير ذلك من أكبر الكبائر في المنتدى وسيؤدي الى غلق او حذف موضوعك .

.

</
#14

شكرا علي الأداه الرائعه

طبعا كلنا محتاجين حاجه زي كده

بس انا جربت المثال المرفق مع الفيجوال بيزك 6

للأسف الأيميل موصلش

وحاولت كتير موصلش برضه

مع العلم اني عامل ريجستر للأداه

وشكرا

#15
اقتباس
بس انا جربت المثال المرفق مع الفيجوال بيزك 6

للأسف الأيميل موصلش

وحاولت كتير موصلش برضه

مع العلم اني عامل ريجستر للأداه

صحيح انا حاولت ارسل عن طريق vb6 ولكن يظهر لي messageBox فيه العباره التاليه :fail send to -----@gmail.com

ففي كل مره احاول الارسال يظهر رسالة فشل الارسال فارجو المساعده .

تم تعديل هذه المشاركة بواسطة mse07 في 8 أبريل 2007 في 11:14

#16

مشكور على الشرح و المثال المميز يا باشا

#17

أخى الكريم

المثال الخاص بفجول بيسك 6 لا يعمل وتم عمل كثير جدا من المحاولات دون جدوي برجاء مراجعة البرنامج مرة أخرى للتأكد وإعلامنا بالنتيجة ولك مني جزيل الشكر والتقدير على هذا المجهود

أخوك / عماد قدري

#18

اخي كيف تصنع هذه الصورة

Eng. Usama El-Mokadem

في الشعار في توقيعك

#19

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

#20

الأخ الفاضل ... عماد قدرى

أرجوا التوضيح ، إلى أى خادم بريد الكترونى ترسل رسالتك؟ هوتميل - ياهوو - جيميل .... الخ

وهل يعطيك أنه ارسل(Success) ام لم يستطع (Fail)؟

وهل فحصت الـ Span أو Junk ... الخ؟

برجاء مزيد من التوضيح ... :)

شكراً

Eng. Usama El-Mokadem

Nothing is impossible, the word impossible itself says that: I M - Possible

#21

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

الأخ الكريم اسامة

بارك الله فيك بالنسبة لسؤالك وهل يعطيك أنه ارسل(Success) نعم اخي يعطي هذة الرساله

وايضا جربت ارساله على الهوتميل والياهو وحتي بريد موقعي الخاص وايضا نفس الشئ لا يوجد اى شئ نهائيا ولا فى الـ Span أو Junk ... الخ؟

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

وبارك الله فيك وشكرا لتعبك معنا

أخوك/ عماد قدري

#22

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

#23

الأخ الفاضل ...

جرب أستخدام SendEmail_v2.zip الإصدار 2.00 ، فيحتوى على بعض الممزايا، أتمنى أن تجد فيها ما تبحث عنه :)

شكراً

Eng. Usama El-Mokadem

Nothing is impossible, the word impossible itself says that: I M - Possible

#24

اخى العزيز اسامة أولا : بارك الله فيك اخي على كل المجهود الجبار الذي تقوم به

وثانيا : بخصوص ارسال رساله للهوتميل فأنا جربت ايضا الأصدار الثاني ولكن دون جدوي لا يرسل اى رسايل للهوتميل وما ادري ما السبب مع العلم انه يعطي رساله تفيد بأنه تم ارسال الأميل ولكن ادخل فى الهوتميل ولا اجد شئ .

اما بالنسابة للياهو فهو يرسل رساله والياهو يستقبلها ولكن اذا كانت الرساله بدون مرفقات اما لو بمرفقات فلا يستقبلها الياهو

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

ولك مني وافلا الشكر والتقدير

#25

الأخ الكريم / أسامة

أرجو ان تقوم على حل هذة المشكلة لأننى جربتها كثيرا جدا جدا وأحتاج لهذا البرنامج جدا جدا

وشكرا لك

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