الشكل 1 كود HTML لنموذج التغذية الراجعة
نتيجة لذلك ، يمكن رؤية نموذج الملاحظات الوارد هنا في لقطة الشاشة التالية.
وهكذا يتم إنشاء النموذج المطلوب. والآن يمكنك الانتقال إلى قضايا معالجة البيانات وإرسالها في شكل رسالة بريدية.
تثبيت مكتبة PHPMailer
كما ذكرنا سابقًا ، لإرسال البريد ، سنستخدم مكتبة PHPMailer ، والتي ستعمل على تبسيط إرسال البريد الإلكتروني بشكل كبير عبر بروتوكول SMTP بتفويض من خدمة بريد تابعة لجهة خارجية.
لتثبيته ، تحتاج إلى تنزيل الملفات الضرورية. يمكن القيام بذلك من خدمة الويب GitHub باستخدام Composer (مدير تبعية الحزمة لـ PHP). أو فقط قم بتنزيل الملفات الضرورية بالطريقة المعتادة.
لقطة شاشة 73
يوجد أدناه صفحة خدمة ويب GitHub بها ارتباط لتنزيل منتظم لمكتبة PHPMailer.
بالإضافة إلى ذلك ، يمكن تنزيل أحدث إصدار 6.0.7 ، والذي تم حفظه وقت كتابة هذا التقرير ، من المواد المرفقة.
في أي حال ، يجب فك ضغط ملف الأرشيف الناتج ، وبعد ذلك يجب وضع المجلد الرئيسي PHPMailer مع جميع محتوياته في جذر الموقع. في الوقت نفسه ، للتبسيط ، يمكنك إعادة تسميته إلى PHPMailer. يوجد أدناه محتويات مجلد PHPMailer الموضوعة في الدليل الجذر للموقع.
وهكذا ، قمنا بتثبيت مكتبة PHPMailer. بعد ذلك ، يمكننا البدء في إنشاء برنامج نصي سنرسل به رسائل بريد إلكتروني من موقعنا.
نحن نشكل برنامج نصي لإرسال البريد عبر SMTP
لكتابة البرنامج النصي ، يكفي استخدام إرشادات استخدام PHPMailer المتوفرة على صفحة GitHub التي استخدمناها سابقًا لتنزيل المكتبة.
على وجه الخصوص ، يشيرون إلى أنه في بداية البرنامج النصي ، يلزم استيراد فئات PHPMailer إلى مساحة الاسم العالمية. ويتم إعطاء أسطر محددة من الكود المقابل. كما يقدم أمثلة على استخدام خصائص وطرق PHPMailer ، بما في ذلك خيار إرسال البريد عبر SMTP.
ولكن إذا لم يكن هذا كافيًا ، فيمكنك أيضًا استخدام التوثيق ، الذي يحتوي على وصف لجميع خصائص وطرق هذه المكتبة.
لقطة شاشة 74
يوجد أدناه رمز البرنامج النصي لإرسال البريد من نموذج الملاحظات عبر SMTP مع الإذن. حيث يتم تقديم جميع الأسطر المتعلقة بـ PHPMailer مع شرح وتمييزها بخلفية فاتحة.
تتم الإشارة إلى الباقي ، بما في ذلك الأجزاء المتعلقة باستلام ومعالجة البيانات من النموذج ، والذي كان علينا سابقًا استخدامه في معالجات أخرى ، بخلفية مظلمة. لقد تمت مناقشتها بالتفصيل الكافي في وقت سابق من المقالة ، وهي مكرسة ، على وجه التحديد ، لقضايا الحصول على البيانات والتحقق من صحتها من نموذج في PHP. حيث تحدثنا أيضًا عن الوظيفة المخصصة العالمية للتحقق من صحة بيانات النموذج ومعالجتها check_symbol ().
سنضع هذا البرنامج النصي في نفس ملف kontakty.php ، حيث أنشأنا نموذج التعليقات مسبقًا.
// ---- Script لإرسال البريد عبر SMTP باستخدام PHPMailer ----
// استيراد فئات PHPMailer إلى مساحة الاسم العالمية. يجب أن تكون في أعلى النص وليس داخل الوظيفة
استعمال PHPMailer \ PHPMailer \ PHPMailer ؛
استعمال PHPMailer \ PHPMailer \ استثناء ؛
إذا
(!فارغة($ _POST ["زر الاتصال"])) (
$ name = $ _POST ["اسم جهة الاتصال"] ؛
$ name = check_symbol ($ name، "Name"، "1"، "/ ^ + \ z / iu") ؛
$ email = $ _POST ["contact-email"] ؛
$ email = check_symbol ($ email ، "Email" ، "1" ، "/^[بريد إلكتروني محمي](+ \.) + (2،6) \ z / i ");
$ subject = $ _POST ["جهة الاتصال"] ؛
$ subject = check_symbol ($ subject، "Subject"، "1"، "0")؛
تعليق $ = $ _POST ["تعليق جهة اتصال"] ؛
تعليق = check_symbol (تعليق دولار ، "رسالة نصية", "1"
, "0"
);
إذا
(!فارغة($ GLOBALS ["تنبيه"])) (
تنبيه دولار = "لم يتم إرسال بيانات النموذج. تمت مواجهة الأخطاء التالية: \ n"تنبيه $؛
تضمن"alert.php" ؛
آخر
{
// اتصال المكتبة
يتطلب"PHPMailer / src / PHPMailer.php" ؛
يتطلب"PHPMailer / src / Exception.php" ؛
يتطلب"PHPMailer / src / SMTP.php" ؛
$ mail = الجديد PHPMailer () ، // تهيئة الفئة
$ من = " [بريد إلكتروني محمي]"
; // عنوان البريد الذي يتم إرسال الرسالة منه
دولار إلى = " [بريد إلكتروني محمي]"
; // عنوان المستلم
$ mail -> isSMTP () ؛ // تطبيق بروتوكول SMTP
$ mail -> المضيف = "smtp.yandex.ru" ؛ // عنوان خادم البريد
$ mail -> SMTPAuth = صحيح
; // تمكين وضع التفويض
$ mail -> اسم المستخدم = " [بريد إلكتروني محمي]"
; // تسجيل الدخول من بريد مجال متصل بخدمة بريد تابعة لجهة خارجية (في هذه الحالة ، Yandex.Mail)
$ mail -> كلمة المرور = "27MrDon89" ؛ // كلمة المرور لبريد المجال
$ mail -> SMTPSecure = "ssl" ؛ // بروتوكول التشفير
$ mail -> المنفذ = "465" ؛ // منفذ خادم SMTP
$ mail -> CharSet = "UTF-8" ؛ //التشفير
$ mail -> setFrom ($ from، "Administrator")؛ // عنوان المرسل واسمه
$ mail -> addAddress ($ to، "Administrator")؛ // عنوان واسم المستلم
$ mail -> isHTML ( صحيح
); // ضبط تنسيق البريد الإلكتروني على HTML
$ mail -> الموضوع = "تم إرسال نموذج الاتصال"; // موضوع البريد الإلكتروني (العنوان)
$ mail -> Body = "
اسم المرسل: اسم $
عنوان المرسل: البريد الإلكتروني
موضوع الرسالة: الموضوع $
محتوى الرسالة: تعليق $
"
; //محتوى الرسالة
$ mail -> AltBody = "نص رسالة بديلة"; // حرف بديل في حالة عدم دعم عميل البريد لتنسيق HTML
$ mail -> SMTPDebug = 0 ؛ // تمكين تصحيح أخطاء SMTP: 0 - إيقاف التشغيل (للاستخدام المنتظم) ، 1 = رسائل العميل ، 2 - رسائل العميل والخادم
إذا(بريد $ -> إرسال ()) (
تنبيه دولار = "تم الارسال"; // عرض رسالة في مربع حوار المتصفح حول إرسال الرسالة بنجاح
آخر
{
تنبيه دولار = "خطأ ، تعذر إرسال البريد:". $ mail -> ErrorInfo ؛ // رسالة خطأ الإخراج
تضمن"alert.php" ؛
الشكل 5 البرنامج النصي لإرسال البريد الإلكتروني عبر SMTP مع الإذن
كما ترى ، فإن كل السطور المرتبطة مباشرة بإرسال رسالة بريد ، والتي يتم فيها تعيين الأساليب والخصائص الضرورية ، تكون مصحوبة بالتعليقات. لذلك ، ليس من المنطقي التكرار ، لكن يمكننا الإسهاب فقط في بعض منها ، والتي تتطلب بالفعل تفسيرات إضافية ، وهي:
1. نظرًا لحقيقة إرسال الرسالة من خدمة بريد تابعة لجهة خارجية ، يتم هنا تطبيق الإعدادات المقابلة لخادم SMTP معين. في هذه الحالة ، يتم تطبيق قيم الخاصية التالية لحالة استخدام خادم Yandex.Mail:
- ملكية يستضيف(pos.28) - عنوان خادم البريد بقيمة smtp.yandex.ru ؛
- ملكية SMTPSecure
- ملكية ميناء
تم أخذ قيم الخصائص هذه من صفحة Yandex.Help الموضحة في لقطة الشاشة التالية.
ولكن يمكن الحصول على هذه المعلومات من مصادر أخرى. للقيام بذلك ، يكفي إدخال الاستعلام المناسب في محرك البحث ، على سبيل المثال: "Yandex smtp server". أين يمكنني أن أجد عددًا كبيرًا من الروابط حول هذا الموضوع.
وبالمثل ، يمكن الحصول على الإعدادات من خوادم SMTP أخرى. يوجد أدناه لقطة شاشة لصفحة تعليمات Mail.ru ، والتي تعرض إعدادات خادم SMTP لخدمة بريد Mail.ru.
وبالتالي ، في حالة استخدام Mail.ru كخادم SMTP تابع لجهة خارجية ، يجب تطبيق القيم التالية لخصائص فئة PHPMailer:
- ملكية يستضيف(نقاط البيع 28) - عنوان خادم البريد (smtp.mail.ru) ؛
- ملكية SMTPSecure(نقطة البيع 32) - بروتوكول التشفير (SSL) ؛
- ملكية ميناء(pos.33) - منفذ خادم SMTP (465).
يجب تطبيق نهج مماثل على خدمات البريد الأخرى.
2. في الممتلكات اسم االمستخدم(نقطة البيع 30) يجب عليك تحديد العنوان الكامل لصندوق البريد الخاص ببريد المجال. في هذه الحالة، " [بريد إلكتروني محمي]".
ومع ذلك ، إذا لم تكن تستخدم حساب بريد مجال لإرسال رسائل ، بل عنوانًا مرتبطًا مباشرةً بخدمة البريد ، على سبيل المثال " [بريد إلكتروني محمي]"، إذًا فقط جزء العنوان قبل علامة" @ "يجب أن يكون تسجيل الدخول. في هذه الحالة ، سيكون لتسجيل الدخول القيمة" feedback ".
3. يوفر PHPMailer خاصية SMTPDebug(نقطة البيع 50) ، والذي يسمح لك بعرض مستويات مختلفة من الأخطاء على شاشة المتصفح. تعمل هذه الميزة على تبسيط عملية العثور على المشكلات بشكل كبير عند تصحيح أخطاء البرنامج النصي.
عادةً ، في الوضع العادي ، مع ضبط القيمة على 0 ، يتم تعطيل إخراج المعلومات التفصيلية حول الخطأ. ولكن إذا كانت هناك مشكلات في إرسال البريد ، أو عند تصحيح الأخطاء ، لعرض معلومات أكثر أهمية حول الخطأ ، فمن الممكن استخدام قيم أخرى.
لكي نرى كيف تبدو عمليًا ، دعنا نقدم مؤقتًا بعض الأخطاء في الإعدادات. على سبيل المثال ، في كلمة المرور لبريد المجال (الملكية كلمة المرور، نقاط البيع 31). وأيضًا لعرض معلومات تفصيلية حول الخطأ المحدد مؤقتًا في الخاصية SMTPDebug(pos.50) value 1. بعد ذلك ، عندما يتم تصحيح كل شيء والتحقق منه ، قم بتعطيل وضع تصحيح أخطاء SMTP ، واستبدل 1 بـ 0.
في الجزء الأخير من البرنامج النصي ، بعد تحديد جميع الخصائص والأساليب اللازمة ، يتم استخدام الطريقة لإرسال الحرف إرسال()) (نقاط البيع 51). وإذا تم إرسال الرسالة ، والطريقة إرسال()للكائن $ mailسيعود صحيحًا ، ثم في مربع حوار المتصفح من خلال متغير تنبيه $سيتم عرض رسالة حول نجاح إرسال البريد (نقطة البيع 52).
إذا تعذر إرسال البريد لسبب ما ، وبالتالي لا يمكن للطريقة أن تعود صحيحة ، فستكون هذه الحالة مصحوبة برسالة خطأ مناسبة (البند 55).
التحقق من إرسال البريد الإلكتروني
بعد أن نقوم بتجميع نص إرسال البريد ، بالطبع ، نحتاج إلى إلقاء نظرة على نتيجة "إبداعنا". هل أخذنا كل شيء في الاعتبار هنا وارتكبنا أي أخطاء.
للقيام بذلك ، دعنا نحاول ، كما هو مخطط ، إرسال رسالة من المستخدم إلى مسؤول الموقع من نموذج الملاحظات. يوجد أدناه لقطة شاشة لنموذج التعليقات مع ملء الحقول قبل إرسالها.
وها هي نتيجة تقديم الاستمارة.
حيث ، من الرسالة الموجودة في مربع حوار المتصفح ، يمكن ملاحظة أنه لا يمكن إرسال الحرف بسبب مشكلة اتصال SMTP.
ولكن ، منذ الآن الممتلكات SMTPDebug(pos.50) مضبوط على 1 ، ثم سنتمكن من عرض معلومات مفصلة حول الخطأ الذي حدث ومعرفة سبب حدوثه.
توضح لقطة الشاشة التالية أنه عند محاولة الاتصال ، تم اكتشاف خطأ في المصادقة ، مما يعني أنه تم استخدام تسجيل دخول أو كلمة مرور غير صحيحة.
بعد حل مشكلة عدم تطابق كلمة المرور (تم استخدام كلمة المرور الخاطئة مسبقًا لتتمكن من التحقق من مخرجات المعلومات الإضافية حول الخطأ) ، سنحاول إرسال البريد مرة أخرى.
هذه المرة ، بدا أن كل شيء يسير على ما يرام ، وتلقينا رسالة تفيد بأن البريد قد تم إرساله بنجاح. على ما يبدو ، بصرف النظر عن الخطأ المؤقت الذي تم إدخاله عن عمد في كلمة المرور لبريد المجال ، لم نقم بأي إشعارات أخرى.
ولكن للتأكد من تسليم الرسالة بالفعل إلى المرسل إليه ، دعنا ندخل البريد بالعنوان [بريد إلكتروني محمي]وانظر إلى النتيجة.
كما ترى ، رسالة من العنوان [بريد إلكتروني محمي]، والتي أرسلنا منها رسالة بريد إلكتروني باسم "ملاحظات" إلى مسؤول الموقع تم الوصول إليها بأمان. في الوقت نفسه ، يحتوي نص الرسالة على كل المحتوى الذي شكلناه في البرنامج النصي باستخدام البيانات الواردة من نموذج الملاحظات ، وهي:
- اسم المرسل: نيكولاي ؛
- عنوان المرسل: [بريد إلكتروني محمي];
- موضوع الرسالة: التحقق من إرسال البريد ؛
- محتوى الرسالة: رسالة تجريبية.
الآن ، بعد التحقق بنجاح من إرسال البريد ، سيكون من الممكن تعطيل وضع تصحيح أخطاء SMTP عن طريق تعيين الخاصية SMTPDebug(نقاط البيع 50) القيمة 0.
وبالتالي ، فقد أكملنا مهمة إنشاء أداة لإرسال البريد عبر SMTP بإذن باستخدام خادم بريد تابع لجهة خارجية.
على سبيل المثال ، في المقالة التالية ، سنرى كيفية إرسال رسائل تأكيد بالبريد الإلكتروني لاستعادة معلومات حساب المستخدم المسجل.
ملفات مصدر الموقع
يمكن تنزيل ملفات المصدر الخاصة بالموقع مع التحديثات التي تم إجراؤها في هذه المقالة من المواد الإضافية المرفقة:
- ملفات دليل www
- جداول قاعدة بيانات MySQL
نظرًا لأن إرسال رسائل مجهولة المصدر من خوادم استضافة Windows الافتراضية محظور ، يجب أن يتم إرسال الرسائل من خلال خادم SMTP ، والذي من الممكن أيضًا استخدام نظام البريد الخاص بنا.
كيف ترسل رسائل البريد الإلكتروني باستخدام PHP؟
استخدام أي فئة PHP تدعم التفويض على خادم smtp. على سبيل المثال ، يمكنك استخدام مجموعة فئة PHPMailer.
يمكنك أيضًا استخدام مثالنا ، الذي ينفذ إرسال رسائل البريد الإلكتروني باستخدام خادم smtp الذي يتطلب تفويضًا. لذلك ، لا تنس إضافة تفاصيل الوصول المناسبة إلى البرنامج النصي ، على سبيل المثال:
// إذا كنت بحاجة إلى إظهار سجل جلسة SMTP ، فيمكنك إلغاء التعليق على السطر التالي. // $ _SERVER ["debug"] = صحيح ؛الوظيفة MailSmtp (المتلقي $ ، الموضوع $ ، المحتوى $ ، $ headers ، $ debug = 0) ($ smtp_server = "smtp.site"؛ // عنوان خادم SMTP smtp_port دولار = 25 ؛ // منفذ خادم SMTP smtp_user دولار أمريكي = " [بريد إلكتروني محمي]"
;
// اسم المستخدم للترخيص على خادم SMTP smtp_password = "pAsSwORd"؛ // كلمة المرور للترخيص على خادم SMTP$ mail_from = " [بريد إلكتروني محمي]"
;
// صندوق البريد الذي يتم إرسال الرسالة منه$ sock = fsockopen ($ smtp_server ، $ smtp_port ، $ errno ، $ errstr ، 30) ؛ $ str = fgets ($ sock، 512)؛ إذا (! $ sock) (printf ("لم يتم إنشاء المقبس \ n") ؛ خروج (1) ؛) smtp_msg ($ sock، "HELO". $ _SERVER ["SERVER_NAME"]) ؛ smtp_msg ($ sock، "تسجيل دخول مصدق")؛ smtp_msg ($ sock، base64_encode ($ smtp_user)) ؛ smtp_msg ($ sock، base64_encode ($ smtp_password)) ؛ smtp_msg ($ sock، "MAIL من:<"
.
$mail_from
.
">") ؛ smtp_msg ($ sock،" RCPT TO:<"
.
$reciever
.
">")؛ smtp_msg ($ sock،" DATA ")؛ $ headers =" Subject: ". $ subject." \ r \ n ". $ headers؛ $ data = $ headers." \ r \ n \ r \ n " . $ content. "\ r \ n."؛ smtp_msg ($ sock، $ data)؛ smtp_msg ($ sock، "QUIT")؛ fclose ($ sock)؛) الوظيفة smtp_msg ($ sock، $ msg) (if ( ! $ sock) (printf ("Broken socket! \ n")؛ exit (1)؛) if (isset ($ _ SERVER ["debug"]) && $ _SERVER ["debug"]) (printf ("أرسل منا :٪س
"، nl2br (htmlspecialchars ($ msg)))؛) fputs ($ sock،" $ msg \ r \ n ")؛ $ str = fgets ($ sock، 512)؛ if (! $ sock) (printf (" Socket is down \ n ")؛ exit (1)؛) else (if (isset ($ _ SERVER [" debug "]) && $ _SERVER [" debug "]) (printf (" حصلت من الخادم:٪ s
"، nl2br (htmlspecialchars ($ str)))؛) $ e = explode (" "، $ str)؛ $ code = array_shift ($ e)؛ $ str = implode (" "، $ e)؛ if ($ code > 499) (printf ( "مشاكل في محادثة SMTP.
كود٪ d.
رسائل
"
، $ code، $ str)؛ خروج (1) ؛ )))؟>
قم بتنزيل مثال لبرنامج نصي منتهي باستخدام وظيفة MailSmtp (): smtpauth.php.sample
يمكنك استخدام وظيفة MailSmtp () الموضحة أعلاه لاستبدال وظيفة mail () مباشرةً ، ضع في اعتبارك مثالاً لأبسط نموذج في PHP:
// رؤوس الرسائل ، فهي تحدد ترميز الرسالة ، والحقول من ، إلى ، إلخ.رؤوس $ = "إصدار MIME: 1.0 \ r \ n"؛ رؤوس $. = "نوع المحتوى: text / html؛ charset = windows-1251 \ r \ n"؛ رؤوس $. = "إلى: $ to \ r \ n"؛ رؤوس $. = "من: اسم المرسل "
;
// mail ($ to، $ subject، $ message، $ headers) ؛ need_once "smtpauth.php" ؛ MailSmtp ($ to، $ subject، $ message، $ headers)؛ )؟>
لكي يعمل هذا النموذج بدون وظيفة mail () ، قمنا بتضمين ملف smtpauth.php عبر تتطلب_once وسمينا وظيفة MailSmtp () الموضحة فيه ، مع وسيطات مشابهة لـ mail (). في الوقت نفسه ، قمنا بالتعليق على استدعاء mail () نفسه في الكود لتجنب حدوث خطأ عند تنفيذ البرنامج النصي.
كيفية إرسال رسائل البريد الإلكتروني باستخدام ASP.NET؟
إذا كنت تستخدم الإصدار 2.0 ثم تستخدم فئة MailMessage System.Net.Mail) ، موصوفة جيدا.
فيما يلي أمثلة على استخدامه للغات "C #" و "VisualBasic":
مثال للغة "C #":
<% @Page Language="c#" %>
<% @Import Namespace="System.Net.Mail" %>
<% @Import Namespace="System.Net" %>
<%
MailMessage message = new MailMessage(); // إنشاء حرف جديد message.To.Add (" [بريد إلكتروني محمي]"); // إضافة عنوان المستلم message.From = new MailAddress (" [بريد إلكتروني محمي]domain.tld"، "اسم المرسل")؛ // تحديد اسم وعنوان المرسل message.Subject = "الموضوع" ؛ // دلالة على موضوع الرسالة message.BodyEncoding = System.Text.Encoding.UTF8 ، // تحديد ترميز الحرف message.IsBodyHtml = خطأ ؛ // تحديد تنسيق الحرف (صحيح - HTML ، خطأ - ليس HTML) message.Body = "نص الرسالة" ؛ // تحديد نص (نص) الحرفعميل SmtpClient = جديد SmtpClient ("smtp.site"، 25)؛ // إنشاء اتصال جديد بخادم "smtp.site" client.DeliveryMethod = SmtpDeliveryMethod.Network ، // يحدد طريقة إرسال الرسائل client.EnableSsl = خطأ ، // يعطل الحاجة إلى استخدام اتصال آمن بالخادم client.UseDefaultCredentials = خطأ ، // تعطيل استخدام تفاصيل التفويض "افتراضيًا" client.Credentials = new NetworkCredential (" [بريد إلكتروني محمي]domain.tld"، "***كلمه السر***")؛ // تحديد التفاصيل المطلوبة (اسم المستخدم وكلمة المرور) للترخيص على خادم SMTPالعميل.إرسال (رسالة) ؛ // إرسال رسالة
%>
قم بتنزيل مثال لنموذج منتهي يوضح استخدام هذه الطريقة: MailForm.aspx.
مثال عن لغة "VisualBasic":
<% @Page Language="VB" Debug="true" %>
<% @Import Namespace="System.Net.Mail" %>
<% @Import Namespace="System.Net" %>
<%
Dim smtpMssg AS new MailMessage
smtpMssg.From = New MailAddress ("[بريد إلكتروني محمي]domain.tld"،" SenderName ") smtpMssg.To.Add (" [بريد إلكتروني محمي]") "أضف عنوان المستلم smtpMssg.Subject = "الموضوع" "يشير إلى موضوع الرسالة smtpMssg.Body = "نص الرسالة" "تحديد نص (نص) الرسالة smtpMssg.BodyEncoding = System.Text.Encoding.UTF8 "يشير إلى ترميز الحرف smtpMssg.IsBodyHtml = خطأ "إشارة إلى تنسيق الحرف (صواب - HTML ، خطأ - وليس HTML) Dim SmtpMail كـ SmtpClient جديد ("smtp.site"، 25) "التصريح عن كائن جديد من النوع" SmtpClient " SmtpMail.DeliveryMethod = SmtpDeliveryMethod.Network "تحديد طريقة تسليم الرسالة SmtpMail.UseDefaultCredentials = خطأ "تعطيل استخدام تفاصيل التفويض" افتراضيًا " SmtpMail.EnableSsl = خطأ "يعطل الحاجة إلى استخدام اتصال آمن بالخادم SmtpMail.Credentials = new NetworkCredential (" [بريد إلكتروني محمي]domain.tld"، "***كلمه السر***") "تحديد التفاصيل الضرورية (اسم المستخدم وكلمة المرور) للترخيص على خادم SMTPإرسال smtpMail (smtpMssg) "ارسال رسالة
%>
هناك أيضًا فئة SmtpMail مهملة (وموقوفة) (باستخدام مساحة الاسم System.Web.Mail). فيما يلي مثال على استخدامه للغة "VisualBasic":
<% @Page Language="VB" Debug="true" %>
<% @Import Namespace="System.Web" %>
<% @Import Namespace="System.Web.Mail" %>
<%
Dim smtpMssg = new MailMessage "التصريح عن كائن جديد من النوع" MailMessage " smtpMssg.From = "اسم المرسل domain.tld>" "تحديد اسم وعنوان المرسل smtpMssg.to = " [بريد إلكتروني محمي]domain.tld" "تحديد عنوان المستلم smtpMssg.BodyFormat = MailFormat.Text "يشير إلى تنسيق الرسالة smtpMssg.BodyEncoding = Encoding.UTF8 "يشير إلى ترميز الحرف smtpMssg.Subject = "الموضوع" "يشير إلى موضوع الرسالة smtpMssg.Body = "نص الرسالة" "تشير إلى نص الرسالة smtpMssg.Fields.Add ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"، 1) "تحديد الحاجة إلى ترخيص SMTP على الخادم smtpMssg.Fields.Add ("http://schemas.microsoft.com/cdo/configuration/sendusername"، " [بريد إلكتروني محمي]domain.tld") "ادخل اسم المستخدم smtpMssg.Fields.Add ("http://schemas.microsoft.com/cdo/configuration/sendpassword"، "*** password ***") "كلمة سر الدخول SmtpMail.SmtpServer = "smtp.site" "حدد عنوان خادم SMTPإرسال smtpMail (smtpMssg) "ارسال رسالة
%>
كيف ترسل رسائل البريد الإلكتروني باستخدام ASP؟
يرجى ملاحظة أنه عند استخدام خادم smtp الخاص بنا ، يلزم الحصول على إذن ، لذلك لا تنس إضافة تفاصيل الوصول المناسبة إلى البرنامج النصي ، على سبيل المثال:
<%
iConfig = Server.CreateObject("CDO.Configuration")
Set iConfig = Server.CreateObject("CDO.Configuration")
With iConfig.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.сайт"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/languagecode") = "ru"
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "[بريد إلكتروني محمي]domain.tld".Item (" http://schemas.microsoft.com/cdo/configuration/sendpassword ") =" password ". تحديث النهاية مع Set cdoMessage = CreateObject (" CDO.Message ") مع cdoMessage Set .Configuration = iConfig .From = "اختبار المستخدم domain.tld> ". إلى =" المستخدم ".Subject =" مرحبًا ، المستخدم ".TextBody =" أكتب هذه الرسالة من البرنامج النصي لـ ASP. ". أرسل النهاية مع Set cdoMessage = Nothing Set iConfig = Nothing٪>
تحتوي بعض أنظمة إدارة المحتوى بالفعل على أدوات مضمنة لإرسال المراسلات أو الوحدات النمطية المقابلة ، دعنا نفكر في أكثرها شيوعًا.
وورد
بالنسبة لنظام إدارة المحتوى هذا ، توجد وحدة نمطية خاصة "WP Mail SMTP" ، ويوضح مثال على تكوينها في صفحة الوحدة النمطية.
انتبه إلى الرسم التوضيحي في المثال ، في ظروف نظام البريد لدينا ، المنفذ 25 مطلوب وتشفير SSL غير مطلوب.
جملة
في لوحة الإدارة ، انتقل إلى قسم "الإعدادات العامة" ، وحدد علامة التبويب "الخادم". في حقل "البريد" ، تحتاج إلى تحديد طريقة الإرسال كـ "خادم SMTP" ، في الحقول "عنوان خادم SMTP" و "تسجيل الدخول إلى SMTP" و "كلمة مرور SMTP" أدخل التفاصيل المناسبة لنظام البريد ، على سبيل المثال: smtp.site ، mailbox @ your_domainوما يقابلها كلمه السر.
دروبال
يحتوي نظام إدارة المحتوى هذا أيضًا على وحدة خاصة به للعمل مع خادم SMTP ، بناءً على PHPmailer.يمكنك تنزيل هذه الوحدة على صفحتها على موقع CMS Drupal ، يتوفر وصف تثبيت الوحدة في الأرشيف معها.
نت كات
لا يحتوي نظام إدارة المحتوى هذا على وظائف مضمنة للعمل مع خادم SMTP. لإرسال بريد باستخدام البرامج النصية للموقع ، يمكننا أن نعرض استخدام الحل الخاص بنا ، لتوصيله ، يجب عليك تنفيذ الخطوات التالية:
domain.tldيجب استبدال اسم المجال الخاص بك.
يعمل الحل المقترح مع جميع وحدات NetCat النمطية التي تستخدم الوظائف القياسية لنظام إدارة المحتوى هذا لإرسال البريد.
يتيح لك إرسال البريد عبر SMTP من خادم محلي اختبار إرسال الرسائل من موقع موجود على جهاز محلي ، أو ببساطة أكثر من خادم محلي. للقيام بذلك ، يمكنك استخدام أي خدمة بريد yandex أو google أو mail.ru.
بادئ ذي بدء ، SMTP (بروتوكول نقل البريد البسيط) هو بروتوكول شبكة واسع الاستخدام لنقل البريد الإلكتروني عبر شبكات TCP / IP. وجميع خدمات البريد الشائعة لديها مثل هذه البروتوكولات.
مع ظهور الخوادم المحلية ، ليست هناك حاجة لاختيار مزود استضافة من أجل التحقق من أداء البرامج النصية الفردية أو أنظمة cms ، بل وأكثر من ذلك لدفع ثمنها. من الأسهل بكثير اختبار كل شيء على جهاز الكمبيوتر ، وبعد ذلك يمكنك إظهار ما "قمت به" للجميع.
تحتوي العديد من هذه الخوادم بالفعل على برامج مضمنة والوظائف الضرورية للعمل مع البريد ، ما عليك سوى تهيئته بشكل صحيح.
للتحقق من أداء مثل هذا البريد ، فأنت بحاجة إلى الحد الأدنى:
- يمكنك استخدام Openserver كخادم محلي.
- ونص بسيط ، يمكن أخذ قالبه أدناه.
- يمكن استخدام أي خادم بريد.
إرسال بريد php عبر إعداد برنامج SMTP النصي
يحتاج قالب البرنامج النصي البسيط الذي يمكن نسخه أدناه أو تنزيله من مئات المواقع المماثلة إلى التحرير.
تحتاج أولاً إلى تغيير بعض القيم في قالب البرنامج النصي.
ل
- تغيير العنوان البريدي حيث سيتم إرسال رسالة البريد.
موضوعات
- موضوع الرسالة
رسالة
- الرسالة نفسها ، أو نص الرسالة.
مثال على البرنامج النصي الخاص بي:
بالطبع ، يمكنك توسيع الوظيفة قليلاً وجعل إصدار البرنامج النصي رسالة حول إرسال البريد. على الرغم من أن خادم SMTP هو الذي يرسل في الواقع ، إلا أن النص البرمجي يشكل رسالة فقط.
على سبيل المثال ، يمكنك كتابة ما يلي:
يجب أن تكون جميع القيم المستبدلة بين علامتي اقتباس ، وإلا فإن النص سيظهر خطأ. بعد ذلك ، يمكنك حفظ البرنامج النصي في مجلد الخادم المحلي.
على سبيل المثال: المجالات / إرسال / index.phpوابدأ في إعداد إرسال البريد عبر SMTP openrver.
سيتم إرسال البريد إلى أي عنوان سيتم تحديده في البرنامج النصي بدلاً من القيمة 'ل'
، ولكن SMTP الذي سيتم تحديده في إعدادات الخادم المفتوح سيعالج هذا البريد ويرسله.
- بدء تشغيل الخادم
- افتح وحدة Openerver بالإعدادات الموجودة في قائمة "البريد"
- نقوم بملء جميع الحقول كما هو موضح في الصورة ، بينما نقوم باستبدال اسم المستخدم والبريد الإلكتروني للمرسل وكلمة المرور من صندوق بريد حقيقي على Yandex.
نقوم بحفظ الإعدادات وبعد إعادة تشغيل الخادم ، يمكنك الرجوع إلى البرنامج النصي نفسه. من مجلد "مواقعي" ، افتح مجلد "إرسال" ، والذي يحتوي على ملف index.php النصي المحفوظ مسبقًا.
بمجرد استدعاء هذا البرنامج النصي ، ستعرض نافذة مستعرض جديدة معلومات تفيد بأن البرنامج النصي قد نجح.
بعد ذلك ، يجب عليك التحقق من صندوق البريد الخاص بك ، الذي تم تحديد عنوانه في البرنامج النصي ، ما إذا كان الحرف قد وصل.
إذا لم يكن موجودًا ، فهذا يعني أنه لم يتم تكوين شيء ما بشكل صحيح ، أو انتهى الأمر بالحرف في مجلد البريد العشوائي.
تبدو جميع الإعدادات الأخرى متشابهة ، ولكن في حالة حدوث ذلك ، لن تضر المعلومات الإضافية.
لإعداد إرسال البريد عبر SMTP mail ru ، تحتاج فقط إلى استبدال إعدادات Yandex بإعدادات mail ru.
ومن أجل عدم إعادة بناء الخادم المحلي في كل مرة ، من الأفضل إعداد ملفات تعريف مختلفة للخادم المفتوح. يتم عرض كيفية القيام بذلك في فيديو تعليمي.
في هذه الحالة ، يكفي فقط تحميل ملف التعريف وستتوفر جميع الإعدادات التي تم تحديدها لهذا الملف الشخصي بعد إعادة تشغيل الخادم. مفيد جدا وسهل جدا للعمل.
لكل ملف تعريف (لا يهم على الإطلاق ما سيتم تسميته) ، يجب إجراء الإعدادات الخاصة به ، ما لم يكن بالطبع مخططًا لاستخدام البرامج النصية وأنظمة cms والتطبيقات التي تختلف في معلماتها.
إذا لم يكن كذلك ، يمكنك الحصول على الإعدادات الافتراضية.
أما بالنسبة لـ SMTP mail ru ، فكل شيء متطابق هنا.
تتغير بيانات Yandex إلى بيانات mail ru
إرسال بريد عبر smtp google
من أجل إعداد إرسال البريد عبر Google SMTP ، يجب أن تحاول قليلاً.
أولاً ، يعد إنشاء ملف التعريف نفسه في Google أكثر صعوبة منه في أنظمة Yandex و mail ru الأخرى.
ثانيًا ، لن يسمح النظام للبريد الإلكتروني بالمرور بهذه الطريقة ، حتى لو قدمت تفاصيل تسجيل الدخول الخاصة بك. بادئ ذي بدء ، سترسل رسالة تحتوي على جميع المعلومات اللازمة حول المزيد من الإرشادات.
أما الباقي بالنسبة لـ Google ، يتم تكوينه بنفس الطريقة. جميع البيانات تتغير.
لإعداد إرسال البريد عبر SMTP الأخرى ، ستكون جميع البيانات متطابقة تقريبًا.
إذا كان كل شيء على ما يرام بالنسبة لك ووصلت الرسائل إلى المرسل إليه المحدد ، فسيتم كل شيء بشكل صحيح. سيكون من الرائع أن تشارك تجربتك في التعليقات.