我正在尝试使用Python的Imaplib创建电子邮件,并将其发送到带有特定名称的邮箱,例如收件箱。任何人都有一些很好的建议:)。

有帮助吗?

解决方案

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'))

简而言之,您必须将消息作为字节而不是python字符串传递。

不知道他们是如何做到的,但是Microsoft Outlook不会让您将电子邮件从本地文件夹移动到远程IMAP文件夹吗?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top