gpt4 book ai didi

python - 如何用 Python 编写一个简单的电子邮件监听器

转载 作者:行者123 更新时间:2023-11-28 19:10:11 37 4
gpt4 key购买 nike

我是 Python (v2.7) 的新手,我需要编写一个连续运行的简单程序,监听一个 gmail 帐户并在该帐户收到电子邮件时调用一个函数。到目前为止,使用 Python 的内置 IMAP 或 SMTP 库似乎是最好的选择,但我对它们不是很熟悉,更不用说 Python 本身了。

到目前为止,我的想法是能够连接到电子邮件并通过 IMAP4 找到最新的电子邮件,但它缺少一种持续检查是否收到新电子邮件的方法:

( Source )

import imaplib
import email

#logs in to the desired account and navigates to the inbox
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('email@gmail.com','password')
mail.list()
mail.select('inbox')

result, data = mail.search(None,'ALL')

#retrieves the latest (newest) email by sequential ID
ids = data[0]
id_list = ids.split()
latest_email_id = id_list[-1]

任何关于如何调整它以持续运行和检查新传入消息的帮助都会很棒。谢谢!

最佳答案

使用threading 模块和子类threading.Thread。可在此处找到文档:https://docs.python.org/2/library/threading.html

import threading
import time

class MailThread(threading.Thread):

然后您的代码进入 run(),您必须在其中添加一些延迟。假设 1000 秒。

def run():
#your code here
time.sleep(1000)

脚本的最后一部分如下所示

if __name__ == '__main__': 
mail_thread = MailThread()
mail_thread.start()
# do other stuff

只需使用 while(True) 循环和 time.sleep() 并在收到邮件后使用 break

关于python - 如何用 Python 编写一个简单的电子邮件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41517142/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com