Как создать электронное письмо и отправить его в определенный почтовый ящик с помощью imaplib - PullRequest
4 голосов
/ 22 сентября 2010

Я пытаюсь использовать imaplib python для создания электронного письма и отправки его в почтовый ящик с конкретным именем, например, INBOXУ любого есть отличное предложение:).

Ответы [ 4 ]

9 голосов
/ 22 сентября 2010

Протокол IMAP не предназначен для отправки электронных писем. Он предназначен для манипулирования почтовыми ящиками.

Для создания электронного письма и его отправки вы можете использовать SMTP, как в smtplib .

Чтобы переместить письмо, уже находящееся в почтовом ящике, из одной папки в другую, вы можете скопировать почту в нужную папку и удалить ее из старой, используя uid, как в ответе здесь .

6 голосов
/ 09 июня 2013

Вы можете использовать встроенный в 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))
0 голосов
/ 03 июня 2019

Поскольку я пока не могу комментировать комментарий пользователя 3556956, вот ответ для python3:

connection.append('INBOX', '', imaplib.Time2Internaldate(time.time()), str(new_message).encode('utf-8'))

Короче говоря, вы должны передать сообщение в виде байта вместо строки Python.

0 голосов
/ 24 сентября 2010

Не представляете, как они это делают, но разве Microsoft Outlook не позволяет вам переместить письмо из локальной папки в удаленную папку IMAP?

...