إرسال البريد الإلكتروني. إرسال بريد إلكتروني برمجيًا باستخدام خدمات متنوعة إرسال بريد إلكتروني مع مرفق c #

اخر تحديث: 31.10.2015

يتم استخدام SMTP (بروتوكول نقل البريد البسيط) لإرسال البريد عبر الإنترنت. هذا البروتوكوليحدد كيفية تفاعل خوادم البريد أثناء النقل بريد إلكتروني.

للعمل مع بروتوكول SMTP وإرسال بريد إلكتروني في .NET ، تم إعداد فئة SmtpClient من مساحة الاسم System.Net.Mail.

تحدد هذه الفئة عددًا من الخصائص التي تسمح لك بتخصيص الإرسال:

    المضيف: خادم smtp الذي يتم إرسال البريد منه. على سبيل المثال ، smtp.yandex.ru

    المنفذ: المنفذ الذي يستخدمه خادم smp. إذا لم يتم تحديده ، فسيتم استخدام المنفذ 25 بشكل افتراضي.

    بيانات الاعتماد: بيانات مصادقة المرسل

    EnableSsl: يحدد ما إذا كان سيتم استخدام ملفات بروتوكول SSLعند الإرسال

فئة رئيسية أخرى يتم استخدامها عند الإرسال هي MailMessage. يمثل هذا الفصل الرسالة التي يتم إرسالها. من بين خصائصه ما يلي:

    المرفقات: تحتوي على جميع مرفقات البريد الإلكتروني

    النص الأساسي: نص الرسالة مباشرة

    من: عنوان المرسل. يمثل كائن MailAddress

    إلى: عنوان المستلم. يمثل أيضًا كائن MailAddress

    الموضوع: يحدد موضوع البريد الإلكتروني

    IsBodyHtml: يشير إلى ما إذا كان البريد الإلكتروني يمثل محتوى برمز html

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

باستخدام النظام ؛ باستخدام System.Net ؛ باستخدام System.IO ؛ باستخدام System.Threading.Tasks ؛ باستخدام System.Net.Mail ؛ مساحة الاسم NetConsoleApp (فئة البرنامج (ثابت باطل رئيسي (سلسلة args)) (// المرسل - قم بتعيين العنوان والاسم المعروض في الحرف MailAddress from = new MailAddress (" [بريد إلكتروني محمي]"،" Tom ")؛ // لمن نرسل MailAddress إلى = new MailAddress (" [بريد إلكتروني محمي]") ؛ // إنشاء كائن رسالة MailMessage m = new MailMessage (من ، إلى) ؛ // موضوع البريد m.Subject =" اختبار "؛ // نص البريد m.Body ="

اختبار إلكتروني لعميل SMTP

"؛ // يمثل الحرف كود أتش تي أم أل m.IsBodyHtml = صحيح ؛ // عنوان خادم ومنفذ smtp الذي سنرسل منه حرفًا SmtpClient smtp = new SmtpClient ("smtp.gmail.com" ، 587) ؛ // تسجيل الدخول وكلمة المرور smtp.Credentials = new NetworkCredential (" [بريد إلكتروني محمي]"،" mypassword ") ؛ smtp.EnableSsl = صحيح ؛ smtp.Send (m) ؛ Console.Read () ؛)))

للإرسال ، يتم استخدام أسلوب Send () ، حيث يتم تمرير كائن MailMessage.

يمكننا أيضًا استخدام الإصدار غير المتزامن للإرسال باستخدام طريقة SendMailAsync:

باستخدام النظام ؛ باستخدام System.Net ؛ باستخدام System.IO ؛ باستخدام System.Threading.Tasks ؛ باستخدام System.Net.Mail ؛ مساحة الاسم NetConsoleApp (فئة البرنامج (باطل ثابت رئيسي (سلسلة args) (SendEmailAsync (). GetAwaiter () ؛ Console.Read () ؛) مهمة غير متزامنة خاصة ثابتة SendEmailAsync () (MailAddress from = new MailAddress (" [بريد إلكتروني محمي]"،" Tom ")؛ MailAddress to = new MailAddress (" [بريد إلكتروني محمي]") ؛ MailMessage m = new MailMessage (من ، إلى) ؛ m.Subject =" اختبار "؛ m.Body =" Smtp client work test letter 2 "؛ SmtpClient smtp = new SmtpClient (" smtp.gmail.com "، 587 ) ؛ smtp.Credentials = new NetworkCredential (" [بريد إلكتروني محمي]"،" mypassword ")؛ smtp.EnableSsl = صحيح ؛ انتظار smtp.SendMailAsync (m)؛ Console.WriteLine (" تم إرسال البريد ") ؛)))

أضف ملحقات

يمكننا إرفاق المرفقات برسائل البريد الإلكتروني باستخدام خاصية المرفقات. يمثل كل مرفق كائن System.Net.Mail.Attachment:

MailAddress من = new MailAddress (" [بريد إلكتروني محمي]"،" Tom ")؛ MailAddress to = new MailAddress (" [بريد إلكتروني محمي]") ؛ MailMessage m = new MailMessage (من ، إلى) ؛ m.Attachments.Add (مرفق جديد (" D: //temlog.txt ")) ؛

قائد السفينة 14 أكتوبر 2013 الساعة 07:29 مساءً

إرسال بريد إلكتروني برمجيًا باستخدام خدمات متنوعة

  • .شبكة،

في كثير من الأحيان عليك التعامل مع الإرسال رسائل البريد الإلكترونيمن كود البرنامج. ليس عليك البحث بعيدًا عن الأمثلة.

هذا المقال هو تلميح ولا يكشف عن أي شيء جديد ، ولكن قبل كتابته ، بدوت متشابهًا على الإنترنت وفوجئت تمامًا أنه في كل مكان تقريبًا يقدمون إما حلًا لا يعمل أو عفا عليه الزمن ، أو ببساطة مكتوب بشكل أمي.

أول شيء يجب ألا تفعله بهذه الأمثلة هو استخدام System.Web.Mail ، الذي تم إهماله لفترة طويلة ، ومنذ ذلك الحين استوديو مرئي 2010 لا يمكن حتى إضافة مكتبة System.Web دون معرفة ذلك مسار كاملإلى DLL المقابل.
بدلاً من ذلك ، يُقترح استخدام مكتبة System.Net.
باستخدام System.Net ؛ باستخدام System.Net.Mail ؛
لذلك ، أبسط ، هو أيضًا الأكثر أهمية وغالبًا ما يتم استخدامه هو إرسال رسالة من خادم البريدالذي تم تكوين عميل SMTP عليه. كما تعلم ، يمكن أن يكون الخادم إما هو الخادم الذي يعمل عليه التطبيق ، أو خادمًا بعيدًا ، ولديك حقوق إرسال رسائل بدون إذن إضافي.

نموذج رمز لإرسال بريد إلكتروني من جهاز محلي:
", "[بريد إلكتروني محمي]")) (mm.Subject =" موضوع البريد "؛ mm.Body =" نص البريد "؛ mm.IsBodyHtml = false ؛ باستخدام (SmtpClient sc = new SmtpClient (" 127.0. خادم البريد والمنفذ إذا لزم الأمر sc.Send (ملم ) ؛))

استخدام خدمات البريد مثل Gmail و Yandex و Mail.ru وما إلى ذلك. كل شيء هو نفسه ، تتم إضافة المعلمات فقط مع الإذن.

خادم SMTP: smtp.gmail.com
المنفذ: 587
باستخدام (MailMessage mm = new MailMessage ("Name ", "[بريد إلكتروني محمي]")) (mm.Subject =" موضوع البريد "؛ mm.Body =" نص البريد "؛ mm.IsBodyHtml = false ؛ باستخدام (SmtpClient sc = new SmtpClient (" smtp.gmail.com "، 587)) (sc. EnableSsl = true؛ sc.DeliveryMethod = SmtpDeliveryMethod.Network؛ sc.UseDefaultCredentials = false؛ sc.Credentials = new NetworkCredential (" [بريد إلكتروني محمي]"،" GmailPassword ") ؛ sc.Send (مم) ؛))

خادم SMTP: smtp.yandex.ru
المنفذ: 25
باستخدام (MailMessage mm = new MailMessage ("Name ", "[بريد إلكتروني محمي]")) (mm.Subject =" موضوع البريد "؛ mm.Body =" نص البريد "؛ mm.IsBodyHtml = false ؛ باستخدام (SmtpClient sc = new SmtpClient (" smtp.yandex.ru "، 25)) (sc. EnableSsl = true؛ sc.DeliveryMethod = SmtpDeliveryMethod.Network؛ sc.UseDefaultCredentials = false؛ sc.Credentials = new NetworkCredential (" [بريد إلكتروني محمي]"،" YandexPassword ") ؛ sc.Send (مم) ؛))

خادم SMTP: smtp.mail.ru
المنفذ: 25
باستخدام (MailMessage mm = new MailMessage ("Name ", "[بريد إلكتروني محمي]")) (mm.Subject =" موضوع البريد "؛ mm.Body =" نص البريد "؛ mm.IsBodyHtml = false ؛ باستخدام (SmtpClient sc = new SmtpClient (" smtp.mail.ru "، 25)) (sc. EnableSsl = true؛ sc.DeliveryMethod = SmtpDeliveryMethod.Network؛ sc.UseDefaultCredentials = false؛ sc.Credentials = new NetworkCredential (" [بريد إلكتروني محمي]"،" MailRuPassword ") ؛ sc.Send (مم) ؛))
اذا كنت تمتلك صندوق بريدعلى خدمة mail.ru تنتهي بـ inbox.ru أو list.ru أو bk.ru ، ثم يتغير عنوان خادم SMTP (smtp.inbox.ru ، smtp.list.ru و smtp.bk.ru) وفقًا لذلك.

كما ترى ، من أجل استخدام أي خدمة بريد أخرى في برامجك ، ما عليك سوى معرفة عنوان ومنفذ خادم SMTP ، بالإضافة إلى قواعد التفويض.

يجب أيضًا أن نتذكر أن جميع خدمات البريد الإلكتروني التابعة لجهات خارجية تقريبًا تفرض قيودًا على عدد رسائل البريد الإلكتروني المرسلة في فترة زمنية.

العلامات: بريد إلكتروني ، إرسال رسائل بريد إلكتروني ، بروتوكول smtp

واحدة من أكثر الوظائف المطلوبة على الموقع هي نموذج الطلب أو الطلب ، حيث يتم إرسال البيانات منه إلى بريد مالك الموقع. كقاعدة عامة ، تكون هذه النماذج بسيطة وتتكون من حقلين أو ثلاثة حقول لإدخال البيانات. كيف يتم إنشاء نموذج الطلب هذا؟ سيتطلب ذلك استخدام لغة ترميز HTML واللغة برمجة PHP.

لغة ترميز HTML نفسها بسيطة ، ما عليك سوى معرفة كيفية ومكان وضع علامات معينة. مع لغة برمجة PHP ، تصبح الأمور أكثر تعقيدًا بعض الشيء.

ليس من الصعب على المبرمج إنشاء مثل هذا النموذج ، ولكن قد تبدو بعض الإجراءات صعبة على مبرمج HTML.

إنشاء نموذج إرسال HTML

السطر الأول سيكون التالي

هذا عنصر نموذج مهم للغاية. في ذلك ، نشير إلى كيفية نقل البيانات وإلى أي ملف. في هذه الحالة ، يتم إرسال كل شيء بطريقة POST إلى ملف send.php. يجب أن يقبل البرنامج الموجود في هذا الملف ، على التوالي ، البيانات ، وسيتم تضمينها في مصفوفة النشر ، وإرسالها إلى عنوان البريد الإلكتروني المحدد.

دعنا نعود إلى النموذج. سيحتوي السطر الثاني على حقل لإدخال الاسم الكامل. لديه الكود التالي:

نوع النموذج هو نص ، أي أنه سيتمكن المستخدم من إدخال نص أو نسخه هنا من لوحة المفاتيح. تحتوي معلمة الاسم على اسم النموذج. في هذه الحالة ، هو fio ، تحت هذا الاسم سيتم إرسال كل ما يدخله المستخدم في هذا الحقل. تحدد معلمة العنصر النائب ما سيتم كتابته في هذا الحقل كتفسير.

السطر التالي:

هنا ، كل شيء تقريبًا هو نفسه ، ولكن تم تحديد اسم الحقل كبريد إلكتروني ، ويتم تحديد الشرح للمستخدم لإدخال عنوان بريده الإلكتروني في هذا النموذج.

سيكون السطر التالي هو زر الإرسال:

وسيكون السطر الأخير في النموذج هو العلامة

الآن دعونا نجمع كل ذلك معًا.





الآن لنجعل الحقول في النموذج إلزامية. لدينا الكود التالي:





قم بإنشاء ملف يقبل البيانات من نموذج HTML

سيكون هذا ملفًا يسمى send.php

في الملف ، في المرحلة الأولى ، تحتاج إلى تلقي البيانات من صفيف البريد. للقيام بذلك ، نقوم بإنشاء متغيرين:

$ fio = $ _POST ["fio"] ؛
$ email = $ _POST ["البريد الإلكتروني"] ؛

تُسبق أسماء المتغيرات في php بعلامة $ ، ويتم وضع فاصلة منقوطة في نهاية كل سطر. $ _POST عبارة عن مصفوفة يتم تمرير البيانات من النموذج إليها. في نموذج html ، تم تحديد طريقة الإرسال = "post". وبالتالي ، يتم أخذ متغيرين من أشكال أتش تي أم أل. لأغراض حماية موقعك ، تحتاج إلى تمرير هذه المتغيرات من خلال عدة عوامل تصفية - وظائف php.

ستعمل الوظيفة الأولى على تحويل جميع الأحرف التي سيحاول المستخدم إضافتها إلى النموذج:

في هذه الحالة ، لا يتم إنشاء متغيرات جديدة في php ، ولكن يتم استخدام المتغيرات الموجودة. ما سيفعله الفلتر هو تحويل الحرف "<" в "<". Также он поступить с другими символами, встречающимися в html коде.

تقوم الوظيفة الثانية بفك تشفير عنوان url إذا حاول المستخدم إضافته إلى النموذج.

$ fio = urldecode ($ fio) ؛
$ email = urldecode ($ email) ؛

مع الوظيفة الثالثة ، سنزيل المسافات من بداية السلسلة ونهايتها ، إن وجدت:

$ fio = تقليم ($ fio) ؛
$ email = تقليم ($ email) ؛

هناك وظائف أخرى تسمح لك بتصفية متغيرات php. يعتمد استخدامها على مدى خوفك من أن يحاول المهاجم إضافة رمز البرنامج إلى هذا النموذج من إرسال البيانات إلى بريد html.

تحقق من صحة البيانات التي تم تمريرها من نموذج HTML إلى ملف PHP

للتحقق مما إذا كان هذا الرمز يعمل أم لا ، إذا تم نقل البيانات ، يمكنك ببساطة عرضها على الشاشة باستخدام وظيفة echo:

صدى $ fio؛
صدى صوت "
";
صدى $ البريد الإلكتروني؛

السطر الثاني هنا ضروري لفصل مخرجات متغيرات php إلى أسطر مختلفة.

إرسال البيانات الواردة من نموذج HTML إلى البريد باستخدام PHP

لإرسال البيانات إلى البريد ، تحتاج إلى استخدام وظيفة البريد في PHP.

mail ("العنوان المراد الإرسال إليه" ، "موضوع الرسالة" ، "الرسالة (نص الرسالة)" ، "من: البريد الإلكتروني الذي تم إرسال الرسالة منه \ r \ n") ؛

على سبيل المثال ، تحتاج إلى إرسال البيانات إلى البريد الإلكتروني لمالك الموقع أو مديره [بريد إلكتروني محمي]

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

بريد(" [بريد إلكتروني محمي]"،" تطبيق من الموقع "،" الاسم: ". $ fio.". البريد الإلكتروني: ". $ email،" من: [بريد إلكتروني محمي]\ r \ n ")؛

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

إذا (بريد (" [بريد إلكتروني محمي]"،" طلب من الموقع "،" الاسم: ". $ fio.". البريد الإلكتروني: ". $ email،" من: [بريد إلكتروني محمي]\ r \ n "))
{
صدى "تم إرسال الرسالة بنجاح" ؛
) آخر (
}

وبالتالي ، سيبدو كود البرنامج الخاص بملف send.php الذي سيرسل بيانات نموذج HTML إلى البريد كما يلي:

$ fio = $ _POST ["fio"] ؛
$ email = $ _POST ["البريد الإلكتروني"] ؛
$ fio = htmlspecialchars ($ fio) ؛
$ email = htmlspecialchars ($ email) ؛
$ fio = urldecode ($ fio) ؛
$ email = urldecode ($ email) ؛
$ fio = تقليم ($ fio) ؛
$ email = تقليم ($ email) ؛
// echo $ fio؛
// صدى صوت "
";
// echo $ email؛
إذا (بريد (" [بريد إلكتروني محمي]"،" تطبيق من الموقع "،" الاسم: ". $ fio.". البريد الإلكتروني: ". $ email،" من: [بريد إلكتروني محمي]\ r \ n "))
(صدى "تم إرسال الرسالة بنجاح" ؛
) آخر (
صدى "حدثت أخطاء أثناء إرسال الرسالة" ؛
}?>

يتم التعليق على الأسطر الثلاثة للتحقق مما إذا كان يتم تمرير البيانات إلى الملف. إذا لزم الأمر ، يمكن إزالتها ، لأنها كانت مطلوبة فقط لتصحيح الأخطاء.

ضع كود إرسال نموذج HTML و PHP في ملف واحد

في التعليقات على هذه المقالة ، يسأل العديد من الأشخاص كيفية جعل كل من نموذج HTML ورمز PHP لإرسال البيانات إلى البريد في ملف واحد ، وليس ملفين.

لتنفيذ هذا العمل ، تحتاج إلى وضع كود HTML للنموذج في ملف send.php وإضافة شرط يتحقق من وجود متغيرات في مصفوفة POST (يتم تمرير هذه المصفوفة من النموذج). بمعنى ، إذا كانت المتغيرات في المصفوفة غير موجودة ، فأنت بحاجة إلى إظهار نموذج للمستخدم. خلاف ذلك ، تحتاج إلى أخذ البيانات من المصفوفة وإرسالها إلى المرسل إليه.

دعونا نرى كيفية تغيير كود PHP في ملف send.php:



استمارة طلب الموقع


// تحقق مما إذا كانت المتغيرات موجودة في صفيف POST
if (! isset ($ _ POST ["fio"]) و! isset ($ _ POST ["email"])) (
?>





) آخر (
// إظهار الشكل
$ fio = $ _POST ["fio"] ؛
$ email = $ _POST ["البريد الإلكتروني"] ؛
$ fio = htmlspecialchars ($ fio) ؛
$ email = htmlspecialchars ($ email) ؛
$ fio = urldecode ($ fio) ؛
$ email = urldecode ($ email) ؛
$ fio = تقليم ($ fio) ؛
$ email = تقليم ($ email) ؛
إذا (بريد (" [بريد إلكتروني محمي]"،" تطبيق من الموقع "،" الاسم: ". $ fio.". البريد الإلكتروني: ". $ email،" من: [بريد إلكتروني محمي]\ r \ n ")) (
صدى "تم إرسال الرسالة بنجاح" ؛
) آخر (
صدى "حدثت أخطاء أثناء إرسال الرسالة" ؛
}
}
?>



نتحقق من وجود متغير في مصفوفة POST باستخدام الدالة PHP isset (). علامة التعجب قبل هذه الوظيفة في حالة ما تعني النفي. بمعنى ، إذا كان المتغير غير موجود ، فعلينا إظهار الشكل. إذا لم أضع علامة تعجب ، فإن الشرط يعني حرفيًا - "إذا كان موجودًا ، فقم بإظهار النموذج". وهذا خطأ في حالتنا. وبطبيعة الحال ، يمكنك إعادة تسميته إلى index.php. إذا قمت بإعادة تسمية الملف ، فلا تنس إعادة تسمية اسم الملف وفي السطر

. يجب أن يرتبط النموذج بنفس الصفحة ، مثل index.php. أضفت عنوان الصفحة إلى الكود.

الأخطاء الشائعة التي تحدث عند إرسال نموذج PHP من موقع ويب

الخطأ الأول ، الذي ربما يكون الخطأ الأكثر شيوعًا ، هو عندما ترى صفحة بيضاء فارغة بدون رسائل. هذا يعني أنك ارتكبت خطأ في كود الصفحة. تحتاج إلى تشغيل عرض جميع الأخطاء في PHP ثم سترى مكان حدوث الخطأ. أضف إلى الكود:

ini_set ("display_errors"، "On") ؛
error_reporting ("E_ALL") ؛

يجب تشغيل ملف send.php على الخادم فقط ، وإلا فلن يعمل الرمز. من المرغوب فيه ألا تكون هذه وحدة خدمة محلية ، حيث لا يتم تكوينها دائمًا لإرسال البيانات إلى خادم بريد خارجي. إذا قمت بتشغيل الكود على خادم غير الخادم ، فسترى رمز PHP مباشرة على الصفحة.

وبالتالي ، من أجل العمل الصحيح ، أوصي بوضع ملف send.php على استضافة الموقع. هناك ، كقاعدة عامة ، تم تكوين كل شيء بالفعل.

خطأ شائع آخر هو ظهور الإشعار "تم إرسال الرسالة بنجاح" ، ولكن الرسالة لا تصل عبر البريد. في هذه الحالة ، تحتاج إلى التحقق بعناية من الخط:

إذا (بريد (" [بريد إلكتروني محمي]"،" طلب من الموقع "،" الاسم: ". $ fio.". البريد الإلكتروني: ". $ email،" من: [بريد إلكتروني محمي]\ r \ n "))

بدلاً من [بريد إلكتروني محمي] يجب أن يكون عنوان بريد إلكتروني تريد إرسال بريد إلكتروني إليه ، ولكن بدلاً من[بريد إلكتروني محمي] يجب أن يكون بريدًا إلكترونيًا موجودًا لهذا الموقع. على سبيل المثال ، بالنسبة إلى موقع الويب ، سيكون هذا . فقط في هذه الحالة سيتم إرسال الخطاب الذي يحتوي على البيانات من النموذج.

قائد السفينة 14 أكتوبر 2013 الساعة 07:29 مساءً

إرسال بريد إلكتروني برمجيًا باستخدام خدمات متنوعة

غالبًا ما يتعين عليك التعامل مع إرسال رسائل البريد الإلكتروني من رمز البرنامج. ليس عليك البحث بعيدًا عن الأمثلة.

هذا المقال هو تلميح ولا يكشف عن أي شيء جديد ، ولكن قبل كتابته ، بدوت متشابهًا على الإنترنت وفوجئت تمامًا أنه في كل مكان تقريبًا يقدمون إما حلًا لا يعمل أو عفا عليه الزمن ، أو ببساطة مكتوب بشكل أمي.

أول شيء يجب ألا تفعله بهذه الأمثلة هو استخدام System.Web.Mail ، الذي عفا عليه الزمن منذ فترة طويلة ، وبدءًا من Visual Studio 2010 ، لا يمكنك حتى إضافة مكتبة System.Web دون معرفة المسار الكامل إلى DLL المقابلة.
بدلاً من ذلك ، يُقترح استخدام مكتبة System.Net.
باستخدام System.Net ؛ باستخدام System.Net.Mail ؛
لذلك ، أبسط ، هو أيضًا الأكثر أهمية وغالبًا ما يتم استخدامه ، هو إرسال بريد إلكتروني من خادم البريد الخاص بك ، والذي تم تكوين عميل SMTP عليه. كما تعلم ، يمكن أن يكون الخادم إما هو الخادم الذي يعمل عليه التطبيق ، أو خادمًا بعيدًا ، ولديك حقوق إرسال رسائل بدون إذن إضافي.

نموذج رمز لإرسال بريد إلكتروني من جهاز محلي:
", "[بريد إلكتروني محمي]")) (mm.Subject =" موضوع البريد "؛ mm.Body =" نص البريد "؛ mm.IsBodyHtml = false ؛ باستخدام (SmtpClient sc = new SmtpClient (" 127.0. خادم البريد والمنفذ إذا لزم الأمر sc.Send (ملم ) ؛))

استخدام خدمات البريد مثل Gmail و Yandex و Mail.ru وما إلى ذلك. كل شيء هو نفسه ، تتم إضافة المعلمات فقط مع الإذن.

خادم SMTP: smtp.gmail.com
المنفذ: 587
باستخدام (MailMessage mm = new MailMessage ("Name ", "[بريد إلكتروني محمي]")) (mm.Subject =" موضوع البريد "؛ mm.Body =" نص البريد "؛ mm.IsBodyHtml = false ؛ باستخدام (SmtpClient sc = new SmtpClient (" smtp.gmail.com "، 587)) (sc. EnableSsl = true؛ sc.DeliveryMethod = SmtpDeliveryMethod.Network؛ sc.UseDefaultCredentials = false؛ sc.Credentials = new NetworkCredential (" [بريد إلكتروني محمي]"،" GmailPassword ") ؛ sc.Send (مم) ؛))

خادم SMTP: smtp.yandex.ru
المنفذ: 25
باستخدام (MailMessage mm = new MailMessage ("Name ", "[بريد إلكتروني محمي]")) (mm.Subject =" موضوع البريد "؛ mm.Body =" نص البريد "؛ mm.IsBodyHtml = false ؛ باستخدام (SmtpClient sc = new SmtpClient (" smtp.yandex.ru "، 25)) (sc. EnableSsl = true؛ sc.DeliveryMethod = SmtpDeliveryMethod.Network؛ sc.UseDefaultCredentials = false؛ sc.Credentials = new NetworkCredential (" [بريد إلكتروني محمي]"،" YandexPassword ") ؛ sc.Send (مم) ؛))

خادم SMTP: smtp.mail.ru
المنفذ: 25
باستخدام (MailMessage mm = new MailMessage ("Name ", "[بريد إلكتروني محمي]")) (mm.Subject =" موضوع البريد "؛ mm.Body =" نص البريد "؛ mm.IsBodyHtml = false ؛ باستخدام (SmtpClient sc = new SmtpClient (" smtp.mail.ru "، 25)) (sc. EnableSsl = true؛ sc.DeliveryMethod = SmtpDeliveryMethod.Network؛ sc.UseDefaultCredentials = false؛ sc.Credentials = new NetworkCredential (" [بريد إلكتروني محمي]"،" MailRuPassword ") ؛ sc.Send (مم) ؛))
إذا كان صندوق البريد الخاص بك على خدمة mail.ru ينتهي بـ inbox.ru أو list.ru أو bk.ru ، فإن عنوان خادم SMTP يتغير وفقًا لذلك (smtp.inbox.ru ، smtp.list.ru و smtp.bk.ru).

كما ترى ، من أجل استخدام أي خدمة بريد أخرى في برامجك ، ما عليك سوى معرفة عنوان ومنفذ خادم SMTP ، بالإضافة إلى قواعد التفويض.

يجب أيضًا أن نتذكر أن جميع خدمات البريد الإلكتروني التابعة لجهات خارجية تقريبًا تفرض قيودًا على عدد رسائل البريد الإلكتروني المرسلة في فترة زمنية.

العلامات: بريد إلكتروني ، إرسال رسائل بريد إلكتروني ، بروتوكول smtp

مرحبًا. نظرًا لتقدم الرسم البياني الخاص بي ، قررت إضافة مقال آخر. المقالة ، كما هو الحال دائمًا ، مع أمثلة في C # ، لكن schnik أكثر أو أقل مهارة "VB" سوف يعيد بسهولة كتابة جميع التعليمات البرمجية ضمن VB.NET.

لنبدأ ، ربما

لإرسال بريد إلكتروني ، نحتاج إلى استخدام ثلاثة أشياء. System.Net.Mail.SmtpClient لإرسال رسالة ، System.Net.Mail.MailMessage لتمثيل رسالة ، و System.Net.NetworkCredential للتخويل.

لنقم بإنشاء عميل:

عميل Var = SmtpClient جديد ("$ Mail-Server-Address $" ، $ Mail-Server-Port $) ؛

مرجع المُنشئ:

SmtpClient (مضيف سلسلة ، منفذ int) ؛

لنقم بإنشاء مثيل لفئة MailMessage:

Var msg = new MailMessage ("from"، "to")؛

الآن دعنا نحدد موضوع ومحتوى الحرف (بالمناسبة ، كل شيء يمكن ضبطه في المنشئ). بالإضافة إلى تسجيل الدخول وكلمة المرور لعميل smtp. ثم سنرسل بريدًا إلكترونيًا باستخدام طريقة الإرسال لكائن العميل لدينا:

عميل Var = SmtpClient جديد ("smtp.yandex.ru") ؛ var msg = new MailMessage ("from"، "to")؛ msg.Subject = "رسالتي الاختبارية" ؛ msg.Body = "مرحبًا يا صديقي! فقط تخيل أنني كتبت للتو برنامجًا رائعًا لإرسال هذه الرسالة التي لا معنى لها إليك مليار مرة فقط بعدة نقرات!"؛ msg.SubjectEncoding = Encoding.UTF8 ، msg.BodyEncoding = Encoding.UTF8 ، // الأولوية msg.Priority = MailPriority.High ؛ // نص الرسالة في html؟ msg.IsBodyHtml = خطأ ، client.Credentials = new NetworkCredential ("تسجيل الدخول" ، "كلمة المرور") ؛ العميل.إرسال (msg) ؛

هذا كل شئ. تأكد من إدخال جميع المعلومات المطلوبة بشكل صحيح.


تعليقات()

30

CoolHacker ، هل يمكنني استعارة هذا الرمز منك للجزء 3 من متصفح الويب؟

كولهاكر 770 30

شكرًا لك ، سأستخدمه لإرسال الروابط عبر البريد الإلكتروني
كما هو الحال في Firefox

LetSevI 10

تحميل...
قمة