python - IMAPLIB“初始值必须是 str 或 none,而不是字节”错误
问题描述
所以我正在研究一个基本上在后台运行的脚本,并从收到的任何包含主题中特定单词的电子邮件和来自特定人的电子邮件中提取数据。但是,我无法让它在运行它时解析主题,因为它一直给我一个错误,上面写着“初始值必须是 str 或 none,而不是字节”,我不确定这意味着什么或如何修复它。这是我到目前为止所拥有的:
import email
import imaplib
from bs4 import BeautifulSoup
import time
import sys
username = 'asadrasdfasdi@asdfasdf.ca'
password = 'asdfasdfasasdf'
mail = imaplib.IMAP4_SSL('imap-mail.outlook.com')
(retcode, capabilities) = mail.login(username, password)
mail.list()
n=0
while True:
mail.select('inbox')
(retcode, messages) = mail.search(None, 'UNSEEN', '(SUBJECT "XXXXX-
")', '(FROM "XXX.XXX@XXX.ca")')
if retcode == 'OK':
for num in messages[0].split():
n=n+1
print('Processing Email ' + str(n) + ': ')
typ, data = mail.fetch(num, '(RFC822)')
for response_part in data:
if isinstance(response_part, tuple):
original = email.message_from_string(response_part[1])
print("Subject: " + original['Subject'])
typ, data = mail.store(num,'+FLAGS','\\Seen')
time.sleep(120)
解决方案
email.message_from_string(data[0][1].decode('utf-8'))
推荐阅读
- azure-devops - 将 Excel 连接到 Azure Devops 查询
- python - 如何使用 requests-html 获取网页上的所有链接
- c# - 如何在 C# 中正确使用绑定
- excel - 如何将单元格与一组单元格进行比较并获得相关值
- html - 在页面上移动了一个 div 项
- three.js - Three.js:渲染的节流/智能调用是否必要?
- python - Python 在关闭另一个窗口之前不会运行新窗口
- java - KeyAgreement.generateSecret() 中的本机方法错误
- java - Android监听器在活动中工作但不在片段中
- php - 如何使用 preg_replace 从这个字符串中删除最后一个特殊字符?