إرسال بريد باستخدام برتوكول إرسال البريد الإلكتروني في بايثون بيثون Python Sending Email using SMTP
إرسال بريد باستخدام برتوكول إرسال البريد الإلكتروني في بايثون بيثون
Python Sending Email using SMTP
إرسال بريد باستخدام برتوكول إرسال البريد الإلكتروني في بايثون بيثون Python Sending Email using SMTP
بروتوكول نقل البريد البسيط (SMTP) هو بروتوكول يعالج إرسال البريد الإلكتروني وتوجيه البريد الإلكتروني بين خوادم البريد.
يوفر Python وحدة smtplib ، والتي تحدد كائن جلسة عميل SMTP الذي يمكن استخدامه لإرسال البريد إلى أي جهاز إنترنت باستخدام برنامج الخفي لمستمع SMTP أو ESMTP.
فيما يلي بناء جملة بسيط لإنشاء كائن SMTP واحد ، والذي يمكن استخدامه لاحقًا لإرسال بريد إلكتروني -
import smtplib smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )
Here is the detail of the parameters −
هنا تفاصيل الوسيطات
- host −
- هذا هو المضيف الذي يشغل خادم SMTP الخاص بك. يمكنك تحديد عنوان IP للمضيف أو اسم مجال مثل gmail.com. هذه حجة اختيارية.
- port −
- إذا كنت تقدم وسيطة مضيفة ، فأنت بحاجة إلى تحديد منفذ يستمع خادم SMTP إليه. عادة ما يكون هذا المنفذ 25.
- local_hostname −إذا كان خادم SMTP يعمل على جهازك المحلي ، فيمكنك تحديد مضيف محلي فقط من هذا الخيار.
يحتوي كائن SMTP على طريقة مثيل تُسمى sendmail ، والتي تُستخدم عادةً للقيام بمهمة إرسال رسالة بالبريد. يستغرق ثلاثة معايير -
المرسل - سلسلة مع عنوان المرسل.
المستقبلات - قائمة من السلاسل ، واحدة لكل مستلم.
الرسالة - رسالة منسقة كسلسلة كما هو محدد في RFCs المختلفة.
مثال
إليك طريقة بسيطة لإرسال بريد إلكتروني واحد باستخدام برنامج Python النصي. جربه مرة واحدة -
#!/usr/bin/python import smtplib sender = 'from@fromdomain.com' receivers = ['to@todomain.com'] message = """From: From PersonTo: To Person try: smtpObj = smtplib.SMTP('localhost') smtpObj.sendmail(sender, receivers, message) print "Successfully sent email" except SMTPException: print "Error: unable to send email"Subject: SMTP e-mail test This is a test e-mail message. """
هنا ، قمت بوضع رسالة بريد إلكتروني أساسية في الرسالة ، باستخدام عرض أسعار ثلاثي ، مع الحرص على تنسيق الرؤوس بشكل صحيح. يتطلب البريد الإلكتروني رأسًا من ، إلى ، والموضوع ، مفصولًا عن نص البريد الإلكتروني بسطر فارغ.
لإرسال البريد الذي تستخدمه smtpObj للاتصال بملقم SMTP على الجهاز المحلي ، ثم استخدم أسلوب sendmail مع الرسالة وعنوان من وعنوان الوجهة كمعلمات (على الرغم من أن من وإلى عناوين داخل e -البريد الإلكتروني نفسه ، لا تستخدم هذه دائمًا لتوجيه البريد).
إذا كنت لا تقوم بتشغيل خادم SMTP على جهازك المحلي ، يمكنك استخدام عميل smtplib للتواصل مع خادم SMTP بعيد. ما لم تكن تستخدم خدمة بريد الويب (مثل Hotmail أو Yahoo! Mail) ، يجب أن يكون مزود بريدك الإلكتروني قد زودك بتفاصيل خادم البريد الصادر التي يمكنك تقديمها ، كما يلي -
smtplib.SMTP('mail.your-domain.com', 25)
Sending an HTML e-mail using Python
إرسال بريد اكتر من خلال بايثون بيثون
عند إرسال رسالة نصية باستخدام Python ، يتم التعامل مع جميع المحتويات كنص بسيط. حتى إذا قمت بتضمين علامات HTML في رسالة نصية ، يتم عرضها كنص بسيط ولن يتم تنسيق علامات HTML وفقًا لتركيبات HTML. لكن بيثون يوفر خيارًا لإرسال رسالة HTML كرسالة HTML فعلية.
أثناء إرسال رسالة بريد إلكتروني ، يمكنك تحديد إصدار Mime ونوع المحتوى ومجموعة الأحرف لإرسال بريد HTML الإلكتروني.
مثال
فيما يلي مثال على إرسال محتوى HTML كرسالة بريد إلكتروني. جربه مرة واحدة -
#!/usr/bin/python import smtplib message = """From: From PersonTo: To Person try: smtpObj = smtplib.SMTP('localhost') smtpObj.sendmail(sender, receivers, message) print "Successfully sent email" except SMTPException: print "Error: unable to send email"MIME-Version: 1.0 Content-type: text/html Subject: SMTP HTML e-mail test This is an e-mail message to be sent in HTML format This is HTML message. This is headline.
"""
Sending Attachments as an E-mail
إرسال ملف مرفق في بايثون بيثون
لإرسال رسالة بريد إلكتروني مع محتوى مختلط يتطلب تعيين رأس نوع المحتوى إلى متعدد الأجزاء / مختلط. بعد ذلك ، يمكن تحديد أقسام النص والمرفقات ضمن الحدود.
تبدأ الحدود برمز اثنين من الواصلات متبوعًا برقم فريد لا يمكن ظهوره في جزء الرسالة من البريد الإلكتروني. يجب أيضًا أن تنتهي الحدود النهائية التي تدل على القسم الأخير من البريد الإلكتروني بواصلين.
يجب تشفير الملفات المرفقة مع وظيفة pack ("m") حتى يكون base64 ترميزًا قبل الإرسال.
مثال
فيما يلي المثال الذي يرسل ملف /tmp/test.txt كمرفق. جربه مرة واحدة -
#!/usr/bin/python import smtplib import base64 filename = "/tmp/test.txt" # Read a file and encode it into base64 format fo = open(filename, "rb") filecontent = fo.read() encodedcontent = base64.b64encode(filecontent) # base64 sender = 'webmaster@tutorialpoint.com' reciever = 'amrood.admin@gmail.com' marker = "AUNIQUEMARKER" body =""" This is a test email to send an attachement. """ # Define the main headers. part1 = """From: From PersonTo: To Person % (marker, marker) # Define the message action part2 = """Content-Type: text/plain Content-Transfer-Encoding:8bit %s --%s """ % (body,marker) # Define the attachment section part3 = """Content-Type: multipart/mixed; name=\"%s\" Content-Transfer-Encoding:base64 Content-Disposition: attachment; filename=%s %s --%s-- """ %(filename, filename, encodedcontent, marker) message = part1 + part2 + part3 try: smtpObj = smtplib.SMTP('localhost') smtpObj.sendmail(sender, reciever, message) print "Successfully sent email" except Exception: print "Error: unable to send email"Subject: Sending Attachement MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=%s --%s """
التسميات: Python بايثون
<< الصفحة الرئيسية