مبادئ تشغيل بريد Php وSmtp. إرسال رسائل البريد الإلكتروني (SMTP مقابل

بيت / محركات الأقراص الصلبة

يتيح لك إرسال البريد عبر SMTP من خادم محلي اختبار إرسال الرسائل من موقع موجود على الجهاز المحلي، أو ببساطة من خادم محلي. للقيام بذلك، يمكنك استخدام أي خدمة بريد Yandex أو Google أو mail.ru.

بادئ ذي بدء، SMTP (بروتوكول نقل البريد البسيط) يستخدم على نطاق واسع بروتوكول الشبكة، مخصص للإرسال بريد إلكترونيعلى شبكات TCP/IP. وجميع خدمات البريد الإلكتروني الشائعة لديها مثل هذه البروتوكولات.

مع ظهور الخوادم المحلية، لم تعد هناك حاجة لاختيار مزود استضافة للتحقق من أداء البرامج النصية الفردية أو أنظمة cms، ناهيك عن الدفع مقابل ذلك. من الأسهل كثيرًا اختبار كل شيء على جهاز كمبيوتر، ومن ثم يمكنك أن تُظهر للجميع ما "قمت به".

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

للتحقق من وظائف هذا البريد، مطلوب الحد الأدنى:

  • يمكنك استخدام Openserver كخادم محلي.
  • ونص بسيط، يمكن العثور على قالبه أدناه.
  • يمكنك استخدام أي خادم بريد.

إرسال بريد php عبر إعداد البرنامج النصي SMTP

يلزم تعديل قالب نصي بسيط يمكن نسخه أدناه أو تنزيله من مئات المواقع المشابهة.

تحتاج أولاً إلى تغيير بعض القيم في قالب البرنامج النصي.
ل — قم بالتغيير إلى العنوان البريدي الذي سيتم إرسال رسالة البريد إليه.
موضوع – موضوع الرسالة
رسالة - الرسالة نفسها، أو نص الرسالة.

مثال على البرنامج النصي الخاص بي:

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

على سبيل المثال، يمكنك كتابة هذا:

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

على سبيل المثال: المجالات/إرسال/index.phpوابدأ في إعداد إرسال البريد عبر SMTP openrerver.

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

  1. بدء تشغيل الخادم
  2. افتح وحدة الخادم المفتوح بالإعدادات في قائمة "البريد".
  3. نقوم بملء جميع الحقول كما هو موضح في الصورة، بينما نقوم باستبدال اسم المستخدم والبريد الإلكتروني للمرسل وكلمة المرور من صندوق بريد حقيقي على Yandex.

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

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

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

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

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

من أجل إعداد إرسال البريد عبر SMTP mail ru، تحتاج ببساطة إلى استبدال معلمات Yandex بمعلمات mail ru.

وحتى لا يتم إعادة البناء في كل مرة الخادم المحليفمن الأفضل تكوين ملفات تعريف مختلفة للخادم المفتوح. يتم عرض كيفية القيام بذلك في الفيديو التعليمي.

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

لكل ملف تعريف (لا يهم على الإطلاق ما سيتم استدعاؤه)، يجب إجراء إعداداته الخاصة، ما لم تكن، بالطبع، تخطط لاستخدام البرامج النصية وأنظمة CMS والتطبيقات ذات المعلمات المختلفة.
إذا لم يكن الأمر كذلك، فيمكنك التعامل مع الإعدادات الافتراضية.

أما بالنسبة لبريد SMTP ru، فكل شيء متطابق هنا.

يتم تغيير بيانات Yandex إلى بيانات mail ru

إرسال البريد عبر smtp جوجل

لإعداد إرسال البريد عبر Google SMTP، يتطلب الأمر القليل من الجهد.

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

خلاف ذلك بالنسبة إلى Google، تم تكوينه بنفس الطريقة تمامًا. فقط جميع البيانات تتغير.

لتكوين إرسال البريد عبر SMTP آخر، ستكون جميع البيانات هي نفسها تقريبًا.

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

بريد PHP

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

حيث بدلا من ذلك "بريد إلكترونيمتلقي" أدخل البريد الإلكتروني الذي سيتم إرسال الرسالة إليه.

مكان هذا الملففي جذر موقعك.

بعد ذلك، أدخل www.YourDomain/test.php في شريط العناوين. إذا تم استلام خطاب على عنوان البريد الإلكتروني المحدد، فإن استضافتك تعمل بشكل صحيح مع وظيفة إرسال الرسائل " بريد PHP". من الممكن أن تكون الرسالة قد وصلت إلى البريد العشوائي، لذا يجب التحقق منها أيضًا.

إذا وصلت الرسالة بترميز غير مفهوم، قم بتغيير السطر: "التحقق من إرسال البريد"على "التحقق من إرسال البريد"، "نوع المحتوى: نص/html؛ مجموعة الأحرف = utf-8".

وكرر إرسال الرسالة من خلال شريط العناوين في متصفحك.

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

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

العيب الرئيسي لهذه الطريقة هو أن جميع الرسائل التي تتلقاها رسائل البريد الإلكتروني الخاصة بالعملاء لن تتعرف عليها خدمات البريد (gmail، mail.ru، yandex.ru) حيث تم إرسالها مباشرة من موقع الويب الخاص بك.

تعرض خدمة بريد Gmail هذه الرسائل مع علامة استفهام وتوقيع: "لم يتمكن نظام Gmail من تأكيد إرسال هذه الرسالة من النطاق YourDomain." قد يكون هذا بريدًا عشوائيًا.

لتجنب هذا الوضع .

SMTP (بروتوكول نقل البريد البسيط)

SMTP - بروتوكول نقل البريد. في المجمل، لإعداد إرسال البريد باستخدام هذا البروتوكول، فأنت بحاجة إلى خادم SMTP نفسه. الخيار الأكثر شيوعًا لاستخدام بريد الشركة (المجال) yandex.ru كخادم SMTP هو https://pdd.yandex.ru/.

أولا وقبل كل شيء من الضروري الحساب (البريد) ياندكس، والتي على أساسها سيتم إنشاء رسائل البريد الإلكتروني الخاصة بنطاقك: “order@YourDomain” “info@YourDomain”… لن يكون الحساب الرئيسي مرئيًا في أي مكان وسيتم استخدامه فقط لإنشاء رسائل بريد إلكتروني للنطاق بناءً عليه في المستقبل.

بعد التخويل في حساب Yandex الشخصي الخاص بك، يتم إنشاء بريد المجال على الرابط https://pdd.yandex.ru/. هذا هو البريد الإلكتروني للمجال الذي سيراه المستخدمون في حقل "المرسل".

حقل "المرسل" مطلوب عند إرسال رسائل البريد الإلكتروني عبر SMTP. استخدام SMTP لإرسال الرسائل، مزيج من " اِختِصاص" - "بريد إلكتروني"وبالتالي يتم التعرف على الرسائل عن طريق خدمات البريد.


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

إعدادات إرسال البريد عبر SMTP

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

لماذا تحدث هذه المشاكل مع البريد؟ للإجابة على هذا السؤال عليك الانتقال إلى المسار التالي في لوحة التحكم: "النظام" - "الإعدادات العامة" - علامة التبويب "الخادم" - قسم "إعدادات البريد".

يوفر CMS Joomla ثلاث آليات لإرسال الرسائل: PHP Mail وSendmail وSMTP. بشكل افتراضي، يتم استخدام بريد PHP، والذي غالبا ما يسبب مشاكل، والتي تتعلق بشكل أساسي بإعدادات الاستضافة المستخدمة.

وبناء على ما سبق نستنتج: إما أن نلجأ إلى مزود الاستضافة للمساعدة، أو نستخدم طريقة Sendmail أو SMTP لإرسال الرسائل. دعونا نركز على استخدام SMTP.

إعدادات إرسال البريد باستخدام SMTP

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

لترى إعدادات SMTP، يجب عليك تحديد "SMTP" في "طريقة الإرسال". دعونا نلقي نظرة على كل إعداد من خوادم البريد الشائعة: Yandex، وMail، وGmail، وRambler، وYahoo.

إعدادات SMTP لـ Yandex

  1. البريد الإلكتروني لموقع الويب: صندوق البريد على yandex.ru، على سبيل المثال: [البريد الإلكتروني محمي]
  2. أمان SMTP: SSL
  3. منفذ خادم SMTP: 465
  4. اسم مستخدم SMTP: تسجيل الدخول إلى صندوق البريد على yandex.ru، على سبيل المثال: khasanov (بدون @yandex.ru)
  5. خادم SMTP: smtp.yandex.ru

إعدادات SMTP للبريد

  1. البريد الإلكتروني لموقع الويب: صندوق البريد على mail.ru، على سبيل المثال: [البريد الإلكتروني محمي]
  2. مرسل الرسالة: الإدخال الذي سيتم عرضه من قبل المستلم في حقل "المرسل".
  3. تعطيل البريد: تشغيل/إيقاف. وظائف البريد الجماعي
  4. التفويض على خادم SMTP: نعم
  5. أمان SMTP: SSL
  6. منفذ خادم SMTP: 465
  7. اسم مستخدم SMTP: صندوق البريد على mail.ru، على سبيل المثال: [البريد الإلكتروني محمي]
  8. كلمة مرور SMTP: كلمة مرور صندوق البريد
  9. خادم SMTP: smtp.mail.ru

إعدادات SMTP لـ Gmail

  1. البريد الإلكتروني لموقع الويب: صندوق البريد على gmail.com، على سبيل المثال: [البريد الإلكتروني محمي]
  2. مرسل الرسالة: الإدخال الذي سيتم عرضه من قبل المستلم في حقل "المرسل".
  3. تعطيل البريد: تشغيل/إيقاف. وظائف البريد الجماعي
  4. التفويض على خادم SMTP: نعم
  5. أمان SMTP: SSL
  6. منفذ خادم SMTP: 465
  7. اسم مستخدم SMTP: صندوق بريد gmail.com، على سبيل المثال: [البريد الإلكتروني محمي]
  8. كلمة مرور SMTP: كلمة مرور صندوق البريد
  9. خادم SMTP: smtp.gmail.com

إعدادات SMTP لـ Rambler

  1. البريد الإلكتروني لموقع الويب: صندوق البريد على rambler.ru، على سبيل المثال: [البريد الإلكتروني محمي]
  2. مرسل الرسالة: الإدخال الذي سيتم عرضه من قبل المستلم في حقل "المرسل".

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

يمكنك تنزيل مكتبة PHPMailer من https://github.com/PHPMailer/PHPMailer (زر "استنساخ أو تنزيل").

أولاً، سألقي نظرة على زوجين أمثلة بسيطةلتوضيح كيفية إرسال رسائل البريد الإلكتروني باستخدام PHPMailer.

إرسال رسائل البريد الإلكتروني عبر وظيفة mail() باستخدام PHPMailer

إذا كنت تريد إرسال رسائل البريد الإلكتروني من الاستضافة الخاصة بك من خلال خادم البريد، فكل شيء بسيط للغاية وسيبدو كما يلي:

// تضمين مكتبة PHPMailer use PHPMailer\PHPMailer\PHPMailer; تتطلب "PHPMailer/PHPMailer.php"؛ // إنشاء بريد إلكتروني $mail = new PHPMailer(); $البريد->setFrom(" [البريد الإلكتروني محمي]"، "إيفان إيفانوف")؛ // من (البريد الإلكتروني والاسم) $mail->addAddress(" [البريد الإلكتروني محمي]"، "فاسيا بيتروف")؛ // لمن (البريد الإلكتروني والاسم) $mail->Subject = "اختبار"؛ // موضوع الرسالة // نص أتش تي أم ألالحروف $mail->msgHTML("

مرحبًا!

هذه رسالة اختبار.

"); // أرسل إذا ($mail->send()) ( echo "تم إرسال الرسالة!"; ) else ( echo "خطأ: " . $mail->ErrorInfo; )

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

إرسال رسائل البريد الإلكتروني عبر SMTP باستخدام PHPMailer باستخدام مثال Yandex وGoogle

يمكنك أيضًا إرسال خطاب عبر مرسل بريد آخر، على سبيل المثال، من خلال ياندكس. سيبدو الكود كالتالي:

// تضمين مكتبة PHPMailer use PHPMailer\PHPMailer\PHPMailer; استخدم PHPMailer\PHPMailer\SMTP؛ تتطلب "PHPMailer/PHPMailer.php"؛ تتطلب "PHPMailer/SMTP.php"؛ // إنشاء بريد إلكتروني $mail = new PHPMailer(); $mail->isSMTP(); // الإرسال عبر SMTP $mail->Host = "smtp.yandex.ru"; // عنوان خادم SMTP $mail->SMTPAuth = true; // تمكين مصادقة SMTP $mail->Username = "login"; // اسم المستخدم الخاص بك (بدون المجال و@) $mail->Password = "password"; // كلمة المرور الخاصة بك $mail->SMTPSecure = "ssl"; // تشفير ssl $mail->Port = 465; // منفذ الاتصال $mail->setFrom(" [البريد الإلكتروني محمي]"، "إيفان إيفانوف")؛ // منهم $mail->addAddress(" [البريد الإلكتروني محمي]"، "فاسيا بتروف")؛ // لمن $mail->Subject = "Test"; $mail->msgHTML("

مرحبًا!

هذه رسالة اختبار.

"); // أرسل إذا ($mail->send()) ( echo "تم إرسال الرسالة!"; ) else ( echo "خطأ: " . $mail->ErrorInfo; )

إرسال رسائل البريد الإلكتروني عبر جوجللديه تحذير واحد: تحتاج إلى ذلك حساب جوجل السماح بالوصول إلى التطبيقات غير الموثوق بها. للقيام بذلك، تحتاج إلى تسجيل الدخول إلى حسابك https://myaccount.google.com، والانتقال إلى الأمان، والانتقال إلى قسم "التطبيقات غير الموثوقة التي يمكنها الوصول إلى حسابك" والتبديل إلى "مسموح به" هناك. في وقت كتابة هذا التقرير، كانت هذه الصفحة هي https://myaccount.google.com/u/0/lesssecureapps.

$mail->Host = "smtp.gmail.com"; // عنوان خادم SMTP $mail->SMTPAuth = true; // تمكين مصادقة SMTP $mail->Username = "login"; // اسم المستخدم الخاص بك $mail->Password = "password"; // كلمة المرور الخاصة بك $mail->SMTPSecure = "ssl"; // تشفير ssl $mail->Port = 465; // منفذ الاتصال

إذا كنت تقوم بتشغيل برنامج الإرسال عبر SMTP لأول مرة، فمن المستحسن استخدامه بالإضافة إلى ذلك قبل الإرسال $mail->SMTPDebug = 1;لتلقي كافة الرسائل من العميل وخادم SMTP، أي. سيتم عرض عملية الاتصال والتفويض وما إلى ذلك بالكامل على الشاشة، وهو أمر مفيد جدًا لتصحيح أخطاء برنامجك.

إرسال بريد إلكتروني مع مرفق باستخدام PHPMailer

كل شيء بسيط جدًا هنا، ما عليك سوى استخدام الطريقة addAttachment. سأقدم مثالا وفي نفس الوقت أظهر المزيد ميزات إضافية:

// تضمين مكتبة PHPMailer use PHPMailer\PHPMailer\PHPMailer; استخدم PHPMailer\PHPMailer\Exception؛ تتطلب "PHPMailer/PHPMailer.php"؛ تتطلب "PHPMailer/Exception.php"؛ // إنشاء بريد إلكتروني $mail = new PHPMailer; $mail->CharSet = "UTF-8"; $البريد->setFrom(" [البريد الإلكتروني محمي]"، "إيفان إيفانوف")؛ // منهم $mail->addReplyTo(" [البريد الإلكتروني محمي]"، "إيفان إيفانوف")؛ // عنوان الإرجاع $mail->addAddress(" [البريد الإلكتروني محمي]"، "فاسيا بيتروف")؛ // لمن $mail->Subject = "Test"؛ // subject $mail->msgHTML(file_get_contents("contents.html"), __DIR__); // احصل على "body" الرسالة من الملف $mail->AltBody = "رسالة نصية عادية"; // رسالة نصية عادية إذا كان العميل لا يدعم html $mail->addAttachment("my_file.txt"); >addAttachment("phpmailer) .jpg"); // إرفاق الملف الثاني // إرسال if ($mail->send()) ( echo "تم إرسال الرسالة!"; ) else ( echo "Error: " . $mail- >معلومات الخطأ)

يمكنك إضافة عناوين مستلمين متعددة باستخدام addAddress. أو، إذا لزم الأمر، يمكنك، على العكس من ذلك، مسح جميع عناوين المستلمين باستخدام هذه الطريقة عناوين واضحة (). يمكنك مسح كافة المرفقات باستخدام مسح المرفقات ().

يمكنك أيضًا استخدام AddEmbeddedImageلإضافة مرفق (عادةً صورة) إلى البريد الإلكتروني، والمخصص للاستخدام في كود html ولن يكون متاحًا للتنزيل. مثال على استخدام صورة في رسالة غير متاحة للتحميل:

// تضمين مكتبة PHPMailer use PHPMailer\PHPMailer\PHPMailer; تتطلب "PHPMailer/PHPMailer.php"؛ // أنشئ خطابًا $mail = new PHPMailer; $mail->IsHTML(true); $البريد->setFrom(" [البريد الإلكتروني محمي]"، "إيفان إيفانوف")؛ $mail->addAddress(" [البريد الإلكتروني محمي]", "فاسيا بتروف"); $mail->Subject = "Test"; $mail->AddEmbeddedImage("phpmailer.jpg",testImage"); $mail->Body = "

الصورة في كود HTML

"; // أرسل $mail->send();

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

إرسال البريد الإلكتروني الموقع والمشفر عبر PHPMailer

بشكل افتراضي، يقوم PHPMailer بتشفير كافة الرسائل المرسلة. لا يمكنك تعطيل تشفير البريد الإلكتروني إلا عند إرسال رسائل البريد الإلكتروني عبر SMTP باستخدام الرمز:

$mail->SMTPSecure = false; $mail->SMTPAutoTLS = false;

ل قم بتوقيع الرسالة بتوقيع DKIM، عليك القيام بعدة خطوات:

  • قم بإنشاء مفاتيح خاصة وعامة لنطاقك
  • أضف سجل DNS لمجال TXT باستخدام مفتاح عام
  • قم بتكوين توقيع DKIM في PHPMailer قبل إرسال بريد إلكتروني

الآن سوف أصف كل خطوة بمزيد من التفصيل.

توليد المفاتيح الخاصة والعامة

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

Openssl genrsa -out test-private.pem 1024 openssl rsa -in test-private.pem -out test-public.pem -pubout

على التوالى، test-private.pemو اختبار public.pem- هذه مفاتيح خاصة وعامة. تحتاج إلى حفظها في مجلد لن يتمكن زوار الموقع أو أي شخص آخر غيرك من الوصول إليه.

إذا لم يكن من الممكن تنفيذ الأوامر في الصدفة، فيمكنك استخدام الكود التالي لإنشاء مفاتيح خاصة وعامة وحفظها في الملفات:

$domain = "test.ru"; // المجال الخاص بك $privatekeyfile = "test-private.pem"; // اسم الملف الذي سيُكتب فيه المفتاح الخاص $publickeyfile = "test-public.pem"; // اسم الملف الذي سيُكتب فيه المفتاح العام if (file_exists($privatekeyfile)) ( echo "

استخدام المفاتيح الموجودة

"; $privatekey = file_get_contents($privatekeyfile); $publickey = file_get_contents($publickeyfile); ) آخر (صدى "

إنشاء مفاتيح"; $pk = openssl_pkey_new([ "digest_alg" => "sha256", "private_key_bits" => 2048, "private_key_type" => OPENSSL_KEYTYPE_RSA, ]); opensl_pkey_export_to_file($pk, $privatekeyfile); $pubKey = openssl_pkey_get_details($p ك );

المفتاح الخاص (حافظ على هذا خاصًا!):

" .$privatekey ."
"؛ صدى "

المفتاح العام:

" .$publickey ."
";

انتباه!لا تنس التأكد من أن المجلد الذي سيتم حفظ الملفات فيه قابل للكتابة.

إضافة سجل DNS بمفتاح عام

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

تحتاج إلى إضافة سجل DNS مثل هذا:

اسم الإدخال: mail._domainkey.test.ru. (في النهاية هناك نقطة ".")

مدة البقاء: 3600 (أو أيهما سيكون الافتراضي)

نوع المشاركة: رسالة قصيرة

معنى: v=DKIM1; ح=sha256; ر = ق؛ ص=YOUR_PUBLIC_KEY

في اسم الإدخال test.ruيجب استبداله باسم المجال الخاص بك. يمكنك استبدال الكلمات "YOUR_PUBLIC_KEY" بالنص الذي تلقيته في الخطوة السابقة بعد "المفتاح العام"، بدون "------BEGIN PUBLIC KEY-----" و"-----END PUBLIC KEY- -- --"، فقط المفتاح نفسه. في هذه الحالة، هناك حاجة إلى كافة أسطر المفتاح تسلسل في سطر واحد طويلبحيث لا يكون هناك فواصل الأسطر.

إعداد توقيع DKIM في PHPMailer وإرسال بريد إلكتروني

الآن كل ما تبقى هو إجراء بعض إعدادات PHPMailer قبل إرسال الرسالة وسيتم توقيعها. أعتقد أن المثال التالي سيوضح كل شيء:

// تضمين المكتبة use PHPMailer\PHPMailer\PHPMailer; تتطلب "PHPMailer/PHPMailer.php"؛ // إنشاء بريد إلكتروني $mail = new PHPMailer; $mail->CharSet = "UTF-8"; $البريد->setFrom(" [البريد الإلكتروني محمي]"); $mail->addAddress(" [البريد الإلكتروني محمي]"); $mail->Subject = "هذا اختبار"; $mail->msgHTML("

هذا اختبار

"); // إعداد توقيع DKIM $mail->DKIM_domain = "test.ru"; $mail->DKIM_private = "test-private.pem"; $mail->DKIM_selector = "mail"; // أرسل $ البريد->إرسال();

بالطبع test.ruيجب عليك التغيير إلى اسم النطاق الخاص بك، و test-private.pemإلى المسار الكامل واسم ملف المفتاح الخاص الذي تم إنشاؤه في مرحلة إنشاء المفتاح.

الآن، سيتم توقيع رسائل البريد الإلكتروني المرسلة عبر PHPMailer باستخدام DKIM باستخدام مفتاحك الخاص.

2019-08-05

مرحبا عزيزي الزائر!

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

لذلك، بعد أن قمنا في المقالة الأخيرة بربط بريد مجالنا بإحدى خدمات البريد، فلنرى الآن كيف يمكنك إرسال بريد إلكتروني من الموقع. علاوة على ذلك، وبطريقة لا تنتهي رسائلنا في الرسائل الاقتحامية (SPAM)، ولكن يتم تسليمها بشكل موثوق وبدرجة عالية من الاحتمال إلى مستلمينا.

بشكل عام، هناك وظيفة mail() مدمجة لإرسال الرسائل بلغة PHP. ولكن تجدر الإشارة إلى أنه على الرغم من بساطة هذه الطريقة (في هذه الحالة، لإرسال رسائل يكفي تحديد سطر واحد فقط من التعليمات البرمجية مع معلمات معينة)، فإن استخدام هذا الخيار له عيب كبير يتعلق بمشكلة الرسائل الاقتحامية (SPAM) .

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

ومن أجل القضاء على مثل هذه الحالات قدر الإمكان، عادة ما يتم استخدام خيار آخر، حيث يتم إرسال الرسائل كما لو تم ذلك عن طريق خدمة بريد تابعة لجهة خارجية.

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

  • كيف سنرسل رسائل التعليقات
  • إنشاء نموذج الملاحظات
  • تثبيت مكتبة PHPMailer
  • نقوم بإنشاء برنامج نصي لإرسال البريد عبر SMTP
  • التحقق من إرسال البريد الإلكتروني
  • ملفات المصدرموقع

كيف سنرسل رسائل التعليقات

قبل أن تبدأ العمل العمليبعد إرسال رسائل الملاحظات، سنقرر أولاً كيف سنفعل ذلك.

تم تصميم نموذج الملاحظات ليتيح للمستخدم التواصل مع مدير الموقع وإيصال رسالته. عادةً ما يتكون هذا النموذج من عدة حقول وزر "إرسال".

من حيث المبدأ، لإرسال بريد إلكتروني يكفي استخدام عدد قليل من الحقول التي توفر معلومات كافية عن المستخدم ومحتوى الرسالة، مثل:

  • "الاسم" - لإدخال اسم مرسل الرسالة؛
  • "البريد الإلكتروني" - لعنوان البريد الإلكتروني للمرسل؛
  • "موضوع الرسالة";
  • "نص الرسالة".

على الرغم من أنه يمكنك إضافة الآخرين. على سبيل المثال، رقم الهاتف، إذا كان ذلك ضروريًا حقًا.

في حالتنا، سيتم إرسال هذه الرسائل إلى عنوان مسؤول الموقع من صندوق بريد حقيقي مع تفويض من خدمة البريد التي يتصل بها نطاقنا.

نظرًا لأننا ركزنا في المقالة السابقة على التحقق من اتصال بريد المجال بخدمة Yandex.Mail، فسنرسل بريدًا لهذا الخيار. على الرغم من أن هذا ليس مهما. سترى أدناه تلك الخيارات التي ستسمح لك، عند تغييرها، بإرسال بريد إلكتروني عبر خادم البريد Mail.ru.

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

وبالتالي، فإن مرسل الرسالة من نموذج الملاحظات سيكون صندوق البريد [البريد الإلكتروني محمي].، والمتلقي - [البريد الإلكتروني محمي]. في هذه الحالة، سيتم نقل جميع المعلومات المتعلقة بالمستخدم الذي أرسل الرسالة بمحتوياتها في نص الرسالة المرسلة.

إنشاء نموذج الملاحظات

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

يوجد أدناه كود HTML الخاص بهذا النموذج، والذي سنضعه في صفحة "جهات الاتصال" (ملف kontakty.php في دليل المقالات).

    "شرط" >

    اتصالات

    تعليق

    "اتصال"العمل = "#" الطريقة = "بريد" >

    نموذج الملاحظات

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

    "كتلة الاتصال" >

    "إدخال جهة الاتصال" >

    "نص"المعرف = "اسم جهة الاتصال"الاسم = "اسم جهة الاتصال"عنوان = "يجب أن يكون الاسم باللغة الروسية ويحتوي على 3 أحرف على الأقل" نمط = "{3,}" مطلوب >

  1. "جهة اتصال فارغة" >

    "إدخال جهة الاتصال" >

    "بريد إلكتروني"المعرف = "البريد الإلكتروني للاتصال"الاسم = "البريد الإلكتروني للاتصال"مطلوب >

  2. "موضوع الاتصال" >

  3. "تعليق جهة الاتصال" >

  4. "زر الاتصال" >

    "يُقدِّم"الاسم = "زر الاتصال"القيمة = "يرسل" >

الشكل 1: كود HTML لنموذج الملاحظات

يمكنك رؤية الشكل الذي يبدو عليه نموذج التعليقات الموضح هنا في لقطة الشاشة التالية.

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

تثبيت مكتبة PHPMailer

كما ذكرنا سابقًا، لإرسال البريد، سنستخدم مكتبة PHPMailer، والتي ستعمل على تبسيط إرسال البريد الإلكتروني بشكل كبير عبر بروتوكول SMTPمع تفويض على خدمة بريد طرف ثالث.

لتثبيته تحتاج إلى تنزيله الملفات الضرورية. يمكن القيام بذلك من خدمة الويب GitHub باستخدام Composer (مدير تبعيات الحزمة لـ PHP). أو ببساطة قم بتنزيل الملفات الضرورية بالطريقة المعتادة.

لقطة الشاشة 73

يوجد أدناه صفحة خدمة الويب GitHub، حيث يتم وضع علامة على رابط التنزيل العادي لمكتبة PHPMailer.

إلى جانب هذا، أحدث نسخةيمكن تنزيل الإصدار 6.0.7، الذي تم حفظه وقت كتابة هذه المقالة، من المواد المرفقة.

على أية حال، يجب فك ضغط ملف الأرشيف الناتج، وبعد ذلك يجب وضع مجلد PHPMailer-master المستخرج بكل محتوياته في جذر الموقع. وفي الوقت نفسه، من أجل البساطة، يمكنك إعادة تسميته PHPMailer. يوجد أدناه محتويات مجلد PHPMailer الموجود في الدليل الجذر للموقع.

وهكذا قمنا بتثبيت مكتبة PHPMailer. وبعد ذلك يمكننا البدء في إنشاء برنامج نصي سنرسل به رسائل بريد إلكتروني من موقعنا.

نقوم بإنشاء برنامج نصي لإرسال البريد عبر SMTP

لإنشاء البرنامج النصي، يكفي استخدام التوصيات الخاصة باستخدام PHPMailer المقدمة على صفحة GitHub، والتي استخدمناها سابقًا لتنزيل المكتبة.

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

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

لقطة الشاشة 74

يوجد أدناه رمز البرنامج النصي لإرسال البريد من نموذج الملاحظات عبر SMTP مع التفويض. حيث يتم إعطاء جميع الأسطر المتعلقة بـ PHPMailer مع الشرح وإبرازها بخلفية فاتحة.

تتم الإشارة إلى بقية الجزء، بما في ذلك الأجزاء المتعلقة بتلقي ومعالجة البيانات من النموذج، والتي كان علينا استخدامها سابقًا في معالجات أخرى، بخلفية داكنة. لقد تمت مناقشتها بشيء من التفصيل سابقًا في مقالة مخصصة خصيصًا لقضايا الحصول على البيانات والتحقق منها من نموذج في PHP. حيث تحدثنا أيضًا عن وظيفة المستخدم العالمية للتحقق من صحة بيانات النموذج ومعالجتها check_symbol().

سنضع هذا البرنامج النصي في نفس ملف kontakty.php الذي أنشأنا فيه نموذج الملاحظات مسبقًا.

    //----برنامج نصي لإرسال البريد عبر SMTP باستخدام PHPMailer----

    // استيراد فئات PHPMailer إلى مساحة الاسم العالمية. يجب أن تكون في الجزء العلوي من البرنامج النصي، وليس داخل الوظيفة

    يستخدم PHPMailer\PHPMailer\PHPMailer ;

    يستخدم PHPMailer\PHPMailer\Exception ;

    لو (!فارغ($_POST["زر الاتصال" ])) (

    $name = $_POST["اسم جهة الاتصال" ];

    $name = check_symbol ($name, "Name" , "1" , "/^+\z/iu" );

    $email = $_POST["contact-email" ];

    $email = check_symbol ($email, "E-mail" , "1" , "/^+@(+\.)+(2,6)\z/i");

    $subject = $_POST["contact-subject" ];

    $subject = check_symbol ($subject, "Message Subject" , "1" , "0" );

    $comment = $_POST["contact-comment" ];

    تعليق $ = check_symbol (تعليق $، "نص الرسالة", "1" , "0" );

    لو (!فارغ($GLOBALS["تنبيه" ])) (

    تنبيه $= "لم يتم إرسال بيانات النموذج. تم العثور على الأخطاء التالية:\n".$تنبيه؛

    يشمل"alert.php" ;

    آخر {

    // توصيل المكتبة

    يتطلب"PHPMailer/src/PHPMailer.php" ؛

    يتطلب"PHPMailer/src/Exception.php" ؛

    يتطلب"PHPMailer/src/SMTP.php" ؛

    البريد $ = جديد PHPMailer(); // تهيئة الفصل

    $من = " [البريد الإلكتروني محمي]" ; // عنوان البريد الإلكتروني الذي يتم إرسال الرسالة منه

    $ إلى = " [البريد الإلكتروني محمي]" ; // عنوان المستلم

    $البريد -> isSMTP(); // استخدم بروتوكول SMTP

    $mail -> المضيف = "smtp.yandex.ru" ; // عنوان خادم البريد

    بريد $-> SMTPAuth = حقيقي ; // تمكين وضع التفويض

    البريد $ -> اسم المستخدم = " [البريد الإلكتروني محمي]" ; // تسجيل الدخول من بريد إلكتروني خاص بالمجال متصل بخدمة بريد إلكتروني تابعة لجهة خارجية (في هذه الحالة، Yandex.Mail)

    $البريد -> كلمة المرور = "27MrDon89" ؛ // كلمة المرور لبريد المجال

    $mail -> SMTPSecure = "ssl" ; //بروتوكول التشفير

    $mail -> المنفذ = "465" ؛ // منفذ خادم SMTP

    $mail -> CharSet = "UTF-8" ; //الترميز

    $mail -> setFrom ($from, "Administrator" ); // عنوان واسم المرسل

    $mail -> addAddress ($to, "Administrator" ); // عنوان المستلم واسمه

    البريد $ -> isHTML ( حقيقي ); // قم بتعيين تنسيق البريد الإلكتروني على HTML

    البريد $ -> الموضوع = "تم إرسال نموذج الملاحظات"; // موضوع البريد الإلكتروني (العنوان)

    البريد $ -> الجسم = "

    اسم المرسل: اسم $

    عنوان المرسل: البريد الإلكتروني $

    موضوع الرسالة: $الموضوع

    محتوى الرسالة: تعليق $

    " ; // محتويات الرسالة

    البريد $ -> AltBody = "نص الرسالة البديل"; // بريد إلكتروني بديل إذا كان عميل البريد الإلكتروني لا يدعم تنسيق HTML

    $mail -> SMTPDebug = 0 ; // تمكين تصحيح SMTP: 0 - إيقاف (للاستخدام العادي)، 1 = رسائل العميل، 2 - رسائل العميل والخادم

    لو($البريد -> إرسال()) (

    تنبيه $= "تم إرسال الرسالة"; // إخراج رسالة في مربع حوار المتصفح حول إرسال الرسالة بنجاح

    آخر {

    تنبيه $= "خطأ، لا يمكن إرسال البريد الإلكتروني:".$البريد -> معلومات الخطأ ; // إخراج رسالة خطأ

    يشمل"alert.php" ;

الشكل 5: البرنامج النصي لإرسال البريد الإلكتروني عبر SMTP بترخيص

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

1. نظرًا لأن الرسالة يتم إرسالها من خدمة بريد تابعة لجهة خارجية، يتم هنا تطبيق الإعدادات المقابلة لخادم SMTP المحدد. في هذه الحالة، بالنسبة لحالة استخدام خادم Yandex.Mail، يتم تطبيق قيم الخصائص التالية:

  • ملكية يستضيف(pos.28) - عنوان خادم البريد بالقيمة smtp.yandex.ru؛
  • ملكية smtpsecure
  • ملكية ميناء

تم أخذ قيم الخصائص هذه من صفحة Yandex.Help الموضحة في لقطة الشاشة التالية.

ولكن يمكن أيضًا الحصول على هذه المعلومات من مصادر أخرى. للقيام بذلك، ما عليك سوى إدخال الاستعلام المناسب في محرك البحث، على سبيل المثال: "خادم Yandex smtp". أين يمكنك العثور على عدد كبير من المراجع حول هذه المسألة.

وبطريقة مماثلة، يمكن الحصول على قيم الإعدادات من خوادم SMTP الأخرى. يوجد أدناه لقطة شاشة لصفحة تعليمات Mail.ru، والتي تعرض إعدادات خادم SMTP لخدمة بريد Mail.ru.

وبالتالي، في حالة استخدام Mail.ru كخادم SMTP لجهة خارجية، يجب تطبيق القيم التالية لخصائص فئة PHPMailer:

  • ملكية يستضيف(pos.28) - عنوان خادم البريد (smtp.mail.ru)؛
  • ملكية smtpsecure(مفتاح 32) - بروتوكول التشفير (SSL)؛
  • ملكية ميناء(مفتاح 33) - منفذ خادم SMTP (465).

وينبغي تطبيق نهج مماثل على خدمات البريد الإلكتروني الأخرى.

2. في الممتلكات اسم المستخدم(الموضع 30) من الضروري الإشارة إلى العنوان الكامل لصندوق بريد المجال. في هذه الحالة " [البريد الإلكتروني محمي]".

ومع ذلك، إذا كنت تستخدم حسابًا آخر غير حساب بريد المجال لإرسال الرسائل، ولكن عنوانًا مرتبطًا مباشرة بخدمة البريد، على سبيل المثال " [البريد الإلكتروني محمي]"، فيجب أن يكون تسجيل الدخول فقط جزء من العنوان حتى علامة "@". وفي هذه الحالة، سيكون لتسجيل الدخول القيمة "تعليقات".

3. يوفر PHPMailer خاصية SMTPDebug(مفتاح 50)، والذي يسمح لك بعرض مستويات مختلفة من الأخطاء على شاشة المتصفح. تعمل هذه الميزة على تبسيط عملية البحث عن المشكلات بشكل كبير عند تصحيح أخطاء البرنامج النصي.

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

لكي نرى كيف يبدو هذا عمليًا، دعنا ندخل مؤقتًا بعض الأخطاء في الإعدادات. على سبيل المثال، في كلمة مرور بريد المجال (property كلمة المرور، موضع 31). وأيضًا لعرض معلومات تفصيلية حول الخطأ المحدد مؤقتًا في الخاصية SMTPDebug(pos.50) القيمة 1. بعد ذلك، عندما يتم تصحيح كل شيء والتحقق منه، سنقوم بتعطيل وضع تصحيح أخطاء SMTP، واستبدال 1 بـ 0.

في الجزء الأخير من البرنامج النصي، بعد تحديد جميع الخصائص والأساليب الضرورية، يتم استخدام الطريقة لإرسال الرسالة يرسل()) (الموضع 51). وإذا تم إرسال الرسالة، والطريقة يرسل()للكائن بريد $يعود صحيحا، ثم في مربع حوار المتصفح من خلال المتغير $ تنبيهسيتم عرض رسالة حول إرسال البريد الناجح (مفتاح 52).

إذا تعذر إرسال البريد لسبب ما، وبالتالي لا يمكن للطريقة إرجاع صحيح، فستكون هذه الحالة مصحوبة برسالة خطأ مقابلة (مفتاح 55).

التحقق من إرسال البريد الإلكتروني

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

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

وهذه هي نتيجة تقديم النموذج.

حيث يتضح من الرسالة الموجودة في مربع حوار المتصفح أنه لا يمكن إرسال الرسالة بسبب مشكلة في اتصال SMTP.

ولكن منذ الآن الملكية SMTPDebug(وضع 50) تم تعيين القيمة 1، ثم يمكننا الاطلاع على معلومات مفصلة عن الخطأ الذي حدث ومعرفة سبب حدوثه.

توضح لقطة الشاشة التالية أنه عند محاولة الاتصال، تم اكتشاف خطأ في المصادقة، مما يعني استخدام معلومات تسجيل دخول أو كلمة مرور غير صحيحة.

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

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

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

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

  • اسم المرسل: نيكولاي؛
  • عنوان المرسل: [البريد الإلكتروني محمي];
  • موضوع الرسالة: التحقق من إرسال البريد.
  • محتوى الرسالة: رسالة تجريبية.

الآن، بعد التحقق من إرسال البريد بنجاح، يمكنك تعطيل وضع تصحيح أخطاء SMTP عن طريق تعيين الخاصية SMTPDebug(pos.50) القيمة 0.

وهكذا، أكملنا مهمة إنشاء أداة لإرسال البريد عبر SMTP بترخيص باستخدام خادم بريد تابع لجهة خارجية.

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

ملفات مصدر الموقع

يمكن تنزيل الملفات المصدر للموقع مع التحديثات التي تم إجراؤها في هذه المقالة من المواد الإضافية المرفقة:

  • ملفات الدليل www
  • جداول قاعدة بيانات MySQL

© 2024 ermake.ru - حول إصلاح أجهزة الكمبيوتر - بوابة المعلومات