【问题标题】:Programmatically Save Draft in Gmail drafts folder以编程方式将草稿保存在 Gmail 草稿文件夹中
【发布时间】:2011-03-18 16:37:05
【问题描述】:

最好使用 Python 或 Java,我想撰写一封电子邮件并将其保存到 gmail 草稿中,而无需用户干预,

【问题讨论】:

  • 其他人正在研究这个,我也发现:libgmail.sourceforge.net 但我还没有测试过。
  • libgmail 使用机械化并且不起作用。最后一次提交是在 2009 年。

标签: java python api gmail


【解决方案1】:

这是一个用于访问 Gmail 帐户的 Python 脚本。首先,您需要生成一个 OAuth 令牌。下载Google's xoauth.py module 并运行它。它将引导您完成这些步骤。您将获得一个获取验证码的 url - 将其粘贴到脚本中,它会吐出您的令牌和密码:

% python xoauth.py --generate_oauth_token --user=youremail@gmail.com

获得令牌和机密后,将它们复制到下面的 Python 脚本中。它使用xoauth.py 来验证 IMAP 客户端,连接到 IMAP,构造一条消息并将其放入 Drafts 文件夹。

import email.message
import imaplib
import random
import time
import xoauth

MY_EMAIL = 'youremail@gmail.com'
MY_TOKEN = '<token>'
MY_SECRET = '<secret>'

# construct the oauth access token
nonce = str(random.randrange(2**64 - 1))
timestamp = str(int(time.time()))
consumer = xoauth.OAuthEntity('anonymous', 'anonymous')
access = xoauth.OAuthEntity(MY_TOKEN, MY_SECRET)
token = xoauth.GenerateXOauthString(
    consumer, access, MY_EMAIL, 'imap', MY_EMAIL, nonce, timestamp)

# connect to gmail's imap service.
imap = imaplib.IMAP4_SSL('imap.googlemail.com')
imap.debug = 4
imap.authenticate('XOAUTH', lambda x: token)

# create the message
msg = email.message.Message()
msg['Subject'] = 'subject of the message'
msg['From'] = MY_EMAIL
msg['To'] = MY_EMAIL
msg.set_payload('Body of the message')

# append the message to the drafts folder
now = imaplib.Time2Internaldate(time.time())
imap.append('[Gmail]/Drafts', '', now, str(msg))

imap.logout()

【讨论】:

  • 您可能还想查看 oauth2 module 以使用 oauth 进行身份验证。有了它,您只需执行imap.authenticate(url, consumer, token) 即可,无需担心使用xoauth
  • 感谢示例代码 samplebias,这正是我需要的,如果没问题,我可能会几乎完全复制它。 Acorn,感谢 oauth2 模块的建议,我会研究一下。
  • 是的,我想最好给你一些开箱即用的东西,这样你就可以取得进步,然后再对其进行微调。祝你好运!
  • 您好,谢谢您的回答。但我的问题更进一步。(stackoverflow.com/questions/24361257/…)。我想要的是在python中使用imaplib为草稿设置标签,你能给我答案吗? @samplebias
【解决方案2】:

今天第二个人问类似的问题, Using your GMail inbox space?

您可以尝试使用 python imap 客户端执行此操作:imaplib 快速 imaplib+python+gmail 返回:http://www.mattwarren.name/2008/08/2/python-imaplib-and-gmail/

一种更复杂但可行的方法是使用 selenium/webdriver。您几乎可以自动化任何事情。

【讨论】:

    猜你喜欢
    • 2017-09-28
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-14
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多