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

使用Javascript发送邮件时自定义函数变量不识别该如何解决

问题原因

  • 查询参数分隔符错误:mailto协议的邮箱地址和第一个查询参数之间需要用?拼接,不同参数之间才用&拼接,你的代码直接用&拼接subject参数,导致整个参数结构失效,浏览器无法识别对应字段。
  • 函数语法不完整:你提供的改造代码缺少末尾的闭合花括号},会触发基础语法错误。
  • 参数顺序不规范:JS规定无默认值的参数必须放在带默认值参数的前面,你将无默认值的body放在两个带默认值的参数中间,调用时容易出现参数匹配错乱。

修正后代码

// 调整参数顺序,无默认值的body放在最前,带默认值的参数放末尾
function sendMail(body, subject = "test", mail = "test@gmail.com") {
  var link = `mailto:${mail}`
           // 第一个参数用?开头
           + "?subject=" + encodeURIComponent(subject)
           + "&body=" + encodeURIComponent(body)
  ;
  window.location.href = link;
}

调用示例

// 传body、自定义subject、自定义收件邮箱
sendMail("这是邮件正文", "这是自定义标题", "target@example.com");
// 只传body,用默认的subject和收件邮箱
sendMail("这是默认配置下的邮件正文");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:57:01