• 0

هل يمكن إرسال رسالة بريد إلكتروني عن طريق بايثون؟

أريد أن أصنع برنامج يُرسل رسالة معينة في وقت معين، فهل يمكن إرسال رسالة بريد إلكتروني عن طريق لغة بايثون؟ وكيف يمكنني فعل ذلك؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

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

import smtplib
fromaddr = 'user_me@gmail.com'
toaddrs  = 'user_you@gmail.com'
msg = 'Why,Oh why!'
username = 'user_me@gmail.com'
password = 'pwd'
server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo()
server.starttls()
server.login(username,password)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()

وبما أنك ذكرت أنك تريد إنشاء برنامج للإرسال، فيمكنك في هذه الحالة إنشاء دالة للإرسال كما في المثال التالي:

def send_email(user, pwd, recipient, subject, body):
    import smtplib

    gmail_user = user
    gmail_pwd = pwd
    FROM = user
    TO = recipient if type(recipient) is list else [recipient]
    SUBJECT = subject
    TEXT = body

    # Prepare actual message
    message = """\From: %s\nTo: %s\nSubject: %s\n\n%s
    """ % (FROM, ", ".join(TO), SUBJECT, TEXT)
    try:
        server = smtplib.SMTP("smtp.gmail.com", 587)
        server.ehlo()
        server.starttls()
        server.login(gmail_user, gmail_pwd)
        server.sendmail(FROM, TO, message)
        server.close()
        print 'successfully sent the mail'
    except:
        print "failed to send mail"

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن