【发布时间】:2021-05-31 21:20:30
【问题描述】:
我正在尝试编写一个程序,如果电子邮件中的第一个单词是“密码”,它将扫描我的电子邮件收件箱并采取进一步措施。但是,我的特定条件if message_str[:9].lower() == 'password': 始终默认为 false,即使正在比较的字符串显然是“密码”,因为我已经通过打印语句进行了测试。为什么会这样?
代码:
import imapclient, pyzmail, time, sys
while True:
imapObj = imapclient.IMAPClient('imap.gmail.com', ssl=True)
imapObj.login('xxxxxxxx@gmail.com', sys.argv[1])
imapObj.select_folder('INBOX', readonly=False)
UIDs = imapObj.search(['SINCE', '01-Mar-2021', 'FROM', 'xxxxxxxx@gmail.com'])
rawMessages = imapObj.fetch(UIDs, ['BODY[]'])
for i in UIDs:
message = pyzmail.PyzMessage.factory(rawMessages[i][b'BODY[]'])
if message.text_part:
message_str = message.text_part.get_payload().decode(message.text_part.charset)
a = (repr(message_str))
if message_str[:9].lower() == 'password':
continue
【问题讨论】: