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

تمت الكتابة بواسطة: عبد الحكيم

تارخ آخر تحديث: 16 سبتمبر 2024

محتوى المقال

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

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

مقدمة إلى إرسال البريد الإلكتروني باستخدام Python

Python توفر مكتبة مدمجة تُدعى smtplib، وهي تمكنك من إرسال رسائل البريد الإلكتروني باستخدام بروتوكول SMTP (Simple Mail Transfer Protocol). بالإضافة إلى ذلك، يمكن استخدام مكتبة email لتنسيق الرسائل بشكل صحيح، بما في ذلك إضافة المرفقات أو تنسيق الرسائل كـ HTML.

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

لإرسال بريد إلكتروني باستخدام Python، نحتاج إلى خادم SMTP. العديد من مزودي خدمات البريد الإلكتروني، مثل Gmail و Outlook، يوفرون خوادم SMTP التي يمكنك استخدامها. لنبدأ بمثال باستخدام خادم SMTP الخاص بـ Gmail.

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

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

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

لنبدأ بإرسال رسالة بريد إلكتروني نصية بسيطة باستخدام Python. إليك الكود الأساسي:

import smtplib
from email.mime.text import MIMEText

# إعداد معلومات الاتصال بخادم SMTP
smtp_server = 'smtp.gmail.com'
port = 587
sender_email = 'your-email@gmail.com' # قم باستبدالها بالبريد الإلكتروني الخاص بك
password = 'your-password' # قم باستبدالها بكلمة مرور البريد الإلكتروني

# إعداد الرسالة
message = MIMEText('مرحبًا، هذه رسالة بريد إلكتروني مرسلة باستخدام Python!', 'plain')
message['Subject'] = 'موضوع الرسالة'
message['From'] = sender_email
message['To'] = 'recipient-email@example.com' # قم باستبدالها بالبريد الإلكتروني للمرسل إليه

# إرسال الرسالة
try:
    server = smtplib.SMTP(smtp_server, port)
    server.ehlo() # بدء الاتصال بالخادم
    server.starttls() # تأمين الاتصال باستخدام TLS
    server.login(sender_email, password)
    server.sendmail(sender_email, message['To'], message.as_string())
    print('تم إرسال الرسالة بنجاح!')
    server.quit()
except Exception as e:
    print('حدث خطأ:', e)

هذا الكود البسيط يقوم بإرسال رسالة بريد إلكتروني نصية من حساب Gmail الخاص بك إلى مستلم محدد. إذا كنت تستخدم خادم SMTP آخر، مثل Outlook، قم بتعديل قيم smtp_server وport وفقًا لمتطلبات الخادم.

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

إرسال رسائل البريد الإلكتروني بتنسيق HTML يمكن أن يكون أكثر جاذبية وتفاعلاً. يمكنك استخدام HTML لتنسيق الرسالة وإضافة روابط وصور. إليك كيفية القيام بذلك:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

# إعداد معلومات الاتصال بخادم SMTP
smtp_server = 'smtp.gmail.com'
port = 587
sender_email = 'your-email@gmail.com'
password = 'your-password'

# إعداد الرسالة
message = MIMEMultipart()
message['From'] = sender_email
message['To'] = 'recipient-email@example.com'
message['Subject'] = 'بريد إلكتروني بتنسيق HTML'

# محتوى الرسالة بتنسيق HTML
html_content = '''
<html>
<body>
<h1>مرحبًا بكم!</h1>
<p>هذه رسالة بريد إلكتروني مرسلة بتنسيق <b>HTML</b> باستخدام Python.</p>
<p>يمكنك أيضًا تضمين <a href="https://www.example.com">روابط</a> وصور.</p>
</body>
</html>
'''


# إرفاق المحتوى بالرسالة
message.attach(MIMEText(html_content, 'html'))

# إرسال الرسالة
try:
    server = smtplib.SMTP(smtp_server, port)
    server.ehlo()
    server.starttls()
    server.login(sender_email, password)
    server.sendmail(sender_email, message['To'], message.as_string())
    print('تم إرسال الرسالة بنجاح!')
    server.quit()
except Exception as e:
    print('حدث خطأ:', e)

هذا الكود يوضح كيفية إرسال رسالة بريد إلكتروني بتنسيق HTML باستخدام Python. يمكنك تخصيص html_content ليشمل أي محتوى HTML ترغب فيه.

إرفاق ملفات برسائل البريد الإلكتروني

قد تحتاج في بعض الأحيان إلى إرسال ملفات مرفقة مع رسائل البريد الإلكتروني. يمكن أن تكون هذه الملفات صورًا، مستندات PDF، أو أي نوع آخر من الملفات. إليك كيفية إرفاق ملف برسالة البريد الإلكتروني:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

# إعداد معلومات الاتصال بخادم SMTP
smtp_server = 'smtp.gmail.com'
port = 587
sender_email = 'your-email@gmail.com'
password = 'your-password'

# إعداد الرسالة
message = MIMEMultipart()
message['From'] = sender_email
message['To'] = 'recipient-email@example.com'
message['Subject'] = 'بريد إلكتروني مع مرفق'

# محتوى الرسالة النصي
body = 'يرجى العثور على المرفق في البريد الإلكتروني.'
message.attach(MIMEText(body, 'plain'))

# إرفاق الملف
filename = 'document.pdf' # قم بتحديد مسار الملف
with open(filename, 'rb') as attachment:
    part = MIMEBase('application', 'octet-stream')
    part.set_payload(attachment.read())

encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="{}"'.format(filename))

message.attach(part)

# إرسال الرسالة
try:
    server = smtplib.SMTP(smtp_server, port)
    server.ehlo()
    server.starttls()
    server.login(sender_email, password)
    server.sendmail(sender_email, message['To'], message.as_string())
    print('تم إرسال الرسالة بنجاح!')
    server.quit()
except Exception as e:
    print('حدث خطأ:', e)

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

نصائح إضافية لإرسال البريد الإلكتروني باستخدام Python

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

الخلاصة

إرسال رسائل البريد الإلكتروني باستخدام Python هو مهارة أساسية لكل مطور يتعامل مع تطبيقات الويب أو البرمجيات التي تحتاج إلى تواصل تلقائي مع المستخدمين. باستخدام مكتبة smtplib ومكتبة email، يمكنك إرسال رسائل نصية، رسائل بتنسيق HTML، وإرفاق ملفات بسهولة. باتباع الأمثلة التي قدمناها في هذا المقال، يمكنك الآن بدء إرسال رسائل البريد الإلكتروني من تطبيقاتك البرمجية الخاصة.

طور مهاراتك: مقالات يجب قراءتها في البرمجة