【问题标题】:Creating a Draft message in Gmail using the imaplib in Python使用 Python 中的 imaplib 在 Gmail 中创建草稿邮件
【发布时间】:2011-11-23 01:33:16
【问题描述】:

我想编写一个 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。任何帮助表示赞赏。

【问题讨论】:

    标签: python imaplib gmail-imap


    【解决方案1】:

    conn.append 之前,添加以下内容:

    import email
    

    然后将conn.append这一行改为:

    conn.append("[Gmail]/Drafts",
                '',
                imaplib.Time2Internaldate(time.time()),
                str(email.message_from_string('TEST')))
    

    【讨论】:

    猜你喜欢
    • 2022-07-26
    • 2016-09-27
    • 2016-01-12
    • 2018-04-19
    • 2022-08-16
    • 2021-04-27
    • 2023-03-20
    • 2010-11-15
    • 2018-02-20
    相关资源
    最近更新 更多