如何在Apps Script实现的邮件合并功能中使用自有域名邮箱作为发件人
Apps Script邮件合并自定义绑定域名发件人配置方案
核心实现逻辑
你已经跑通的邮件合并全流程不需要做任何大幅调整。Google Apps Script 的 GmailApp.sendEmail 方法原生支持指定已在Gmail账号中完成验证绑定的发件地址,仅需在发件的高级配置项中新增对应参数,就能直接替换默认的Gmail原地址为你的自定义域名邮箱。
代码修改步骤
- 直接定位到现有代码里调用
GmailApp.sendEmail的代码块 - 找到传入的配置对象(也就是现在写了
name和htmlBody的那个大括号块) - 新增一行
from配置项,值替换为你实际要使用的自有域名发件邮箱即可 - 这里有个硬性前提:目标发件地址必须已经在Gmail「设置-账号和导入-发送邮件为」列表里完成所有权验证,没验证的地址就算写进参数也没法正常发信
修改后的完整可运行代码
var first = 0; var last = 1; var email = 2; var emailTemp = HtmlService.createTemplateFromFile("email"); var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("NAJ"); var data = ws.getRange("A2:C" + ws.getLastRow()).getValues(); data.forEach(function(row){ emailTemp.fn = row[first]; emailTemp.ln = row[last]; var htmlMessage = emailTemp.evaluate().getContent(); GmailApp.sendEmail(row[email], "Important Test", "Your email does not support HTML.", { name: "Email App", htmlBody: htmlMessage, from: "xyz@domainname.com" // 新增的自定义发件人配置 } ); }); }
常见问题说明
- 如果改完跑脚本直接报
From address is not valid for the user的错,不用怀疑代码逻辑,就是目标发件地址的发送权限没在Gmail后台验证通过,回去走完验证流程就能正常用 - 后续要切换不同的绑定域名发件地址,只需要修改
from后面的邮箱字符串就行,其他逻辑不用动 - 这个改动完全不会影响你现有表格的列读取、邮件模板渲染、遍历发件的逻辑,之前跑通的所有功能都保持原样
内容的提问来源于stack exchange,提问作者Ali Ahmed
相关产品推荐
相关产品推荐

