Google Apps Script MailApp修改发件人名称失败求助
问题:MailApp发送邮件时发件人名称不生效的解决办法
问题描述
我想修改发送邮件的发件人名称,代码如下:
var emailAddress = sheet.getRange("D").getValue(); var name = sheet.getRange("E").getValue(); var personalizedMessage = Utilities.formatString(message, name); if (emailAddress) { MailApp.sendEmail(emailAddress, subject, personalizedMessage, {name: "Orthoback"}); }
我认为这段代码符合Google官方文档的MailApp类示例:
MailApp.sendEmail('mike@example.com', 'Attachment example', 'Two files are attached.', { name: 'Automatic Emailer Script', attachments: [file.getAs(MimeType.PDF), blob] });
但发件人名称并未改变,仍然只显示发件邮箱地址,请问有什么解决办法?
解决办法
1. 检查邮箱账户的发送权限
- 免费Gmail账户:需要先在Gmail网页端「设置」→「账户和导入」→「发送邮件为」中添加你想要显示的发件人名称对应的别名,并完成验证,否则自定义名称不会生效。
- Google Workspace账户:联系管理员确认是否开启了自定义发件人名称的权限,部分企业账户会限制该功能。
2. 尝试对象式参数传递
把参数改成对象格式传递,避免位置参数可能引发的隐性问题:
if (emailAddress) { MailApp.sendEmail({ to: emailAddress, subject: subject, body: personalizedMessage, name: "Orthoback" }); }
3. 极简代码测试排除变量干扰
写一段无依赖的测试代码,直接测试发件人名称是否能生效:
function testCustomSenderName() { MailApp.sendEmail("你的测试邮箱@example.com", "测试自定义发件人", "这是测试邮件", {name: "Orthoback"}); }
如果这段代码能正常显示自定义名称,说明原代码中emailAddress、subject等变量可能存在未正确定义或取值异常的情况,需要排查变量赋值逻辑。
4. 切换到GmailApp尝试
若MailApp始终不生效,可以替换为GmailApp发送,它的参数逻辑一致,但部分场景下兼容性更好:
if (emailAddress) { GmailApp.sendEmail(emailAddress, subject, personalizedMessage, {name: "Orthoback"}); }
内容的提问来源于stack exchange,提问作者AoT_1503
相关产品推荐
相关产品推荐

