【问题标题】:How to define custom domain email in nodemailer?如何在 nodemailer 中定义自定义域电子邮件?
【发布时间】:2026-02-23 14:10:02
【问题描述】:

我正在尝试使用 Nodejs 包 Nodemailer 发送电子邮件,但我无法将电子邮件更改为我的自定义域电子邮件。任何帮助将不胜感激。 这是我用来发送电子邮件的代码。

transporter.sendMail({
   from: 'support@domain.com',
   to: 'recipient@example.com',
   subject: 'Message',
   text: 'I hope this message gets through!',
   auth: {
            user: 'zeshanvirk@gmail.com'
         }
});

【问题讨论】:

  • 根据文档 (nodemailer.com/message),您可以尝试使用“发件人”属性。另外,你能把你收到的邮件的标题内容贴出来吗?
  • 我使用了发件人属性,例如发件人:'support@domain.com',但我再次收到来自 zeshanvirk@gmail.com 的电子邮件,这是 Auth 中的用户。

标签: node.js nodemailer


【解决方案1】:

就像在nodemailer文档https://nodemailer.com/smtp/中指出的那样

您需要使用您的自定义域信息(主机、端口、用户和密码)配置传输器。您可以在特定托管服务提供商的电子邮件配置中找到此信息。

var transporter = nodemailer.createTransport({
    host: 'something.yourdomain.com',
    port: 465,
    secure: true, // true for 465, false for other ports
    auth: {
      user: 'username@mydomain.com', // your domain email address
      pass: 'password' // your password
    }
  });

然后您可以继续定义邮件选项:

  var mailOptions = {
    from: '"Bob" <bob@bobsdomain.com>',
    to: 'tom@gmail.com',
    subject: "Hello",
    html : "Here goes the message body"
  };

最后你可以继续使用 transporter 和 mailOptions 使用函数 sendEmail 发送电子邮件

  transporter.sendMail(mailOptions, function (err, info) {
    if (err) {
      console.log(err);
      return ('Error while sending email' + err)
    }
    else {
      console.log("Email sent");
      return ('Email sent')
    }
  });

【讨论】:

  • 您好!我收到消息“已发送电子邮件”,该功能以“正常”状态结束。但是收件人没有收到电子邮件。你能帮忙吗:(