我想编写一个python模块,将数据发送到G-mail帐户中的草稿邮件。大约两周前我写了一个脚本,完全使用imaplib。我的模块的简化示例如下。 (我为任何人创建了一个测试电子邮件地址,以测试此脚本。)
import imaplib
import time
conn = imaplib.IMAP4_SSL('imap.gmail.com', port = 993)
conn.login('testpythoncreatedraft@gmail.com', '123456aaa')
conn.select('[Gmail]/Drafts')
conn.append("[Gmail]/Drafts", '', imaplib.Time2Internaldate(time.time()), "TEST")
它使用了.append函数,但今天当我运行模块时它会产生以下错误:
Traceback (most recent call last):
File "C:/Windows/System32/email_append_test.py", line 6, in <module>
conn.append("[Gmail]/Drafts", '', imaplib.Time2Internaldate(time.time()), "TEST")
File "C:\Python26\lib\imaplib.py", line 317, in append
return self._simple_command(name, mailbox, flags, date_time)
File "C:\Python26\lib\imaplib.py", line 1060, in _simple_command
return self._command_complete(name, self._command(name, *args))
File "C:\Python26\lib\imaplib.py", line 895, in _command_complete
raise self.error('%s command error: %s %s' % (name, typ, data))
imaplib.error: APPEND command error: BAD ['Invalid Command']
正如我之前所说,这个模块以前工作过。它成功地在其正文中创建了带有字符串“Test”的草稿消息。由于此脚本曾经起作用,因此它似乎更可能与Google对G-mail帐户IMAP功能所做的更改有关,但错误似乎表明APPEND命令中存在错误。我已经在两台不同的计算机上测试了python脚本,看看我的库文件是否已损坏,但仍然存在相同的错误。
另外,我使用的是Python 2.6。任何帮助表示赞赏。
答案 0 :(得分:6)
在conn.append
之前,添加以下内容:
import email
然后将conn.append
行更改为:
conn.append("[Gmail]/Drafts",
'',
imaplib.Time2Internaldate(time.time()),
str(email.message_from_string('TEST')))