العمل مع البريد الإلكتروني. إرسال بريد إلكتروني آليًا باستخدام خدمات متنوعة أرسل رسالة إلى البريد ج
برمجيا إرسال البريد الإلكتروني باستخدام خدمات متنوعة
- .صافي،
في كثير من الأحيان عليك التعامل مع الإرسال رسائل البريد الإلكترونيمن كود البرنامج. ليس عليك أن تذهب بعيدًا للحصول على أمثلة.
هذا المقال هو تلميح ولا يفتح أي شيء جديد ، ولكن قبل كتابته ، نظرت إلى شيء مشابه على الإنترنت وفوجئت بالأحرى أنه في كل مكان تقريبًا يقدمون إما حلًا لا يعمل أو عفا عليه الزمن ، أو ببساطة مكتوب بشكل أمي.
أول شيء لا يجب فعله بهذه الأمثلة هو استخدام System.Web.Mail ، الذي تم إهماله لفترة طويلة ، والبدء بـ استوديو مرئي 2010 مكتبة System.Web حتى لا تضيف ، دون معرفة المسار الكامل لمكتبة الارتباط الديناميكي المقابلة.
بدلاً من ذلك ، يُقترح استخدام مكتبة System.Net.
باستخدام System.Net ؛ باستخدام System.Net.Mail ؛
لذلك ، أبسط ، هو الأكثر أهمية وغالبًا ما يتم استخدامه هو إرسال رسالة من ملف خادم البريدالذي تم تكوين عميل SMTP عليه. كما تفهم ، يمكن أن يكون الخادم إما هو الخادم الذي يعمل عليه التطبيق ، أو الخادم البعيد ، والذي يحق لك إرسال رسائل بدون إذن إضافي عليه.
نموذج رمز لإرسال رسالة من جهاز محلي:
استخدام خدمات بريديةمثل Gmail و Yandex و Mail.ru وما إلى ذلك. كل شيء هو نفسه ، تتم إضافة المعلمات فقط مع الإذن.
خادم SMTP: smtp.gmail.com
المنفذ: 587
باستخدام (MailMessage mm = new MailMessage ("Name
خادم SMTP: smtp.yandex.ru
المنفذ: 25
باستخدام (MailMessage mm = new MailMessage ("Name
خادم SMTP: smtp.mail.ru
المنفذ: 25
باستخدام (MailMessage mm = new MailMessage ("Name
اذا كنت تمتلك صندوق بريدعلى خدمة mail.ru تنتهي بـ inbox.ru أو list.ru أو bk.ru ، ثم يتغير عنوان خادم SMTP وفقًا لذلك (smtp.inbox.ru ، smtp.list.ru و smtp.bk.ru).
كما ترى ، من أجل استخدام أي خدمة بريد أخرى في برامجك ، ما عليك سوى معرفة عنوان ومنفذ خادم SMTP ، بالإضافة إلى قواعد التفويض.
يجب أن نتذكر أيضًا أن جميع الجهات الخارجية تقريبًا خدمات بريديةفرض قيود على عدد رسائل البريد الإلكتروني المرسلة خلال فترة زمنية.
العلامات: بريد إلكتروني ، إرسال رسائل بريد إلكتروني ، بروتوكول smtp
واحدة من أكثر الوظائف المطلوبة على الموقع هي نموذج الطلب أو الطلب ، حيث يتم إرسال البيانات من خلال البريد إلى مالك الموقع. كقاعدة عامة ، تكون هذه النماذج بسيطة وتتكون من حقلين أو ثلاثة حقول لإدخال البيانات. كيف تنشئ نموذج الطلب هذا؟ سيتطلب هذا استخدام اللغة ترميز HTMLولغة برمجة PHP.
لغة ترميز HTML نفسها بسيطة ، ما عليك سوى معرفة كيفية ومكان وضع علامات معينة. مع لغة برمجة PHP ، تصبح الأمور أكثر تعقيدًا بعض الشيء.
لن يكون من الصعب على المبرمج إنشاء مثل هذا النموذج ، ولكن بالنسبة لمبرمج HTML ، قد تبدو بعض الإجراءات صعبة.
قم بإنشاء نموذج لإرسال البيانات بتنسيق html
السطر الأول سيكون التالي
الآن دعونا نجمع كل ذلك معًا.
الآن سنجعل الحقول في النموذج إلزامية. لدينا الكود التالي:
قم بإنشاء ملف يقبل البيانات من نموذج HTML
سيكون هذا ملفًا باسم send.php
في الملف ، في المرحلة الأولى ، تحتاج إلى قبول البيانات من مصفوفة النشر. للقيام بذلك ، نقوم بإنشاء متغيرين:
$ fio = $ _POST ["fio"] ؛
$ email = $ _POST ["البريد الإلكتروني"] ؛
تُسبَق أسماء متغيرات PHP بعلامة $ وفاصلة منقوطة في نهاية كل سطر. $ _POST هو مصفوفة يتم تمرير البيانات من النموذج إليها. في نموذج html ، يتم تحديد طريقة الإرسال على أنها method = "post". لذلك ، تم أخذ متغيرين من أشكال أتش تي أم أل... لغرض حماية موقعك ، تحتاج إلى تمرير هذه المتغيرات من خلال عدة عوامل تصفية - وظائف php.
تقوم الوظيفة الأولى بتحويل جميع الأحرف التي يحاول المستخدم إضافتها إلى النموذج:
في هذه الحالة ، لا يتم إنشاء متغيرات جديدة في php ، ولكن يتم استخدام المتغيرات الموجودة. ما سيفعله الفلتر هو تحويل الحرف "<" в "<". Также он поступить с другими символами, встречающимися в html коде.
ستقوم الوظيفة الثانية بفك تشفير عنوان url إذا حاول المستخدم إضافته إلى النموذج.
$ fio = urldecode ($ fio) ؛
$ email = urldecode ($ email) ؛
في الوظيفة الثالثة ، سنزيل المسافات من بداية السلسلة ونهايتها ، إن وجدت:
$ fio = تقليم ($ fio) ؛
$ email = تقليم ($ email) ؛
هناك وظائف أخرى لتصفية متغيرات php أيضًا. يعتمد استخدامها على مدى خوفك من أن يحاول المهاجم إضافة رمز إلى هذا النموذج من إرسال البيانات إلى بريد html.
التحقق من صحة البيانات التي تم تمريرها من نموذج HTML إلى ملف PHP
للتحقق مما إذا كان هذا الرمز يعمل ، وما إذا كان يتم نقل البيانات ، يمكنك ببساطة عرضه على الشاشة باستخدام وظيفة echo:
صدى $ fio؛
صدى صوت "
";
صدى $ البريد الإلكتروني؛
السطر الثاني هنا لتقسيم ناتج متغيرات php إلى أسطر مختلفة.
إرسال البيانات المستلمة من نموذج HTML إلى البريد باستخدام PHP
لإرسال البيانات إلى البريد ، تحتاج إلى استخدام وظيفة البريد في PHP.
mail ("العنوان المراد الإرسال إليه" ، "موضوع الحرف" ، "الرسالة (نص الرسالة)" ، "من: البريد الإلكتروني الذي تم إرسال الرسالة منه \ r \ n") ؛
على سبيل المثال ، تحتاج إلى إرسال البيانات إلى البريد الإلكتروني لمالك الموقع أو المدير [البريد الإلكتروني محمي]
يجب أن يكون سطر موضوع البريد الإلكتروني واضحًا ، ويجب أن تحتوي رسالة البريد الإلكتروني على ما حدده المستخدم في نموذج HTML.
بريد (" [البريد الإلكتروني محمي]"،" تطبيق من الموقع "،" الاسم الكامل: ". $ Fio.". البريد الإلكتروني: ". Email،" من: [البريد الإلكتروني محمي]\ r \ n ")؛
تحتاج إلى إضافة شرط للتحقق مما إذا كان النموذج قد تم إرساله باستخدام PHP إلى عنوان البريد الإلكتروني المحدد.
إذا (بريد (" [البريد الإلكتروني محمي]"،" Order from the site "،" Full name: ". $ Fio.". البريد الإلكتروني: ". Email،" من: [البريد الإلكتروني محمي]\ r \ n "))
{
صدى "تم إرسال الرسالة بنجاح" ؛
) آخر (
}
وبالتالي ، سيبدو كود البرنامج الخاص بملف send.php الذي سيرسل بيانات نموذج HTML إلى البريد كما يلي:
$ fio = $ _POST ["fio"] ؛
$ email = $ _POST ["البريد الإلكتروني"] ؛
$ fio = htmlspecialchars ($ fio) ؛
$ email = htmlspecialchars ($ email) ؛
$ fio = urldecode ($ fio) ؛
$ email = urldecode ($ email) ؛
$ fio = تقليم ($ fio) ؛
$ email = تقليم ($ email) ؛
// echo $ fio؛
// صدى صوت "
";
// echo $ email؛
إذا (بريد (" [البريد الإلكتروني محمي]"،" تطبيق من الموقع "،" الاسم الكامل: ". $ Fio.". البريد الإلكتروني: ". Email،" من: [البريد الإلكتروني محمي]\ r \ n "))
(صدى "تم إرسال الرسالة بنجاح" ؛
) آخر (
صدى "حدثت أخطاء أثناء إرسال الرسالة" ؛
}?>
ثلاثة أسطر للتحقق مما إذا كانت البيانات التي تم تمريرها إلى الملف قد تم التعليق عليها. إذا لزم الأمر ، يمكنك إزالتها ، لأنها كانت مطلوبة فقط من أجل التصحيح.
وضع كود HTML و PHP لإرسال النموذج في ملف واحد
في التعليقات على هذه المقالة ، يطرح العديد من الأشخاص سؤالًا حول كيفية إنشاء نموذج HTML وكود PHP لإرسال البيانات إلى البريد في ملف واحد ، وليس ملفين.
لتنفيذ مثل هذا العمل ، تحتاج إلى وضع كود HTML للنموذج في ملف send.php وإضافة شرط يتحقق من وجود متغيرات في مصفوفة POST (يتم تمرير هذه المصفوفة من النموذج). بمعنى ، إذا كانت المتغيرات في المصفوفة غير موجودة ، فأنت بحاجة إلى إظهار النموذج للمستخدم. خلاف ذلك ، تحتاج إلى قبول البيانات من المصفوفة وإرسالها إلى المرسل إليه.
دعونا نرى كيفية تغيير كود PHP في ملف send.php:
// تحقق مما إذا كانت المتغيرات موجودة في صفيف POST
if (! isset ($ _ POST ["fio"]) و! isset ($ _ POST ["email"])) (
?> ) آخر (
// إظهار الشكل
$ fio = $ _POST ["fio"] ؛
$ email = $ _POST ["البريد الإلكتروني"] ؛
$ fio = htmlspecialchars ($ fio) ؛
$ email = htmlspecialchars ($ email) ؛
$ fio = urldecode ($ fio) ؛
$ email = urldecode ($ email) ؛
$ fio = تقليم ($ fio) ؛
$ email = تقليم ($ email) ؛
إذا (بريد (" [البريد الإلكتروني محمي]"،" تطبيق من الموقع "،" الاسم الكامل: ". $ Fio.". البريد الإلكتروني: ". Email،" من: [البريد الإلكتروني محمي]\ r \ n ")) (
صدى "تم إرسال الرسالة بنجاح" ؛
) آخر (
صدى "كانت هناك أخطاء في إرسال الرسالة" ؛
}
}
?>
نتحقق من وجود متغير في مصفوفة POST باستخدام الدالة PHP isset (). علامة التعجب قبل هذه الوظيفة في حالة ما تعني النفي. بمعنى ، إذا كان المتغير غير موجود ، فعلينا إظهار الشكل. إذا لم أضع علامة تعجب ، فإن الشرط يعني حرفياً - "إذا كان موجودًا ، فقم بإظهار النموذج". وهذا خطأ في حالتنا. وبطبيعة الحال ، يمكنك إعادة تسميته إلى index.php. إذا قمت بإعادة تسمية الملف ، فلا تنس إعادة تسمية اسم الملف وفي السطر