使用imaplib发出问题并使用标志附加消息

时间:2015-01-23 17:03:45

标签: python imap imaplib

这个库的新问题是每天每天都让我感到困惑......

我希望从auth host1检索消息,并将它们附加到带有所有标志的auth host2。

所以:

flags = authconnection.fetch(idOne, '(FLAGS)')[1]
flags = ParseFlags(flags[0])
authconnection1.append(folder, flags, date, msg[1][0][1])

当我仅使用一个标志获取消息时,它工作正常,但是当我尝试附加带有两个或更多标志的消息(按照请求列在元组中)时,我收到了此错误。

TypeError: not all arguments converted during string formatting

示例代码: WITH ERROR

connection1.append('INBOX', ('\SEEN', '\Answered'), date, msg[1][0][1])

示例代码没有错误且工作正常

connection1.append('INBOX', ('\SEEN',), date, msg[1][0][1])
('OK', ['[APPENDUID 1 3052] APPEND completed'])

有什么想法吗?

由于

分辨

你必须写一个函数来解析后面的标志     flags = ParseFlags(flags [0]) 因为这个函数返回一个元组,但在append命令中你必须传递一个字符串

current = ""
if flags != ():
    for flag in flags:
        current = current + ' ' + flag
        current = current.strip()
if current == "":
    return None
else:
    return current

1 个答案:

答案 0 :(得分:0)

你必须编写一个函数来解析flags = ParseFlags(flags[0])之后的标志,因为这个函数返回一个元组,但是在append命令中你必须传递一个字符串

current = ""
if flags != ():
    for flag in flags:
        current = current + ' ' + flag
        current = current.strip()
if current == "":
    return None
else:
    return current