كيفية إرسال رسائل بريد إلكتروني آلية في Python

كيفية إرسال رسائل بريد إلكتروني آلية في Python

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





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





تابع القراءة لمعرفة كيف يمكنك الحصول على برنامج نصي بلغة Python لإرسال رسائل بريد إلكتروني تعمل على جهازك اليوم.





ما هو SMTP؟

ببساطة ، SMTP ، أو بروتوكول نقل البريد البسيط ، هو بروتوكول اتصال لخوادم البريد لنقل البريد الإلكتروني عبر الإنترنت.

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



في كل نقطة نهاية ، يستخدم البرنامج المعروف باسم Mail Transfer Agent (MTA) المخزن وإعادة التوجيه لتسهيل الاتصال بين خوادم SMTP المشاركة. وبالتالي ، فإن الدور الرئيسي لـ SMTP هو ببساطة إملاء مكان وكيفية انتقال البريد من نقطة إلى أخرى في الشبكة.

ابدء

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





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

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





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

كتابة البريد الإلكتروني في بايثون

يأتي Python 3 مثبتًا مسبقًا مع وحدة تسمى smtplib (اختصار لمكتبة smtp) ، والتي يمكن استخدامها للعمل مع خوادم SMTP.

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

import smtplib

تهيئة كائن SMTP

الآن ، يمكنك استخدام smtplib لإنشاء كائن SMTP ، والذي سيوفر لك معظم وظائف عميل البريد الإلكتروني التقليدي. ومع ذلك ، لا يمكن استخدام وظائف كائن SMTP إلا عبر طرق المثيل. لذلك ، بطبيعة الحال ، فإن الخطوة التالية هي التصريح عن مثيل كائن.

mySMTP = smtplib.SMTP('smtp.google.com')

يؤدي هذا إلى تكوين كائن SMTP لإرسال رسائل البريد الإلكتروني باستخدام خادم SMTP الخاص بـ Google.

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

emailSender = senderMail@sender.com
myThroaway = 'myEmail@gmail.com'
emailRecipients = [myThroaway]

شيء واحد يجب ملاحظته هنا هو أن قائمة المستلمين هي في الواقع مصفوفة ، مما يعني أنها مصممة لتخزين القيم غير الذرية. نتيجة لذلك ، يمكنك تحديد قائمة بريدية كاملة في هذا المجال!

كتابة الرسالة

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

  • تفاصيل المرسل
  • تفاصيل المستلم
  • موضوعات
  • نص الرسالة

يتم وضع هذه الحقول معًا داخل علامات اقتباس ثلاثية ويتم ترسيم حدودها على النحو التالي:

كيفية منحنى النص في Adobe Illustrator
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''

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

أخيرًا ، يمكننا استخدام الأمر sendmail لإرسال البريد من خادم SMTP إلى خادم المستلم.

mySMTP.sendmail(emailSender, emailRecipients, newEmail)

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

استكشاف أخطاء برنامج البريد الإلكتروني Python وإصلاحها

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

لحساب هذه الاحتمالات ، يمكنك استخدام ملف حاول باستثناء block ووضع العبارات المعرضة للخطأ داخل ملف محاولة منع. يجب أن يبدو برنامجك بالكامل ، جنبًا إلى جنب مع كتلة try-except ، على النحو التالي:

import smtplib
emailSender = senderMail@sender.com
myThroaway = ‘my_email@gmail.com’
emailRecipients = [myThroaway]
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''
try:
smtpObj = smtplib.SMTP(‘smtp.gmail.com’)
mySMTP.sendmail(emailSender, emailRecipients, newEmail)
print (Email sent successfully!)
except SMTPException:
print ('Error: There was an error in sending your email.')

تأمين رسائل البريد الإلكتروني الخاصة بك

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

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

تتمثل إحدى طرق التحايل على هذه المشكلة في استخدام بروتوكول TLS (أمان طبقة النقل) لتشفير اتصالك. هذا هو نفس البروتوكول المستخدم من قبل عملاء البريد الإلكتروني الرئيسيين مثل Gmail و Outlook لضمان عدم وقوع رسائل البريد الإلكتروني في الأيدي الخطأ.

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

الخطوة الأولى ، بالطبع ، هي استيراد ملف ssl مكتبة مع smtplib . ال ssl تمنحك المكتبة القدرة على إنشاء سياق SSL آمن والاتصال عبر شبكة مشفرة عن طريق الاتصال بمنافذ محددة على كلا الطرفين.

سياق SSL الآمن ليس سوى مجموعة من الأصفار وإصدارات البروتوكول والشهادات الموثوقة وخيارات TLS وامتدادات TLS.

بعد ذلك ، يمكننا تحديد منفذ TLS وإضافة القليل ssl وظائف المكتبة لإنشاء بريد إلكتروني آمن.

يبدو الرمز ، مع جميع التغييرات التي تم إجراؤها ، على النحو التالي:

import smtplib, ssl
smtpServer = 'smtp.gmail.com'
port = 587
myEmail = 'my_email@gmail.com'
password = 'my_password'
#email and password can also be user input fields
context = ssl.create_default_context()
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''
try:
server = smtplib.SMTP(smtpServer,port)
server.starttls(context=context)
server.login(newEmail, password)
except Exception as e:
print('the email could not be sent.')
finally:
server.quit()

كما كان من قبل ، يجب عليك إنشاء مثيل SMTP واستخدامه في كتلة try-except لمنع أي أعطال مفاجئة للبرنامج.

كيفية إضافة إشارة مرجعية في Adobe Acrobat Reader DC

ماذا يمكنك أن تفعل مع نص بايثون هذا

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

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

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

لمواصلة بناء أشياء رائعة باستخدام الكود ، راجع دليلنا حول كيفية القيام بذلك قم ببناء روبوت Telegram الخاص بك باستخدام Python 3 !

يشارك يشارك سقسقة بريد الالكتروني كيفية ترقية مهاراتك في Python و AI باستخدام Keras و Pytorch و Tensorflow والمزيد

قم بترقية مهاراتك في البرمجة وتطوير الويب على Python والذكاء الاصطناعي و Keras و PyTorch والمزيد

اقرأ التالي
مواضيع ذات صلة
  • برمجة
  • بريد جوجل
  • نصائح عبر البريد الإلكتروني
  • بايثون
  • أتمتة المهام
نبذة عن الكاتب ياش شيلاني(10 مقالات منشورة)

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

المزيد من Yash Chellani

اشترك في نشرتنا الإخبارية

انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!

انقر هنا للاشتراك