python - 从电子邮件转换字符串
问题描述
我正在尝试编写一个程序,如果电子邮件中的第一个单词是“密码”,它将扫描我的电子邮件收件箱并采取进一步的行动。但是,我的特定条件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
解决方案
'password' 有 8 个而不是 9 个字母,所以你需要使用message_str[:8].lower()
推荐阅读
- neo4j - Neo4j/Cypher 可选择根据 JSON 对象是否为空来创建节点和关系
- reactjs - 依赖没有重命名
- wordpress - 隐藏使用 Innozilla Per Product Shipping WooCommerce 插件的运输方式
- node.js - 使用 Docker 进行 RabbitMQ 内存管理
- pandas - 如何有效地对系列中的每小时平均值进行上采样?
- database - 如何根据不断变化的数据库扩展 AI 助手
- python - 使用 Python 脚本在 SQL 查询中查找所有表
- ruby-on-rails - `Pluck` 但对于单个检索记录?
- flutter - Dart:如何去抖动流中的事件子集?
- c# - 为什么我的 document.Add(paragraph) 不起作用(wpf、iText)?