تتضمن Python العديد من الوحدات النمطية في المكتبة القياسية للعمل مع رسائل البريد الإلكتروني وخوادم البريد الإلكتروني.
نظرة عامة على smtplibتحدد الوحدة النمطية smtplib كائن جلسة عميل SMTP الذي يمكن استخدامه لإرسال البريد إلى أي جهاز إنترنت باستخدام البرنامج الخفي للمستمع SMTP أو ESMTP.
يرمز SMTP إلى بروتوكول نقل البريد البسيط. تعد وحدات smtplib النمطية مفيدة للاتصال بخوادم البريد لإرسال البريد.
يتم إرسال البريد باستخدام smtplib في Python باستخدام خادم SMTP.
يختلف الاستخدام الفعلي وفقًا لمدى تعقيد البريد الإلكتروني وإعدادات خادم البريد الإلكتروني ، وتستند الإرشادات الواردة هنا إلى إرسال البريد الإلكتروني عبر Gmail.
استخدام smtplibهذا المثال مأخوذ من هذا بريد على wikibooks.org
"""The first step is to create an SMTP object, each object is used for connection
with one server."""
import smtplib
server = smtplib.SMTP('smtp.gmail.com', 587)
#Next, log in to the server
server.login("youremailusername", "password")
#Send the mail
msg = "
Hello!" # The /n separates the message from the headers
server.sendmail("[email protected]", "[email protected]", msg)
Code language: PHP (php)
لتضمين رؤوس “من” و “إلى” و “موضوع” ، يجب أن نستخدم حزمة البريد الإلكتروني ، نظرًا لأن smtplib لا يعدل المحتويات أو الرؤوس على الإطلاق.
نظرة عامة على حزمة البريد الإلكترونيتحتوي حزمة البريد الإلكتروني في Python على العديد من الفئات والوظائف لإنشاء رسائل البريد الإلكتروني وتحليلها.
استخدام حزمة البريد الإلكترونينبدأ باستيراد الفئات التي نحتاجها فقط ، وهذا يحفظنا أيضًا من الاضطرار إلى استخدام اسم الوحدة الكامل لاحقًا.
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
Code language: JavaScript (javascript)
ثم نقوم بتكوين بعض رؤوس الرسائل الأساسية:
fromaddr = "[email protected]"
toaddr = "[email protected]"
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = "Python email"
Code language: JavaScript (javascript)
بعد ذلك ، نرفق نص البريد الإلكتروني برسالة MIME:
body = "Python test mail"
msg.attach(MIMEText(body, 'plain'))
Code language: JavaScript (javascript)
لإرسال البريد ، يتعين علينا تحويل الكائن إلى سلسلة ، ثم استخدام نفس prodecure كما هو مذكور أعلاه للإرسال باستخدام خادم SMTP ..
import smtplib
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.ehlo()
server.login("youremailusername", "password")
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
Code language: JavaScript (javascript)
تحقق من عنوان البريد الإلكترونييتضمن بروتوكول SMTP أمرًا يسأل الخادم عما إذا كان العنوان صالحًا أم لا. عادةً ما يتم تعطيل VRFY لمنع مرسلي البريد العشوائي من العثور على عناوين بريد إلكتروني شرعية ، ولكن إذا تم تمكينه ، يمكنك سؤال الخادم عن العنوان وتلقي رمز الحالة الذي يشير إلى الصلاحية مع الاسم الكامل للمستخدم.
هذا المثال مبني على هذا بريد
import smtplib
server = smtplib.SMTP('mail')
server.set_debuglevel(True) # show communication with the server
try:
dhellmann_result = server.verify('dhellmann')
notthere_result = server.verify('notthere')
finally:
server.quit()
print 'dhellmann:', dhellmann_result
print 'notthere :', notthere_result
Code language: PHP (php)
إرسال رسائل البريد الإلكتروني باستخدام Gmailهذا المثال مأخوذ من http://rosettacode.org/wiki/Send_an_email#Python
import smtplib
def sendemail(from_addr, to_addr_list, cc_addr_list,
subject, message,
login, password,
smtpserver="smtp.gmail.com:587"):
header="From: %s
" % from_addr
header += 'To: %s
' % ','.join(to_addr_list)
header += 'Cc: %s
' % ','.join(cc_addr_list)
header += 'Subject: %s
' % subject
message = header + message
server = smtplib.SMTP(smtpserver)
server.starttls()
server.login(login,password)
problems = server.sendmail(from_addr, to_addr_list, message)
server.quit()
Code language: PHP (php)
مثال على استخدام البرنامج النصي أعلاه
sendemail(from_addr="[email protected]",
to_addr_list = ['[email protected]'],
cc_addr_list = ['[email protected]'],
subject="Howdy",
message="Howdy from a python function",
login = 'pythonuser',
password = 'XXXXX')
Code language: JavaScript (javascript)
تم استلام عينة من البريد الإلكتروني
sendemail(from_addr="[email protected]",
to_addr_list = ['[email protected]'],
cc_addr_list = ['[email protected]'],
subject="Howdy",
message="Howdy from a python function",
login = 'pythonuser',
password = 'XXXXX')
Code language: JavaScript (javascript)
مصادر
Python on Wikibooks.org
Rosettacode.org
Docs.python.org
http://docs.python.org/2/library/email.mime.html
Code language: JavaScript (javascript)