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

如何用Nodemailer实现网站联系表单的客户自动回复功能?

实现Nodemailer自动发送客户回复邮件

嘿,这个需求其实很简单,你只需要在现有发送表单内容到你邮箱的逻辑之后,新增一段发送回复邮件给客户的代码就行。核心就是创建第二个邮件配置对象,指定收件人为客户填写的邮箱,内容设置成你想要的感谢语。

我把你的代码修改并补全了,直接替换原来的router.post('/contact/send'...)部分就行:

router.post('/contact/send', async function(req, res) {
  // 初始化邮件传输器(和你原来的配置一致)
  var transporter = nodeMailer.createTransport({
    service: 'Gmail',
    auth: {
      user: process.env.GMAIL_USER,
      pass: process.env.GMAIL_PASS
    }
  });

  // 1. 发送客户留言到你的邮箱(保留你原来的核心逻辑,补全了邮件内容)
  const adminMailOptions = {
    from: `${req.body.name} <${req.body.email}>`, // 显示发件人为客户的姓名+邮箱,方便你直接回复
    to: process.env.GMAIL_USER, // 你的目标邮箱
    subject: `新留言:来自 ${req.body.name}`,
    text: `客户姓名:${req.body.name}\n客户邮箱:${req.body.email}\n留言内容:\n${req.body.message}`,
    html: `<p><strong>客户姓名:</strong>${req.body.name}</p>
           <p><strong>客户邮箱:</strong>${req.body.email}</p>
           <p><strong>留言内容:</strong></p>
           <p>${req.body.message}</p>`
  };

  // 2. 发送自动回复给客户的邮件配置
  const replyMailOptions = {
    from: `你的网站名称 <${process.env.GMAIL_USER}>`, // 用你的邮箱作为发件人,避免被当作垃圾邮件
    to: req.body.email, // 客户填写的邮箱地址,从表单请求中获取
    subject: '感谢你的留言!',
    text: '感谢您的留言,我会尽快回复',
    html: '<p>感谢您的留言,我会尽快回复</p>'
  };

  try {
    // 先发送给你自己的邮件,再发送客户回复
    await transporter.sendMail(adminMailOptions);
    await transporter.sendMail(replyMailOptions);
    // 发送成功后,跳转到联系页并带上成功标识,方便前端提示用户
    res.redirect('/contact?success=true');
  } catch (error) {
    // 捕获发送失败的错误,打印日志方便排查
    console.error('邮件发送失败:', error);
    // 跳转回联系页并带上错误标识
    res.redirect('/contact?error=true');
  }
});

几个关键注意点:

  • 我用了async/await来处理异步的邮件发送逻辑,比嵌套回调更清晰易读,Node.js 8及以上版本都支持这个特性
  • 回复邮件的from字段一定要用你自己的邮箱(也就是process.env.GMAIL_USER),如果用客户的邮箱作为发件人,很大概率会被邮箱服务商判定为垃圾邮件
  • 要确保你的表单里有让客户填写邮箱的字段,并且后端能通过req.body.email正确获取到这个值
  • 如果你的Gmail账号开启了两步验证,记得要用App Password代替普通密码,否则会验证失败;如果没开两步验证,需要在Gmail设置里开启“低安全性应用访问”(更推荐用App Password)
  • 你可以自定义回复邮件的HTML内容,比如加上你的网站logo、联系方式,或者更详细的提示语

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:10:06