使用 Nodemailer 发送的电子邮件未使用正确的“发件人”地址

问题描述 投票:0回答:1

我在 Node.js 应用程序中使用 nodemailer 库来发送电子邮件。我试图根据当前登录的用户动态设置“发件人”地址,但电子邮件始终从我在配置中设置的电子邮件地址发送,而不是预期的“currentUserEmail”地址。

问题是:

  • 电子邮件未从预期的“发件人”地址发送。

  • 我已确认“currentUserEmail”已正确登录到我的后端代码中,并且它包含所需的电子邮件地址。

**配置:**

- 我正在使用 Gmail 作为电子邮件服务。

- 我的 nodemailer 配置将“[电子邮件受保护]”指定为“用户”。

- 我已确保在 Gmail 设置中启用 IMAP。

- Gmail 设置中允许访问“安全性较低的应用程序”。

请在下面找到我的相关代码片段:
我的代码:

app.post('/api/sendMessage',protect, async (req, res) => {
  const { name, email, tel, message, currentUserEmail,    } = req.body;

  console.log('Received currentUserEmail:', currentUserEmail);


  const transporter = nodemailer.createTransport({
    service: 'Gmail',
    auth: {
      user: '[email protected]',
      pass: 'pass'
    },
  });

  // Compose email message
  const mailOptions = {
    from: currentUserEmail, 
    to: '[email protected]' ,
    subject: 'New Message from Your Website',
    text: `You received a new message from ${name} (${email}, ${tel}):\n\n${message}`,
  };


  const newMessage = new sendMessage({
    name,
    email,
    tel,
    message,
  });

  newMessage.save()
    .then((message) => {
      // Send the email
      transporter.sendMail(mailOptions, (error, info) => {
        if (error) {
          console.log('Error sending email:', error);
          res.status(500).json({ message: 'Error sending message' });
        } else {
          console.log('Email sent: ' + info.response);
          res.json({ message: 'Message sent and stored successfully' });
        }
      });
    })
    .catch((err) => {
      console.log('Error saving message to the database:', err);
      res.status(500).json({ message: 'Error saving message to the database' });
    });
});

即使我已将“发件人”正确设置为“当前用户电子邮件”,为什么我的电子邮件仍从“[电子邮件受保护]”发送?

node.js express gmail nodemailer
1个回答
0
投票

user
对象中的
auth
通常应与您的
from
选项相匹配。

发件人电子邮件仍然是

[email protected]
,因为这是您用于身份验证的电子邮件地址(因为它是您的 Gmail 帐户)。

Gmail 使用您在

auth
对象中提供的值来基本上验证谁在发送电子邮件,因此即使您指定不同的
from
地址,发件人仍然是
[email protected]
,因为那是您正在使用的 Gmail 帐户.

© www.soinside.com 2019 - 2024. All rights reserved.