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

如何为sendmail创建或表单mailto触发的新邮件填充正文内容

方案1:直接提取表单内容填充邮件正文

这个方案无需操作本地文件,实现逻辑更简单,适配性更强,适合绝大多数场景。

  • 实现逻辑:监听表单提交事件,遍历所有表单字段将值拼接为格式化的正文内容,编码后拼接到mailto链接的body参数中,触发调用本地邮件客户端。
  • 完整代码示例:
<form id="myForm">
  <label>姓名:<input type="text" name="username" required></label><br>
  <label>联系邮箱:<input type="email" name="email" required></label><br>
  <label>反馈内容:<textarea name="content" rows="5" required></textarea></label><br>
  <button type="submit">提交并发送邮件</button>
</form>

<script>
document.getElementById('myForm').addEventListener('submit', function(e) {
  // 阻止表单默认提交行为
  e.preventDefault();
  // 拼接表单内容为正文
  let emailBody = "表单提交内容如下:\n\n";
  const formData = new FormData(this);
  for (let [key, value] of formData.entries()) {
    emailBody += `${key}:${value}\n`;
  }
  // 编码内容避免特殊字符出错
  const encodedBody = encodeURIComponent(emailBody);
  // 构造mailto链接,可自行补充收件人、主题参数
  const mailtoLink = `mailto:recipient@example.com?subject=表单提交反馈&body=${encodedBody}`;
  // 触发邮件客户端
  window.location.href = mailtoLink;
});
</script>

注意:你可以自行修改mailto链接里的收件人地址、邮件主题为你需要的内容


方案2:读取本地TXT文件内容填充邮件正文

如果需要读取本地已保存的1KB大小的TXT文件内容直接放到邮件正文,可以用文件选择器配合FileReaderAPI实现,无需上传文件到服务器,全程在本地完成操作。

  • 完整代码示例:
<form id="txtMailForm">
  <label>选择本地TXT文件:<input type="file" id="txtFile" accept=".txt" required></label><br>
  <button type="submit">读取文件并生成邮件</button>
</form>

<script>
document.getElementById('txtMailForm').addEventListener('submit', function(e) {
  e.preventDefault();
  const fileInput = document.getElementById('txtFile');
  const selectedFile = fileInput.files[0];
  // 校验是否为TXT文件
  if (selectedFile.type !== 'text/plain') {
    alert('请选择TXT格式的文件');
    return;
  }
  // 读取文件内容
  const reader = new FileReader();
  reader.onload = function(e) {
    const txtContent = e.target.result;
    const encodedBody = encodeURIComponent(txtContent);
    // 构造mailto链接
    const mailtoLink = `mailto:recipient@example.com?subject=TXT文件内容&body=${encodedBody}`;
    window.location.href = mailtoLink;
  };
  reader.readAsText(selectedFile, 'UTF-8');
});
</script>

补充说明

  • 两种方案都符合你要求的不添加附件、内容直接展示在邮件正文的需求
  • 主流邮件客户端对mailto链接的body参数长度支持普遍超过2KB,你需要填充的1KB内容完全可以正常适配
  • 必须确保设备已经关联了默认邮件客户端(如Outlook、系统自带邮件应用等),才能正常触发邮件生成

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 23:39:04