كيفية إنشاء بريد إلكتروني وإرساله إلى صندوق بريد محدد مع imaplib
سؤال
أحاول استخدام Imaplib من Python لإنشاء بريد إلكتروني وإرساله إلى صندوق بريد يحمل اسمًا محددًا ، على سبيل المثال. أي شخص لديه بعض الاقتراحات الرائعة :).
المحلول
بروتوكول IMAP غير مصمم لإرسال رسائل البريد الإلكتروني. وهي مصممة لمعالجة صناديق البريد.
لإنشاء بريد إلكتروني وإرساله يمكنك استخدام SMTP ، كما هو الحال في smtplib.
لنقل بريد إلكتروني موجود بالفعل في صندوق بريد من مجلد إلى آخر ، يمكنك نسخ البريد إلى المجلد المطلوب وحذفه من القديم باستخدامه باستخدام uid
, ، كما في الجواب هنا.
نصائح أخرى
يمكنك استخدام Python المدمج في imaplib
الوحدة النمطية و append()
أمر لإلحاق رسالة بريد إلى مجلد IMAP:
import imaplib
connection = imaplib.IMAP4_SSL(HOSTNAME)
connection.login(USERNAME, PASSWORD)
new_message = email.message.Message()
new_message["From"] = "hello@itsme.com"
new_message["Subject"] = "My new mail."
new_message.set_payload("This is my message.")
connection.append('INBOX', '', imaplib.Time2Internaldate(time.time()), str(new_message))
نظرًا لأنني لا أستطيع التعليق بعد على تعليق user3556956 ، إليك الإجابة على Python3:
connection.append('INBOX', '', imaplib.Time2Internaldate(time.time()), str(new_message).encode('utf-8'))
باختصار ، عليك تمرير الرسالة كبايت بدلاً من سلسلة بيثون.
لا فكرة عن كيفية قيامهم بذلك ولكن لا يتيح لك Microsoft Outlook نقل بريد إلكتروني من مجلد محلي إلى مجلد IMAP عن بُعد؟