如何使用python aiomaplib实时接收电子邮件

问题描述

我正在尝试设置一个程序,它只等待新电子邮件并处理任何新电子邮件,即如果它们在主题中包含某些单词,则打印出任何 pdf 附件。我可以使用下面的代码获得新电子邮件到达的信号,但不知道如何获取电子邮件内容 - 正文、主题、附件等

import asyncio
from aioimaplib import aioimaplib
import email

@asyncio.coroutine
def wait_for_new_message(host,user,password):
    imap_client = aioimaplib.IMAP4_SSL(host=host)
    yield from imap_client.wait_hello_from_server()

    yield from imap_client.login(user,password)
    yield from imap_client.select()

    idle = yield from imap_client.idle_start(timeout=10)
    while imap_client.has_pending_idle():
        msg = yield from imap_client.wait_server_push()
        print(msg)
        if 'EXISTS' in msg[1]:
            id = msg[1].split(" ")[0]
            result,data = yield from imap_client.fetch(id,'(RFC822)')
            email_message = email.message_from_bytes(data[0])
            print(email_message)
        
if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(wait_for_new_message(host,password))

print msg 给出例如['1 RECENT','39 EXISTS'] 表示收到的每封新电子邮件。如何获取电子邮件内容?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...