gpt4 book ai didi

python - 是否有一个功能只能让该电子邮件监视器读取一次电子邮件?

转载 作者:太空宇宙 更新时间:2023-11-03 21:07:28 25 4
gpt4 key购买 nike

我正在一个更大的程序中设置一个监控系统,该程序将通过设置的电子邮件地址检查电子邮件的电子邮件地址和链接。目前,它仅从包含文件中电子邮件的数组中查找电子邮件。但是,我也希望它查找链接。现在,如果找到这两个,我希望它向收到的邮件中找到的电子邮件发送一封电子邮件。此外,该程序将不断运行以读取电子邮件,并且在程序读取邮件后不会停止。

def sendHotmail(receivingEmail, name):
email = EmailMessage()

email['Subject'] = subject
email['From'] = myEmail
email['To'] = receivingEmail
if count == 0:
email.set_content('Hello {},\nI have attached the link to the servey that you will need to complete\n\n www.google.com'.format(name))
else:
email.set_content('Hello {},\nHere is the link to your certificate{}'.format(name, link))

s = smtplib.SMTP(host='smtp.live.com', port = 587)
s.starttls()
s.login(myEmail, myEmailPass)

s.send_message(email)
s.quit()

def monitorHotmail():
m = imaplib.IMAP4_SSL('imap-mail.outlook.com',993)
m.login(myEmail, myEmailPass)
print(m.list())
m.select("Inbox") # <-- response like ('OK', ['74']) --> total no. of mail in sent folder
while emailsSent != emailsReceived :
result, data = m.uid('search', None, "ALL") # search all email and return uids
if result == 'OK':
for num in data[0].split():
result, data = m.uid('fetch', num, '(RFC822)')
if result == 'OK':
email_message = email.message_from_bytes(data[0][1]) # raw email text including headers
sentBy = email_message['From']
sentBy = sentBy.split(' ')
if sentBy[2] == '<xxxxx@gmail.com>':
if email_message.is_multipart():
for payload in email_message.get_payload():
message = payload.get_payload()
for emailFound in emails:
if emailFound in message:
print(emailFound)

除了永远打印消息中找到的电子邮件,直到电子邮件被删除或程序停止并且尚未完成之外,它的效果很好。

最佳答案

将您的搜索更改为仅查找未见过的电子邮件。一旦您检索 RFC822 正文(假设非窥视),就会设置“已见”标志,因此,如果您的搜索仅查找“未见”,那么您只会看到每条消息一次。

关于python - 是否有一个功能只能让该电子邮件监视器读取一次电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55307633/

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