以编程方式将草稿保存在Gmail草稿文件夹中

时间:2011-03-18 16:37:05

标签: java python api gmail

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

2 个答案:

答案 0 :(得分:9)

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

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

获得令牌和秘密后,将其复制到下面的Python脚本中。它使用xoauth.py对IMAP客户端进行身份验证,连接到IMAP,构建邮件并将其放入“草稿”文件夹。

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()

答案 1 :(得分:1)

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

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

更复杂但可行的方法是使用selenium / webdriver。你几乎可以自动化任何东西。