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

24.06.2020

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

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

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

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

السطر الأول سيكون على النحو التالي

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

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

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

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

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

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

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

الآن دعونا نجمع كل شيء معًا.





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





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

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

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

$fio = $_POST["fio"];
$email = $_POST["email"];

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

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

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

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

$fio = urldecode($fio);
$email = urldecode($email);

أما الدالة الثالثة فسوف نقوم بإزالة المسافات من بداية السطر ونهايته إن وجدت:

$fio = تقليم($fio);
البريد الإلكتروني $ = تقليم($email);

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

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

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

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

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

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

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

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

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



استمارة التقديم من الموقع


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





) آخر (
// اعرض النموذج
$fio = $_POST["fio"];
$email = $_POST["email"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = تقليم($fio);
البريد الإلكتروني $ = تقليم($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"))

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

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

دعونا نبدأ، على ما أعتقد

لإرسال البريد الإلكتروني نحتاج إلى استخدام ثلاثة كائنات. System.Net.Mail.SmtpClient لإرسال الرسالة، System.Net.Mail.MailMessage لتقديم الرسالة، وSystem.Net.NetworkCredential للتفويض.

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

varclient = new SmtpClient("$Mail-Server-Address$", $Mail-Server-Port$);

مرجع المصمم:

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

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

var msg = new MailMessage("from", "to");

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

عميل var = new 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 = false; Client.Credentials = new NetworkCredential("login", "password"); client.Send(msg);

هذا كل شئ. ولا تنسى تعبئة كافة البيانات المطلوبة بشكل صحيح.


تعليقات ()

روسلانج02 30

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

كولهاكر 770 روسلانج02 30

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

ليت سيف آي 10

إرسال الرسائل عبر البريد الإلكتروني في Visual Studio 2013 C++


يبدو، لماذا إعادة اختراع العجلة؟ هناك العديد من البرامج التي يمكنها إرسال رسائل البريد الإلكتروني: المدفوعة والمجانية. في هذه البرامج، يمكنك إرسال رسائل ليس إلى واحد، ولكن إلى العديد من المستلمين في وقت واحد. ومع ذلك، فإن إضافة المستلمين لا يزال يتم يدويًا؛ حيث يعد إدخال عناوينهم عملاً روتينيًا، خاصة إذا كان هناك أكثر من اثني عشر منهم. ماذا لو كنت بحاجة إلى إرسال مئات رسائل البريد الإلكتروني بانتظام؟ وأنا لا أتحدث عن البريد العشوائي، ولكن أعني رسائل بريدية قانونية تمامًا؟

في هذه الحالة، يمكن أن يأتي برنامج خاص للإنقاذ. لن تحتوي هذه المقالة على مثل هذا البرنامج بأكمله، بل على برنامج صغير يرسل ببساطة حرفًا واحدًا إلى عنوان واحد. في هذه الحالة، يحدث التفويض عبر smpt، أي أنه لا يتم إرسال الرسالة من مكان غير معروف، ولكن من صندوق بريد حقيقي للغاية. يستخدم المثال mail.ru.

إذن، هذا هو نص البرنامج.

# تضمين "stdafx.h" # باستخدام باستخدام نظام مساحة الاسم؛ باستخدام مساحة الاسم System::Net; باستخدام مساحة الاسم System::Net::Mail; باستخدام مساحة الاسم System::Net::Mime; باستخدام مساحة الاسم System::Threading; باستخدام مساحة الاسم System::ComponentModel; int main() ( SmtpClient ^Smtp = gcnew SmtpClient("smtp.mail.ru"، 25)؛ Smtp->Credentials = gcnew NetworkCredential("[email protected]"، "your_password")؛ Smtp->EnableSsl = صحيح ; MailMessage ^Message = gcnew MailMessage(); From = gcnew MailAddress("[email protected]"); = "Header"; دعم بيئة CLR. دعونا نلقي نظرة فاحصة على ما يحدث وعلى أي سطر في برنامج C++ هذا يرسل رسالة إلى صندوق البريد الإلكتروني المحدد.

من الأسطر 1 إلى 8، يتم توصيل ملفات الرأس ومساحات الأسماء. يقوم السطر 13 بتهيئة خادم smpt. يستخدم Yandex وGoogle موقعهما الخاص: smtp.yandex.ru وsmtp.google.ru، على التوالي. الرقم 25 على هذا الخط هو المنفذ. إذا قام مزود الخدمة الخاص بك بحظر هذا المنفذ أو لا يمكنك الاتصال، فيمكنك تجربة الخيارات التالية: 465 أو 587. في السطر 14، تحتاج إلى إدخال حساب بريدك الإلكتروني (الذي سيتم إرسال الرسالة منه) وكلمة المرور لصندوق البريد هذا.

نولي اهتمامًا خاصًا للسطر 15 - حيث يتم توصيل بروتوكول SSL الآمن. هذا مطلوب لـ Yandex و Mail. السطر 17 ينشئ رسالة؛ في 18 - عنوان المرسل؛ في 19 - عنوان المستلم؛ 20 - رأس الرسالة؛ 21 - رسالة. يرسل السطر 22. إذا لم تظهر أي أخطاء بعد بدء تشغيل البرنامج، ولم يحدث شيء، فكل شيء على ما يرام - تحقق من صندوق بريد المستلم.

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

يمكنك طرح أي أسئلة حول برامج C++، وjava، والبرامج النصية في Java script وphp، وإنشاء موقع الويب وتخطيطه عن طريق البريد [البريد الإلكتروني محمي]أو اضغط على Skype up777up2. مقابل رسوم معقولة جدًا، سأكون سعيدًا بمساعدتك.

إضافة

طرح أحد زوار المدونة سؤالاً: كيفية إرفاق ملف في هذا البرنامج؟ الجواب بسيط: تحتاج إلى إضافة بضعة أسطر من التعليمات البرمجية إلى التطبيق:

سلسلة ^ att = L"att.xls"; Attachment^ dan = gcnew Attachment(att, MediaTypeNames::Application::Octet); الرسالة->المرفقات->إضافة(dan); في السطر الأول نحدد الملف المرفق، وفي الثاني نحدد البيانات ونأمر بعدم تفسيرها (رأس نوع المحتوى لبروتوكول MIME) وفي الثالث نضيفها إلى الحرف. هذا كل شئ.

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

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

أول شيء لا ينبغي عليك فعله بناءً على هذه الأمثلة هو استخدام 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.0.1"))(// يجب أن يكون العنوان هنا خادم البريد والمنفذ، إذا لزم الأمر sc.Send(mm);

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

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

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

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

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

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

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

السيد أولمبيا أكتوبر 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.0.1"))(// يجب أن يكون العنوان هنا خادم البريد والمنفذ، إذا لزم الأمر sc.Send(mm);

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

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

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

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

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

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

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