首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gmail Api创建回复草稿

Gmail Api创建回复草稿
EN

Stack Overflow用户
提问于 2017-09-12 07:30:50
回答 1查看 2.1K关注 0票数 4

我正在使用googles API文档中的创建草稿函数:

https://developers.google.com/gmail/api/v1/reference/users/drafts/create

每当我发送消息时,当我进入gmail时,我会在我的电子邮件消息文本中看到以下内容:

代码语言:javascript
复制
hello world
Date: Mon, 11 Sep 2017 15:31:19 +0200
Message-Id: <CAKPeGO69TbbigNFrK8T37fYgPzCfZwVf=p0gkvJbZF6duwWsdw@mail.gmail.com>
From: myemailaddress@gmail.com

我不知道为什么我会收到这么多短信。

我想要做的是创建一个对现有电子邮件的回复草稿,但我所得到的似乎是一个新的草案,上面的文本(no to/from/subject字段被填充)。

下面是我使用的函数:

代码语言:javascript
复制
import base64
from email.mime.audio import MIMEAudio
from email.mime.base import MIMEBase
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import mimetypes
import os

def CreateDraft(service, user_id, message_body):
   """Create and insert a draft email. Print the returned draft's message and id.

  Args:
    service: Authorized Gmail API service instance.
    user_id: User's email address. The special value "me"
    can be used to indicate the authenticated user.
    message_body: The body of the email message, including headers.

  Returns:
    Draft object, including draft id and message meta data.
  """
    try:


        draft = service.users().drafts().create(userId=user_id, body=message_body).execute()

        print('Draft id: %s\nDraft message: %s' % (draft['id'], draft['message']))

        return draft

    except errors.HttpError as error:
        print('An error occurred: %s' % error)
        return None

我是这样称呼它的:

代码语言:javascript
复制
 gdraft.CreateDraft(service, user_id='me', message_body=
    {
        'message':
            {'raw': 'aGVsbG8gd29ybGQ=',
             'threadId': '15e5bdc650b1a068',
             'payload': {
                 "mimeType": "multipart/alternative",
                 "headers": [
                     {
                         "name": "In-Reply-To",
                         "value": "<16DCF6644C054E39B1F7F901BDD08EA2@466209web4@mail.gmail.com>"
                     },
                     {
                         "name": "References",
                         "value": '<16DCF6644C054E39B1F7F901BDD08EA2@466209web4@mail.gmail.com>'
                     },
                     {
                         "name": "Message-ID",
                         "value": "<16DCF6644C054E39B1F7F901BDD08EA2@466209web4@mail.gmail.com"
                     },
                     {
                         "name": "Subject",
                         "value": "Re: Software Developer - Hertford"
                     }
                 ]
             }
             }
    })

我已经尝试了四天,但没有成功,所以我真的很感激你的帮助。

更新:

因此,我似乎需要使用createmessage函数(基于下面的注释);但是,这在Python3中似乎不起作用。

我改变了:

代码语言:javascript
复制
return {'raw': base64.urlsafe_b64encode(message.as_string())}

至:

代码语言:javascript
复制
 return {'raw': str(base64.urlsafe_b64encode(message.as_string().encode("utf-8")))}

为了让它发挥作用,但我发现了一些错误:

代码语言:javascript
复制
An error occurred: <HttpError 400 when requesting https://www.googleapis.com/gmail/v1/users/me/drafts?alt=json returned "Missing draft message">
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-13 14:40:53

谢谢大家的评论。你在不同的问题上都很好。

问题是,我使用的示例与Docs页面上的示例略有不同。

我发现这里的代码有效:https://developers.google.com/gmail/api/guides/drafts

它可以这样使用:

代码语言:javascript
复制
msg = create_message('YOU@gmail.com','THEM@company.com','Re: Some Subject','This is a test')

create_draft(service,'me',  msg)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46170469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档