我正在尝试使用复制命令复制邮件。
imapper.copy(email.uid, 'TEST')
email.uid =本案例中的uid 1069
TEST =邮件应该在的地图
这是我的复制功能:
def copy(self, uid, to):
#typ, content = self._mailer.copy(bytes(uid), to)
print (uid)
typ, content = self._mailer.uid('copy', bytes(1069), 'TEST')
if typ == 'OK':
mail = _parse_email(content, include_raw=include_raw)
return mail
else:
raise Exception("Could not copy email.")
由于我遇到这个错误,我决定不使用变量并对其进行硬编码直到它起作用,而不是用变量替换它。
typ, content = self._mailer.uid('copy', bytes(1069), 'TEST')
这将返回错误:
UID命令错误:BAD [b'无法解析命令']
我添加了字节(),否则我收到此错误:
TypeError:无法将int连接到字节
答案 0 :(得分:1)
需要一个字符串。使用str(1069)或'1069',而不是整数。虽然它们是数字,但协议将它们视为字符串,而不是数字。
python中的 bytes(1069)
创建一个1069个零的字节数组,因此你发送了一堆空值。
答案 1 :(得分:0)
好的,这是我的解决方案:
我已将字节UID添加到邮件对象,并更改了复制功能以使用此字节uid。这解决了所有问题
我还用我的实现
创建了一个easyimap包装器的分支所以使用新功能将邮件复制到另一个邮箱