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

如何用JavaScript/jQuery将邮箱数组写入a href标签唤起默认邮箱发信

你遇到的问题核心是没有遵循mailto协议的链接格式要求,直接赋值数组肯定无法被识别为邮箱唤起链接,按以下步骤修改即可:

核心格式规则

唤起邮箱客户端的链接必须以mailto:为前缀,多个收件人地址之间用英文分号;分隔,Outlook完全兼容该标准格式。

修正后的完整代码

1. 邮箱选择部分(可额外加去重逻辑避免重复添加同一邮箱)

<td class="virtualTd" onclick="putThis(this)">{{ client.email }}</td>

<script>
const emails_list = []
function putThis(control) {
  const email = control.innerText.trim();
  // 可选去重逻辑,避免重复添加同一个邮箱
  if (!emails_list.includes(email)) {
    emails_list.push(email);
  }
}
</script>

2. 唤起邮箱按钮部分

<a href="#" id="sendEmail" class="btn btn-primary" onclick="popEmail()"> Email Client </a>

<script>     
function popEmail() {
  // 存储到localStorage的逻辑保留
  const jsonArr = JSON.stringify(emails_list);
  localStorage.setItem("array", jsonArr);
  const parsedArr = JSON.parse(localStorage.getItem("array"));
  
  const a = document.getElementById('sendEmail');
  if (parsedArr.length === 0) {
    alert('请先选择需要发送的邮箱');
    return;
  }
  // 核心修改:用分号拼接所有邮箱,加上mailto前缀
  a.href = `mailto:${parsedArr.join(';')}`;

  // 可选扩展:默认填充主题、正文,需对内容做URL编码
  // const subject = encodeURIComponent('默认邮件主题');
  // const body = encodeURIComponent('默认邮件正文内容');
  // a.href = `mailto:${parsedArr.join(';')}?subject=${subject}&body=${body}`;
}
</script>

注意事项

  • 拼接后的链接格式为mailto:aaa@xx.com;bbb@xx.com;ccc@xx.com,所有主流邮箱客户端包括Outlook都可以直接识别,不会被Django判定为普通URL
  • 如果邮箱地址包含特殊字符,建议使用encodeURIComponent对每个邮箱地址单独编码后再拼接

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 15:06:04