إرسال بريد عبر بروتوكول smtp بتفويض.  إرسال البريد عبر SMTP في PHP.  كيفية إرسال رسائل البريد الإلكتروني باستخدام ASP

إرسال بريد عبر بروتوكول smtp بتفويض. إرسال البريد عبر SMTP في PHP. كيفية إرسال رسائل البريد الإلكتروني باستخدام ASP

في بعض الحالات ، من أجل اختبار أو تشخيص تشغيل البريد ، يحتاج مسؤول البريد إلى التحقق من إرسال الرسائل عبر خوادم Exchange (وليس فقط) من مضيفين معينين. في حالة أن الخادم لا يتطلب ترخيصًا (خادم ترحيل مفتوح) ، يمكنك إرسال بريد. ومع ذلك ، في معظم الحالات ، تتطلب خوادم البريد تفويضًا لإرسال البريد. في هذا المثال ، سوف نعرض كيفية إجراء مصادقة تسجيل الدخول AUTH LOGIN على خادم SMTP في وحدة تحكم telnet وإرسال بريد إلكتروني.

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

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

للتفويض على خادم البريد باستخدام AUTH LOGIN ، نحتاج إلى تحويل اسم المستخدم وكلمة المرور للمستخدم الذي سيتم إرسال الحرف منه إلى تنسيق Base64. يمكن القيام بذلك باستخدام البرامج النصية أو الخدمات عبر الإنترنت. أستفيد من موقع https://www.base64encode.org/.

اسم المستخدم: [بريد إلكتروني محمي] كونتوسو.كوم، في ترميز Base64 اتضح: dGVzdHVzZXJAY29udG9zby5jb20 =

كلمة المرور: $ up3RsTr)نانوغرام- في Base64 JHVwM1JzVHIpbmc =

الآن ، في سطر الأوامر ، باستخدام Telnet ، نقوم بالاتصال بالمنفذ 25 (SMTP) لخادم البريد الخاص بنا (سأقوم بتمييز الأوامر التي تم إدخالها باللون الأزرق):

25- telnet mail.contoso.com

إذا كان Exchange سيعود شيئًا مثل ؛

دعونا نقدم أنفسنا:

ehlo sender.contoso.com

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

250-mail.contoso.com مرحبًا
حجم 250: 36700160
250-الأنابيب
250-DSN
250-محسن رموز الأوضاع
250-STARTTLS
250- مصادقة تسجيل الدخول
250-8BITMIME
250- بيناري ميم
250 تكسير

مصادقة تسجيل الدخول

يجب أن يستجيب الخادم:
334 VXNlcm5hbWU6

الآن الصق اسم مستخدم Base64 الذي قمنا بتشفيره مسبقًا:
dGVzdHVzZXJAY29udG9zby5jb20 =

يجب أن يستجيب الخادم:

334 UGFzc3dvcmQ6.

حان الوقت الآن للصق كلمة المرور بتنسيق Base64:
JHVwM1JzVHIpbmc =

إذا كان اسم المستخدم وكلمة المرور صحيحين ، سيستجيب الخادم.
235 2.7.0 المصادقة ناجحة

ان لم:

535 5.7.8 خطأ: فشلت المصادقة: UGFzc3dvcmQ6

يمكنك الآن ملء الحقول القياسية للحرف:

البريد من: [بريد إلكتروني محمي]
250 2.1.0 المرسل موافق
rcpt إلى: [بريد إلكتروني محمي]
250 2.1.5 المستلم موافق
البيانات
354 بدء إدخال البريد ؛ انتهت ب.
من: TestUserovich
إلى: TheAdmin< [بريد إلكتروني محمي] >
الموضوع: اختبار BASE SMTP المصدق عبر Telnet
هذا اختبار
.
250 2.6.0 البريد في قائمة الانتظار للتسليم

استقال

221 2.0.0 اتصال مغلق.
تم اغلاق الاتصال بواسطة مضيف اجنبي.

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

في PHP ، من الشائع جدًا استخدام البرامج النصية التي تعمل على أتمتة عملية إرسال رسائل البريد الإلكتروني. في هذه المقالة ، سننظر في برنامج نصي بسيط يرسل رسائل بريد إلكتروني إلى المستلمين عبر SMTP ( بروتوكول نقل الايميل البسيط ). سيكون من السهل جدًا تقييد نفسك بهذه الوظيفة فقط ، كما يدعم البرنامج النصي المرفقات ، أي أنه يمكنك إرفاق ملف pdf أو txt أو doc في رسالتك.

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

يعمل البرنامج النصي مع فئة km_smtp_class.php ، والفئة جيدة لأنها تدعم بروتوكولات SSL و TLS المختلفة التي توفر نقلًا آمنًا للبيانات.

هذا هو النص نفسه:

"smtp.mail.ru"، "SMTP_port" => "25"، "SMTP_email" => " [بريد إلكتروني محمي]"،" SMTP_pass "=>" 1111111 "،" SMTP_type "=>" null ")؛ // البريد الإلكتروني للمستلم $ Receiver =" [بريد إلكتروني محمي]"؛ // موضوع الرسالة $ Subject =" إرسال بريد إلكتروني من PHP "؛ // نص الرسالة (بتنسيق HTML) $ Text =" مرحبًا!
تم إرسال الرسالة من البرنامج النصي ماوشونالموقع: http: // site "؛ // مرفق في الحرف - عنوان الملف $ Attachment =" "؛ / * $ mail = new KM_Mailer (الخادم ، المنفذ ، المستخدم ، كلمة المرور ، النوع) ؛ * / / * يمكن أن يكون النوع: null أو tls أو ssl * / $ mail = new KM_Mailer ($ SenderConfig ["SMTP_server"] ، $ SenderConfig ["SMTP_port"] ، $ SenderConfig ["SMTP_email"] ، $ SenderConfig ["SMTP_pass"] ، $ SenderConfig ["SMTP_type"]) ؛ إذا ($ mail-> isLogin) (// إرفاق ملف إذا ($ Attachment) ($ mail-> addAttachment ($ Attachment) ؛) // إضافة المزيد من المستلمين $ mail-> addRecipient (" [بريد إلكتروني محمي]")؛ $ mail-> addRecipient (" [بريد إلكتروني محمي]") ؛ / * $ mail-> إرسال (من ، إلى ، موضوع ، نص ، رأس = اختياري) * / $ SendMail = $ mail-> إرسال ($ SenderConfig [" SMTP_email "] ، $ Receiver ، $ Subject ، $ Text )؛ // امسح قائمة المستلمين $ mail-> clearRecipients () ؛ $ mail-> clearCC () ؛ $ mail-> clearBCC () ؛ $ mail-> clearAttachments () ؛) وإلا (صدى "حدث خطأ أثناء الاتصال بخادم SMTP "؛)؟>

يعتمد إعداد البرنامج النصي بشكل أساسي على مصفوفة $ SenderConfig ، وهنا يجب علينا تحديد SMTP: الخادم والمنفذ وتسجيل الدخول إلى البريد الإلكتروني وكلمة المرور. دعنا نصف مفتاح كل صفيف:

SMTP_server - عنوان خادم SMTP (عنوان فردي لرسائل بريد مختلفة)

بريد Mail.ru: منفذ smtp.mail.ru: 25 و 587 و 465 (بتشفير SSL)

بريد ياندكس: منفذ smtp.yandex.ru: 25 ، 587465 (منفذ SSL)

Rambler Mail: منفذ mail.rambler.ru: 25 ، 587465 (منفذ SSL)

ايميل موقع ياهو: smtp.mail.yahoo.com منفذ SSL: 465

(إذا كنت بحاجة إلى عنوان خوادم smtp غير الموجودة في القائمة - اكتب في التعليقات)

SMTP_port - لقد وصفناه بالفعل من أعلى لكل خادم smtp.

SMTP_email - سيكون المستخدم أكثر دقة ولكن للتوضيح لقد كتبت بريدًا إلكترونيًا ، حدد عنوان البريد الإلكتروني.

SMTP_pass - كلمة المرور للبريد الإلكتروني الذي تم تحديده كقيمة في مفتاح SMTP_email


SMTP_type - NULL افتراضيًا. البروتوكول الذي سيتم إرسال الرسائل بموجبه. البروتوكولات: SSL و TLS

يمكن إضافة المرفقات بالحرف عن طريق تحديد العنوان الكامل للملف في المتغير $ Attachment (/var/patch/to/file/File.pdf)

إذا كان لديك أي أسئلة ، فاكتبها في التعليقات أدناه.

2019-08-05

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

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

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

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

الحقيقة هي أن مرشحات مكافحة الرسائل الاقتحامية (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 مع جميع محتوياته في جذر الموقع. في الوقت نفسه ، للتبسيط ، يمكنك إعادة تسميته إلى 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. لإرسال بريد باستخدام البرامج النصية للموقع ، يمكننا أن نعرض استخدام الحل الخاص بنا ، لتوصيله ، يجب عليك تنفيذ الخطوات التالية:

  • تحميل من موقعنا أرشيف بالملفات الضرورية ( send_auth_mail.phpو mail.inc.php) وتفريغها على جهاز الكمبيوتر الخاص بك ؛
  • تعديل ملف send_auth_mail.phpمن الأرشيف ، مع تحديد تفاصيل الاتصال بخادم SMTP المطلوب فيه:

    • $ mail_smtpServer = "smtp.site"؛ (عنوان خادم SMTP)
    • $ mail_port = "25" ؛ (منفذ اتصال)
    • $ mail_username = "[بريد إلكتروني محمي]" ؛ (اسم مستخدم للترخيص على خادم SMTP)
    • $ mail_password = "كلمة المرور"؛ (كلمة مرور للترخيص على خادم SMTP)
  • قم بإنشاء نسخة احتياطية للملف domain.tld / www / netcat / admin / mail.inc.php;
  • تحميل ملفات send_auth_mail.phpو mail.inc.phpإلى الموقع الافتراضي للدليل domain.tld / www / netcat / admin /

domain.tldيجب استبدال اسم المجال الخاص بك.

يعمل الحل المقترح مع جميع وحدات NetCat النمطية التي تستخدم الوظائف القياسية لنظام إدارة المحتوى هذا لإرسال البريد.

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

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

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

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

للتحقق من أداء مثل هذا البريد ، فأنت بحاجة إلى الحد الأدنى:

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

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

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

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

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

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

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

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

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

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

  1. بدء تشغيل الخادم
  2. افتح وحدة Openerver بالإعدادات الموجودة في قائمة "البريد"
  3. نقوم بملء جميع الحقول كما هو موضح في الصورة ، بينما نقوم باستبدال اسم المستخدم والبريد الإلكتروني للمرسل وكلمة المرور من صندوق بريد حقيقي على 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 الأخرى ، ستكون جميع البيانات متطابقة تقريبًا.

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