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

Google Sheets读取下拉菜单选中邮箱调用MailApp发邮件失败

问题根因
  • 下拉菜单的数据验证规则完全不影响getValue()的取值结果,你之前注释的把C15值写入J37的测试代码放开执行就能验证:C15的邮箱值可以被正常读取,故障和下拉菜单本身无关。
  • 你之前测试C14普通单元格的邮箱能收到抄送,只是因为刚好把mail变量赋值给了合法的cc配置项,C15、C16的邮箱发送失败核心是MailApp.sendEmail()的参数写法错误:
    1. sendEmail的配置对象仅识别官方规定的字段名,你写的cc:mail, ccA, ccB属于无效写法,ccA、ccB是自定义变量,根本不是合法的配置参数,所以C15、C16读出来的邮箱地址压根没有被传入抄送人字段。
    2. cc字段仅支持两种传值格式:逗号分隔的邮箱字符串,或者由多个邮箱字符串组成的一维数组,你把单个邮箱包成独立数组的写法完全多余。
修正后可运行代码
function sendEmail() {
  const sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Porudžbenica')
  const kupac = sh.getRange('C5').getValue();
  const mail = sh.getRange('C14').getValue();
  const cc1 = sh.getRange("C15").getValue();
  const cc2 = sh.getRange("C16").getValue();

  // 拼接所有抄送邮箱,自动过滤空单元格避免报错
  const ccRecipients = [mail, cc1, cc2]
    .filter(email => typeof email === 'string' && email.trim() !== '')
    .join(',');

  MailApp.sendEmail({
    to: 'example@email.com',
    cc: ccRecipients,
    subject: 'Porudžbina ' + kupac, 
    htmlBody: testTableHTML()
  })
};
排查验证方法

如果仍然怀疑下拉单元格取值异常,可以在取值逻辑后加一行console.log(sh.getRange("C15").getValue()),执行后在Apps Script的执行日志里就能看到C15的实际读取值,和普通单元格的读取结果没有任何区别。

内容的提问来源于stack exchange,提问作者Nexpreet

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 10:24:16