logo

بايثون إرسال البريد الإلكتروني باستخدام SMTP

يتم استخدام بروتوكول نقل البريد البسيط (SMTP) كبروتوكول للتعامل مع نقل البريد الإلكتروني باستخدام Python. يتم استخدامه لتوجيه رسائل البريد الإلكتروني بين خوادم البريد الإلكتروني. إنه بروتوكول طبقة التطبيق الذي يسمح للمستخدمين بإرسال البريد إلى آخر. يقوم المتلقي باسترداد البريد الإلكتروني باستخدام البروتوكولات بوب (بروتوكول مكتب البريد) و IMAP (بروتوكول الوصول إلى الرسائل عبر الإنترنت) .

بايثون إرسال البريد الإلكتروني باستخدام SMTP

عندما يستمع الخادم لاتصال TCP من العميل، فإنه يبدأ الاتصال على المنفذ 587.

توفر بايثون أ com.smtplib الوحدة النمطية، التي تحدد كائن جلسة عميل SMTP المستخدم لإرسال رسائل البريد الإلكتروني إلى جهاز الإنترنت. لهذا الغرض، علينا استيراد com.smtplib الوحدة باستخدام بيان الاستيراد.

 $ import smtplib 

يتم استخدام كائن SMTP لنقل البريد الإلكتروني. يتم استخدام بناء الجملة التالي لإنشاء كائن smtplib.

 import smtplib smtpObj = smtplib.SMTP(host, port, local_hostname) 

يقبل المعلمات التالية.

    يستضيف:إنه اسم المضيف للجهاز الذي يقوم بتشغيل خادم SMTP الخاص بك. هنا يمكننا تحديد عنوان IP الخاص بالخادم مثل (https://www.javatpoint.com) أو المضيف المحلي. إنها معلمة اختيارية.ميناء:إنه رقم المنفذ الذي يستمع عليه الجهاز المضيف إلى اتصالات SMTP. هو 25 افتراضيا.اسم_المضيف المحلي:إذا كان خادم SMTP يعمل على جهازك المحلي، فيمكننا ذكر اسم المضيف للجهاز المحلي.

يتم استخدام طريقة sendmail() لكائن SMTP لإرسال البريد إلى الجهاز المطلوب. ويرد بناء الجملة أدناه.

المشغلين في برمجة بايثون
 smtpObj.sendmail(sender, receiver, message) 

مثال

 #!/usr/bin/python3 import smtplib sender_mail = '[email protected]' receivers_mail = ['[email protected]'] message = '''From: From Person %s To: To Person %s Subject: Sending SMTP e-mail This is a test e-mail message. '''%(sender_mail,receivers_mail) try: smtpObj = smtplib.SMTP('localhost') smtpObj.sendmail(sender_mail, receivers_mail, message) print('Successfully sent email') except Exception: print('Error: unable to send email') 

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

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

استخدم بناء الجملة التالي.

 $ smtpObj = smtplib.SMTP('gmail.com', 587) 

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

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

بايثون إرسال البريد الإلكتروني باستخدام SMTP

النظر في المثال التالي.

مثال

 #!/usr/bin/python3 import smtplib sender_mail = '[email protected]' receivers_mail = ['[email protected]'] message = '''From: From Person %s To: To Person %s Subject: Sending SMTP e-mail This is a test e-mail message. '''%(sender_mail,receivers_mail) try: password = input('Enter the password'); smtpObj = smtplib.SMTP('gmail.com',587) smtpobj.login(sender_mail,password) smtpObj.sendmail(sender_mail, receivers_mail, message) print('Successfully sent email') except Exception: print('Error: unable to send email') 

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

يمكننا تنسيق HTML في الرسالة عن طريق تحديد إصدار MIME ونوع المحتوى ومجموعة الأحرف لإرسال HTML.

النظر في المثال التالي.

كيفية العثور على التطبيقات المخفية على أندرويد

مثال

 #!/usr/bin/python3 import smtplib sender_mail = &apos;[email protected]&apos; receivers_mail = [&apos;[email protected]&apos;] message = &apos;&apos;&apos;From: From Person %s To: To Person %s MIME-Version:1.0 Content-type:text/html Subject: Sending SMTP e-mail <h3>Python SMTP</h3> <strong>This is a test e-mail message.</strong> &apos;&apos;&apos;%(sender_mail,receivers_mail) try: smtpObj = smtplib.SMTP(&apos;localhost&apos;) smtpObj.sendmail(sender_mail, receivers_mail, message) print(&apos;Successfully sent email&apos;) except Exception: print(&apos;Error: unable to send email&apos;)