python3imaplib.fetchtypeerror:can';t concat字节到int

python3imaplib.fetchtypeerror:can';t concat字节到int,python,imap,Python,Imap,我有一些获取IMAP电子邮件的代码,在Python2中运行得非常好。在Python3中,我得到以下错误: 回溯(最近一次呼叫最后一次): 文件“/mail.py”,第295行,在 项目=返回消息(x) 文件“/mail.py”,第122行,返回消息 结果,data=mail.fetch(message_id,“(RFC822)”) 文件“/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/imaplib.py”,第460

我有一些获取IMAP电子邮件的代码,在Python2中运行得非常好。在Python3中,我得到以下错误:

回溯(最近一次呼叫最后一次):
文件“/mail.py”,第295行,在
项目=返回消息(x)
文件“/mail.py”,第122行,返回消息
结果,data=mail.fetch(message_id,“(RFC822)”)
文件“/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/imaplib.py”,第460行,在fetch
典型,dat=self.\u简单\u命令(名称、消息集、消息部分)
文件“/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/imaplib.py”,第1113行,在\u simple\u命令中
返回self.\u命令\u完成(名称,self.\u命令(名称,*args))
文件“/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/imaplib.py”,第883行,在命令中
数据=数据+b''+arg
TypeError:无法将字节转换为int

返回消息函数中的代码:

result, data = mail.fetch(message_id, "(RFC822)")
raw_email = data[0][1]
email_message = email.message_from_string(raw_email)
运行时信息:

3.3.0(v3.3.0:bd8afb90ebf2,2012年9月29日,01:25:11)
[GCC 4.2.1(Apple Inc.build 5666)(dot 3)]


message\u set
是一个字符串,而不是整数。来自:

下面命令的
message\u set
选项是一个字符串,用于指定要处理的一条或多条消息。它可以是一个简单的消息编号(
'1'
),一个消息编号范围(
'2:4'
),或一组由逗号分隔的非连续范围(
'1:3,6:9'
)。一个范围可以包含一个星号来表示无限上限(
'3:'

直接将其转换为字符串就足够了:

result, data = mail.fetch(str(message_id), "(RFC822)")

对消息id通过x=(int(len(id_list))-int(indexCounter))来实现。然而,我现在又犯了一个错误,我应该把它贴在那里还是创建一个新的问题?让我们把它作为一个新的帖子,这毕竟是一个新问题。