• 0
mokadem2000

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

سؤال

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

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 = "[email protected]"
SendEM.FromName = "VB Test"
SendEM.To = "[email protected]"
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
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

56 إجابة على هذا السؤال .

  • 0

اخي وين المرفقات ... ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

ما الحل

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
اخي وين المرفقات ... ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
عندما أنقر على send يكتبلي خطأ في actvx

ما الحل

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

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

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

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

شكراً جزيلاً

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

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

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

وشكرا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

0

شارك هذا الرد


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

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

الله يباركلك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

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

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

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

وشكرا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

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

صحيح انا حاولت ارسل عن طريق vb6 ولكن يظهر لي messageBox فيه العباره التاليه :fail send to [email protected]

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

تم تعديل بواسطه mse07
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخى الكريم

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

Eng. Usama El-Mokadem

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

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

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

شكراً

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

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

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

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

شكراً

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

وشكرا لك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكراً لك أخي العزيز , لكن الطريقة طويلة بعض الشيء ويقع فيها كثيير من الأعضاء في الخطأ والالتباس , فأرجو إنشاء أداة تقوم بهذا العمل

شكراً , والموضوع جميل جداً بارك الله فيك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .