You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 03:17:06