从电子邮件转换字符串

Converting string from email

我正在尝试编写一个程序来扫描我的电子邮件收件箱,并在电子邮件中的第一个单词是“密码”时采取进一步的操作。但是,我的特定条件 if message_str[:9].lower() == 'password': 始终默认为 false,即使被比较的字符串显然是 'password',正如我通过打印语句测试的那样。为什么会这样?

代码:

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

'password' 有 8 个字母而不是 9 个字母,所以你需要使用 message_str[:8].lower()