以下是示例代码
GmailApp.sendEmail("email@example.com", "mail subject", "mail body");
通话结束后,我可以在我的Gmail帐户中看到已发送的邮件,其中包含147f7e77a4efed11
这样的ID我想通过上述代码检索已发送邮件的此ID
sendEmail方法返回GmailApp
的实例,这对链接操作很有用,但无法获取已发送电子邮件的ID。
我现在正在做的是执行搜索并获取第一条消息。但我相信这不是一种可靠的方式。
例如
var message = GmailApp.search("to:email@example.com", 0, 1)[0].getMessages()[0];
现在我可以获取消息的ID并执行所需的操作。
是否可以在没有不可靠搜索的情况下检索邮件或邮件ID?
答案 0 :(得分:2)
在构建服务之后,您可以使用messages.list
,然后像在GMail中搜索一样过滤它们,您也可以使用labels来获取已发送的邮件等。
messages = gmail_service.users().messages().list(userId='me', q="subject:mail subject deliveredto:email@example.com", maxResults=1).execute()
if messages['messages']:
for message in messages['messages']:
print 'message ID: %s' % (message['id'])
如果你通过你正在搜索的电子邮件和其他“独特”引用作为Python函数中的参数,它也会使它更具通用性。
编辑:在与您交谈后,我认为为每封发送的电子邮件创建自己的个人ID /参考将是最谨慎的检索方法。我建议使用faker,他们有一个javascript版本,我使用faker来满足我的所有数据需求。有足够的文档,然后您可以根据您设置ID的方式过滤列表。
答案 1 :(得分:1)
你可以直接使用新的gmail api。您将需要手动oauth流来获取令牌,然后使用urlFetch进行呼叫。
https://developers.google.com/gmail/api/v1/reference/users/messages/send
它返回一个带有id的消息资源。也许可以用高级服务做到这一点,但我还没有尝试过。我已经用urlfetch完成了它并且工作正常。
答案 2 :(得分:1)
您可以在电子邮件中设置Message-Id标头吗? (不确定应用程序脚本是否允许或覆盖它。)如果是这样,我会以这种方式生成唯一的ID,您可以使用搜索" rfc822msgid查找它:"。