如何通过AppScript获取Gmail中当前打开邮件的ID?
如何通过AppScript获取Gmail中当前打开邮件的ID?
嘿,我之前刚好折腾过Gmail插件的类似需求,给你分享下亲测可行的解决办法!
当用户在Gmail中打开某封邮件时,你的Add-on可以通过触发函数的事件参数直接拿到当前邮件的ID,具体步骤如下:
1. 编写触发函数
创建一个专门处理邮件打开事件的函数,比如onGmailMessageOpen,通过事件对象e就能获取到当前邮件的ID:
function onGmailMessageOpen(e) { // 从事件参数中提取当前邮件的ID const currentMessageId = e.gmail.messageId; if (!currentMessageId) { console.log("哎呀,没拿到当前邮件的ID,可能是触发场景不对哦"); return; } // 有了ID之后,就能拿到完整的邮件对象啦 const targetMessage = GmailApp.getMessageById(currentMessageId); // 举个例子:提取邮件的主题、发件人信息 const emailSubject = targetMessage.getSubject(); const emailSender = targetMessage.getFrom(); console.log(`当前打开的邮件主题:${emailSubject}`); console.log(`发件人:${emailSender}`); // 这里就可以加你自己的业务逻辑啦,比如提取邮件正文、附件信息等等 }
2. 配置插件的触发权限
你需要在插件的配置文件(appsscript.json)里声明必要的权限,以及指定触发事件。打开脚本编辑器的“查看”菜单,选择“显示manifest文件”,然后添加以下配置:
{ "oauthScopes": [ "https://www.googleapis.com/auth/gmail.addons.execute", "https://www.googleapis.com/auth/gmail.readonly" ], "gmail": { "name": "你的插件名称", "contextualTriggers": [ { "unconditional": {}, "onTriggerFunction": "onGmailMessageOpen" } ] } }
3. 注意事项
- 不要在脚本编辑器里直接运行这个函数哦!因为直接运行时没有事件参数
e,会报错。你需要把插件部署成测试版本,然后在Gmail里打开一封邮件来测试。 - 确保你的账号已经授权插件访问Gmail的权限,第一次使用时会弹出授权提示。
如果还有细节搞不定的话,随时留言问我哈!
备注:内容来源于stack exchange,提问作者Dilip
相关产品推荐
相关产品推荐

