谷歌插件开发中使用GmailApp发信能否修改发件人邮箱及替代方案
需求可实现性说明
你提出的修改发件人为指定公司邮箱的需求完全可以通过原生GmailApp实现,无需额外替换方案。
具体实现步骤
- 先完成发件人邮箱绑定
登录当前运行脚本的谷歌账号,打开Gmail设置页,进入「账户和导入」标签,在「发送邮件为」板块点击「添加其他电子邮件地址」,按照引导完成companyemail@gmail.com的所有权验证,验证通过后该邮箱即可作为当前账号的发件人使用。
注意:GmailApp.sendEmail的from参数仅支持填写当前账号已经验证通过的可发送邮件地址,未验证的邮箱调用时会抛出权限错误 - 修改现有代码
你只需要把注释的发件人变量启用,添加到sendEmail的options参数中即可,修改后代码如下:
function sendEmail(e){ var email = HtmlService.createTemplateFromFile("email.html"); var htmlText = email.evaluate().getContent(); Logger.log(htmlText); var emailTo = e.response.getRespondentEmail(); var emailFrom = 'companyemail@gmail.com' var subject = "Lorem ipsum dolor sit amet" var textBody = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."; var options = { htmlBody: htmlText, from: emailFrom }; if(emailTo !== undefined){ GmailApp.sendEmail(emailTo, subject, textBody, options); } }
- 谷歌插件上线适配注意事项
- 需要在插件的
appsscript.json配置文件中声明对应的Gmail发信权限,确保用户安装插件时可以正常授权 - 如果是面向企业用户的谷歌工作区插件,推荐使用服务账号配置全域委托授权,无需每个用户单独绑定发件人别名,发件规则更可控
无法使用GmailApp/MailApp时的替代方案
如果因权限限制无法使用原生发信服务,可选择以下方案:
- 调用第三方邮件服务商API:绑定
companyemail@gmail.com为第三方邮件服务的验证发件人,在脚本中通过UrlFetchApp调用对应服务商的发信接口完成邮件发送,不依赖执行者的Gmail权限 - 谷歌工作区Admin SDK发信:如果你的团队使用谷歌工作区企业版,可通过Admin SDK申请全局发信权限,统一使用公司指定邮箱作为发件人,适合内部使用的插件场景
内容的提问来源于stack exchange,提问作者Roberto Flores
相关产品推荐
相关产品推荐

