python imaplib UID命令错误:BAD [b'无法解析命令']

时间:2018-04-11 19:45:25

标签: python imaplib

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

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连接到字节

2 个答案:

答案 0 :(得分:1)

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

python中的

bytes(1069)创建一个1069个零的字节数组,因此你发送了一堆空值。

答案 1 :(得分:0)

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

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

我还用我的实现

创建了一个easyimap包装器的分支

所以使用新功能将邮件复制到另一个邮箱

open command