【问题标题】:How to send email without providing my emailid and password in node js(nodemailer)?如何在节点 js(nodemailer)中不提供我的电子邮件 ID 和密码的情况下发送电子邮件?
【发布时间】:2020-05-06 19:50:49
【问题描述】:

我想在用户创建帐户时使用 gmail smtp 服务器发送欢迎电子邮件。欢迎电子邮件必须通过我的 gmail id 发送,而无需在身份验证部分提供我的电子邮件、密码。我的代码在这里..

var nodemailer = require('nodemailer');

var transporter = nodemailer.createTransport({
  service: 'gmail',
  auth: {
    user: '*****@gmail.com',
    pass: *****
  }
});

var mailOptions = {
  from: 'youremail@gmail.com',
  to: 'myfriend@yahoo.com',
  subject: 'Sending Email using Node.js',
  text: 'That was easy!'
};

transporter.sendMail(mailOptions, function(error, info){
  if (error) {
    console.log(error);
  } else {
    console.log('Email sent: ' + info.response);
  }
});

【问题讨论】:

  • AFAIK,您需要授权该帐户才能通过 gmail 的服务器发送电子邮件。否则,这将允许垃圾邮件公司通过 gmail 的服务器发送大量垃圾邮件。
  • @JLowther 再次阅读我的问题..
  • 啊,我错了。

标签: javascript node.js smtp gmail nodemailer


【解决方案1】:

您可以通过环境变量提供您的用户名和密码,例如

var transporter = nodemailer.createTransport({
  service: 'gmail',
  auth: {
    user: process.env.NODEMAILER_USERNAME,
    pass: process.env.NODEMAILER_PASSWORD
  }
});

在linux中运行你的进程之前可以设置

NODEMAILER_USERNAME=test@gmail.com&&NODEMAILER_PASSWORD=pass&&./node www/bin

或者,您也可以使用 API 密钥 (https://developers.google.com/gmail/api/quickstart/nodejs),但如果您想避免将其存储在代码中,也可以采用相同的方法。

【讨论】:

  • 这可能是您能找到的最简单的方法......这是您无需将用户名和密码“硬编码”到代码中即可获得的最接近的方法。无论是这个还是从某处的文件中读取,使用 dotenv 更容易......
  • 如何获取API密钥?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-07-27
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 2022-10-14
  • 1970-01-01
  • 2021-10-09
相关资源
最近更新 更多