[[Template core/front/global/updateWarning is throwing an error. This theme may be out of date. Run the support tool in the AdminCP to restore the default theme.]]
هذا الموضوع يحتوى على مثال لتوضيح طريقة سهلة وبسيطة لإرسال بريد الكترونى من خلال (Visual Basic) دون الاعتماد على خادم (SMTP)، ويمكن أيضا إضافة مرفقات مع البريد، كذلك يمكنك إرسال البريد بهيئة HTML وليس مجرد نصوص فقط.
والأمثلة (Visual Basic) تعتمد فى إرسال البريد الإلكترونى على مكون (SendEmail.dll Component Module) الموجود داخل المجلد (Bin) فى الملف المرفق، لذا يجب تسجيله (Server Register) داخل النظام قبل البدء فى استخدامه ، ويمكن تسجيله بعدة طرق أبسطها:
CONSOLE
RegSvr32.exe SendEmail.dll
وهو أيضاً يستخدم فى عمله مكتبة مايكروسوفت dnsapi.dll الموجود مع ويندوز، لذا تأكد من وجود هذا الملف أو نسخه داخل مجلد النظام فى حالة عدم وجودة.
Reply: (أختيارى) البريد الإلكترونى فى حالة أن أردة الرد يتم توجيهه على بريد أخر غير الذى أرسلت منه
Subject: (أختيارى) عنوان الرسالة
Body: (أختيارى) محتوى الرسالة وممكن يكون نص أو (HTML)
PlainBody: (أختيارى) محتوى الرسالة النصى، لإمكانه مشاهدتها من الأنظمة التى تعرض النصوص فقط (مثل بعض أنظمة تشغيل الهاتف الجوال)
TypeHTML: (الأفتراضى 0) يعنى محتوى الرسالة نصى – 1: محتوى الرسالة HTML
Priority: أهمية الرسالة (0: منخفضة – 1: عادية – 2: عالية)
CharSet: (أختيارى) لتحديد اللغة والكود المراد استخدامه فى عرض محتوى الرسالة، مثل: windows-1256 – الأفتراضى : windows-1252
RTL: اتجاه عرض الرسائل النصية، (0: من اليسار لليمين – 1: من اليمين لليسار)
FailTries: عدد مراة المحاولة فى حالة الفشل فى الإرسال، الافتراضى 2
Result: النتيجة ن رسالة توضح إذا ما تم الإرسال من عدمه
hWndTextMessage: (أختيارى) مقبض صندوق نصى (TextBox) لمتابعة الرسالة إثناء إرسالها
hWndProgressBar: (أختيارى) مقبض شريط تقدم (ProgressBar) لمتابعة الإرسال
DNSServer: (أختيارى) لتحديد خادم DNS محدد يتم استخدامه أولاً
SMTPServer: (أختيارى) لتحديد خادم SMTP يتم الإرسال من خلاله
SMTPSVRPort: (أختيارى) تحديد منفذ الخادم، فى حالة تحديد خادم SMTP يتم الإرسال من خلاله، الأفتراضى 25 أو 465 عند استخدام SSL
الإضافات فى (الإصدار 2.00) من الخصائص (Prosperities)كالتالى:
HelperString: (أختيارى) مساعدة للمبرمج لإضافة متغير واستعادتة
SMTPUsername: (أختيارى) أسم المستخدم (فى حالة أستخدام SMTPServer يحتاج أسم مستخدم/كلمة مرور)
SMTPPassword: (أختيارى) كلمة المرور (فى حالة أستخدام SMTPServer يحتاج أسم مستخدم/كلمة مرور)
SMTPSSL: محاولة أستخدام أتصال مؤمن (الأفتراضى: False)
[*]الـ (Methods)
Clear: للبدء فى ارسال رسالة جديدة
AttachFile: (أختيارى) لإضافة مرفقات مع الرسالة
Send: للإرسال، ويأتى فى النهاية بعد ضبط الخصائص والمرفقات
Execute: مثل Send، ولكن Send ينتظر حتى يتم الإرسال أو لا يتم، إما Execute فيطلق Thread يقوم بعملية الإرسال، وليس هناك طريقة للتأكد إذا ما تم الإرسال أم لا، ويجب عدم إنهاء البرنامج إثناء الإرسال بـ Execute لأن هذ سيلغى الارسال، وهو مفيد فى حالة الرغبة بإرسال عدد كبير من الرسائل على التوازى، أو فى مواقع الويب ...الخ، لأنه لا يعطل النظام أثناء الإرسال.
للاستخدام من خلال (Visual basic 6.0) وبعد إتمام عملية التسجيل، من قائمة (Project) أختر (References):
وبعد ذلك يمكن استخدام النوع Sender فى التعريف وإرسال بريد الكترونى:
Dim SendEM As New Sender
كما يمكن الاستغناء عن ذلك وتعريف المتغير من النوع (Object)، مثال لعملية إرسال بسيطة:
' 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 مع الملف المرفق.
ملاحظات:
عند إرسال رسالة مع مرفقات والرسالة تحتوى على HTML وصورن فيتم إرفاق المرفقات أولاً ثم تحميل الملف HTML ثم الإرسال مباشرتاً، لعدم تغير المسار الذى تحتويه الصور الموجودة فى الملف HTML، ولإظهار الرسالة بالشكل الصحيح.
بعد خوادم البريد الإلكترونى (Email Server) تطبق بعض القواعد الحازمة فى استقبال البريد الوارد إليها بغرض استبعاد البريد الدعائى أو الغير مرغوب فيه، فمثلاً Hotmail تشترط إعدادات إضافية فى DNS من IP خادم البريد (Domain) الذى تم منه إرسال الرسالة لاستقبالها بشكل صحيح، للمزيد راجع: Sender ID Framework SPF Record Wizard، وخوادم أخرى تستخدم الـ Bulk أو Spam فى الرسائل المشكوك فيها ... الخ
تم النشر منذ (معدل)
السلام عليكم ورحمة الله وبركاته أخوانى الأفاضل ...
SendEmail_v2.zip الإصدار 2.00 بتاريخ: 21 أبريل/نيسان 2007
هذا الموضوع يحتوى على مثال لتوضيح طريقة سهلة وبسيطة لإرسال بريد الكترونى من خلال (Visual Basic) دون الاعتماد على خادم (SMTP)، ويمكن أيضا إضافة مرفقات مع البريد، كذلك يمكنك إرسال البريد بهيئة HTML وليس مجرد نصوص فقط.
والأمثلة (Visual Basic) تعتمد فى إرسال البريد الإلكترونى على مكون (SendEmail.dll Component Module) الموجود داخل المجلد (Bin) فى الملف المرفق، لذا يجب تسجيله (Server Register) داخل النظام قبل البدء فى استخدامه ، ويمكن تسجيله بعدة طرق أبسطها:
وهو أيضاً يستخدم فى عمله مكتبة مايكروسوفت dnsapi.dll الموجود مع ويندوز، لذا تأكد من وجود هذا الملف أو نسخه داخل مجلد النظام فى حالة عدم وجودة.
بعد نجاح عملية التسجيل، يمكنك استخدام المكون (Sender Object) من اى برنامج او لغة برمجة تدعم التعامل مع الـ Components ، مثل (VC6 - C#.Net - VB6 - VB.Net - Delphi - MSAccess - ASP - HTML - PHP - VBS) ... الخ
من خلال الـ (Sender Interface) يمكنك تحديد وضبط خصائص ، من حيث اتجاه الكتابة ، اللغة ، .... الخ.
يحتوى (الإصدار المرفق 2.00) على عدد من الخصائص (Prosperities) والدوال المكون (Methods) كالتالى:
[*]الـ (Methods)
للاستخدام من خلال (Visual basic 6.0) وبعد إتمام عملية التسجيل، من قائمة (Project) أختر (References):
وبعد ذلك يمكن استخدام النوع 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
وفى الإصدار الثانى يمكنك أستخدام بريدك الخاص فى الإرسال، فمثلاً لو أن لديك حساب فى Google ، فيمكنك أستغلال خادم Gmail وهو smtp.gmail.com والذى يتطلب أسم مستخدم/كلمة مرور يتم تخصيصهم فى SMTPUsername / SMTPPassword ، كذلك يستخدم أتصال مؤمن فيتم تخصيص true للخاصية SMTPSSL وتحديد المنفذ 465 من خلال SMTPSVRPort، ومرفق مثال لذلك فى المجلد Version2 مع الملف المرفق.
ملاحظات:
كذلك يمكن مراجعة ...
مثال باستخدام MS-Access
مثال باستخدام MS-VC – C#.NET
مثال باستخدام ASP - HTML - PHP - VBS
والسلام عليكم ورحمة الله وبركاته
dnsapi.zip
SendEmail_v2.zip
تم تعديل بواسطه Eng. Usama El-Mokademشارك هذا الرد
رابط المشاركة
شارك الرد من خلال المواقع ادناه