node.js - Nodemailer 仅适用于一个电子邮件地址

标签 node.js express nodemailer

第一次尝试让nodemailer工作,它确实有效,但前提是发送电子邮件地址是我的电子邮件地址......我目前有以下代码:

app.post('/', function (req, res) {
  const transporter = nodemailer.createTransport({
    service: 'Hotmail',
    auth: {
      user: 'myemail@hotmail.co.uk',
      pass: 'XXXX'
    }
  });
  const mailOptions = {
    from: req.body.address, // sender address
    to: 'myemail@hotmail.co.uk', // list of receivers
    subject: req.body.address,
    html: req.body.message // html body
  };

  transporter.sendMail(mailOptions, (error, info) => {
    if (error) {
      return console.log(error);
    }
    console.log(req.body);
    console.log('Message %s sent: %s', info.messageId, info.response);
    res.render('index');
  });

如果我在表单中输入随机电子邮件地址并发送,我会收到错误:消息失败。不确定我是否遗漏了一些非常明显的东西,但目前发件人地址必须与收件人匹配(或者可能是我的 auth.user 电子邮件)才能正常工作。

以前有人遇到过这个问题吗/可以对此进行一些说明吗?谢谢

最佳答案

所以我想我已经解决了它。它似乎不允许未经授权的人发送电子邮件,因此我将发件人和收件人设置为我的电子邮件地址,并使用电子邮件正文中表单中的用户电子邮件地址。

 const mailOptions = {
    from: 'myemail@hotmail.co.uk', // sender address
    to: 'myemail@hotmail.co.uk', // list of receivers
    subject: req.body.address,
    text: `${req.body.address} - ${req.body.message}` // html body
  };

关于node.js - Nodemailer 仅适用于一个电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53408368/

相关文章:

node.js - Nodemailer 无需 smtp 传输即可发送电子邮件

email - NodeMailer 排队传出电子邮件,但电子邮件从不发送

node.js - Sequelize : Return associated results array without embedded objects

javascript - 使用 Sails.js 路由到子域

linux - 如何在不将其放入路径的情况下安装 node.js?

Node.js:如何从回调中正确返回对象?

javascript - 普通对象 Mongoose 不适用于排序

express - 我不明白 GraphQL N+1 问题

node.js - 535 5.7.139 认证失败,请求不满足认证成功的条件

node.js - 检查游戏状态并向连接的客户端发送套接字的正确方法是什么?