python imaplib UID命令错误:错误[b';无法分析命令';]

python imaplib UID命令错误:错误[b';无法分析命令';],python,imaplib,Python,Imaplib,我正在尝试使用copy命令复制邮件 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)

我正在尝试使用copy命令复制邮件

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命令错误:错误[b'无法分析命令']

我添加了bytes(),否则会出现以下错误:

TypeError:无法将int转换为字节


好的,这就是我的解决方案:

我已将字节UID添加到邮件对象,并将复制函数更改为使用此字节UID。这解决了所有问题

我还用我的实现做了一个EasyMap包装叉

因此,通过一项新功能,可以将邮件复制到另一个邮箱


它需要一个字符串。使用str(1069)或“1069”,而不是整数。虽然它们是数字,但协议将它们视为字符串,而不是数字


bytes(1069)
在python中创建了一个由1069个零组成的字节数组,因此您将发送一组空值。

这确实是答案。我也用这个答案更新了我的存储库,谢谢!