我正在尝试仅搜索来自特定电子邮件地址的未读电子邮件。当我在测试环境中运行此代码时,一切运行正常。当我将其移至生产电子邮件并更改变量以使其匹配时,我收到的是随机电子邮件。电子邮件不是未读电子邮件,也不来自我指定的电子邮件地址。我该搜索字符串的格式错误吗?
我已经验证了电子邮件地址正确无误。我可以登录并从搜索字符串中获取电子邮件。我取回的原始星标为“已加星标”,但是我从电子邮件中删除了所有星标,但仍然没有结果。
def get_emails(self):
mail = imaplib.IMAP4_SSL("imap.gmail.com")
mail.login(self.email_user,self.email_password)
mail.select("Inbox")
try:
# Search for emails that are unread from the sender email address passed in
status, emails_from_vendor = mail.search(None, ('UNSEEN FROM "{}"'.format(self.vendor_email_address)))
if status != "OK":
raise
# Break if there are no unread emails in the inbox.
if len(emails_from_vendor[0]) == 0:
raise
most_recent_email = emails_from_vendor[0][-1]
status2, email_data = mail.fetch(most_recent_email, "(RFC822)")
if status2 != "OK":
raise
raw_email = email_data[0][1].decode("utf-8")
print(raw_email)
raw_message_from_string = email.message_from_string(raw_email)
rvf = self.get_attachments(raw_message_from_string)
return rvf
except:
sys.exit("Could not retrieve emails.")
mail.logout()
我希望从我在课程中指定的供应商电子邮件地址接收未读的电子邮件。我既没有收到未读的电子邮件,也没有收到来自我正在搜索的电子邮件地址的电子邮件。