You need to enable JavaScript to run this app. 如何将HTML输入框值填充SMTP.js发送的邮件Body字段
优惠活动
大模型
产品
解决方案
定价
更多

如何将HTML输入框值填充SMTP.js发送的邮件Body字段

实现方案

核心实现思路

无需新增额外依赖,在邮件发送函数执行时,直接读取两个文本输入框的实时输入值,按照指定的正文格式拼接完成后,赋值给Email.send配置项的Body字段即可。

具体操作步骤

  • 按输入框的name属性读取实时值:因为两个输入框已经分别设置了name="fname"、name="lname",不需要额外绑定id,直接通过DOM选择器获取元素、读取value属性就能拿到用户输入的内容,加trim()可以自动去掉输入内容前后的冗余空格:
    • 读取fname输入值:document.getElementsByName('fname')[0].value.trim()
    • 读取lname输入值:document.getElementsByName('lname')[0].value.trim()
  • 用模板字符串拼接目标格式的正文:将两个读到的值代入指定文案,直接替换原代码中为空的Body字段。

修改后的完整代码

<!DOCTYPE html> 
<html> 
  <head> 
    <title>Sending Mail</title> 
    <script src="https://smtpjs.com/v3/smtp.js"></script> 
    <script type="text/javascript"> 
        function sendEmail() { 
            // 读取两个输入框的实时输入值
            const fnameVal = document.getElementsByName('fname')[0].value.trim();
            const lnameVal = document.getElementsByName('lname')[0].value.trim();
            Email.send({ 
                Host: "smtp.gmail.com", 
                Username: "", 
                Password: "", 
                To: '', 
                From: "", 
                Subject: "", 
                // 按要求拼接正文内容
                Body: `Hey, my name is ${fnameVal} ${lnameVal}`,
            }) 
            .then(function (message) { 
                alert("Mail has been sent successfully") 
            }); 
        } 
    </script> 
  </head> 

  <body> 
    <form method="post"> 
     <input type="text"  name="fname">  
     <input type="text"  name="lname">
        <input type="button" value="Send Mail"
            onclick="sendEmail()" /> 
    </form> 
  </body> 
</html>

注意事项

  • 代码中Host、Username、Password、To、From、Subject等配置项,需要替换为你自己的SMTP服务账号信息、真实收件人/发件人地址、自定义邮件主题后,才能正常发送邮件。
  • 因为发送按钮是type="button",不会触发默认的表单提交跳转,不需要额外添加阻止表单默认行为的代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.31 19:15:02