通过 node.js 将正文表单发送到 gmail

Hai*_*bag 1 javascript gmail heroku node.js nodemailer

我正在尝试用 node.js 编写邮件发送到 gmail 几天,但没有成功:-(

在尝试开始时,我尝试将表单提交发送到我的 gmail,但首先我需要了解如何将简单的邮件从正文发送到 gmail,也许我语法错误或遗漏了什么?

实际上我使用“heroku”作为我网站的存储和域

我尝试了几个插件(例如 mailgun、send grid 等),但是将它们的 API 集成到我的站点的过程太复杂了。

实际上,我在堆栈溢出中找到了这篇文章,它描述了如何发送与我的错误相关的 via nodemailer - URL:node.js nodemailer gmail 错误

当我将 answer1 复制到我的代码时,我仍然收到错误。

我还通过了所有 gmail 设置如何关闭安全性较低的应用程序的安全阻止,但我仍然收到错误消息。通过我的 npm npm install --save 安装的所有需求

** 代码 **

var nodemailer = require('nodemailer');
var smtpTransport = require('nodemailer-smtp-transport');

function handleSayHello(req, res) {

var transport = nodemailer.createTransport(smtpTransport({
service: 'gmail',
auth: {
  user: 'myGmail@gmail.com', // my mail
  pass: 'myPassword'
}
}));

var mailOptions = {
from: 'myGmail@gmail.com', // sender address
to: 'myGmail@gmail.com', // list of receivers
subject: 'Email Example' // Subject line
//text: text //, // plaintext body
//html: '<b>Hello world ?</b>' // You can choose to send an HTML body                       instead
};

transport.sendMail(mailOptions, function (error, info) {
if (error) {
  console.log(error);
  res.json({
    yo: 'error',
    err: error
  });
} else {
  console.log('Message sent: ' + info.response);
  res.json({
    yo: info.response,
    info: info
  });
};
});
}

router.get('/', function (req, res, next) {
  handleSayHello(req, res);
});

then i receive this error:
{
"yo": "error",
"err": {
    "code": "EAUTH",
    "response": "534-5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbtx\n534-5.7.14 e8jnXXDaDg-dpFfc3H5ljeaBdmnxbXBDXMh-aXS-mmV4gQsXMSZLiiJHDXuOr3wy-IR2Zp\n534-5.7.14 xnznWLf5y5e3xTbJNlZBNcxBMajM9-SFQGy1MQM2XZRpHgtywuDtEj5iPiP0b2T6Wjbsxg\n534-5.7.14 hgehfzufG6h13qhjQK5IgRPNQsSICRQBtRCl3E1J62wFo8bnvZv4peY5aK55JMpwhSavJb\n534-5.7.14 ho-b9ExGGsXFmw_Er6lc8m3vCmO_Q> Please log in via your web browser and\n534-5.7.14 then try again.\n534-5.7.14  Learn more at\n534 5.7.14  https://support.google.com/mail/answer/78754 t35sm887733qtc.40 - gsmtp",
    "responseCode": 534,
    "command": "AUTH PLAIN"
}
Run Code Online (Sandbox Code Playgroud)

}

如果有人可以拿走我的代码并修复它(如果需要)并简单地解释我需要在我的谷歌帐户中修改什么,我会非常满意!

Paw*_*ers 6

要允许来自 google/gmail,您应该点击这些链接并允许不太安全的应用程序访问: 解锁帐户

不太安全的应用程序

如果仍有问题,请告诉我,我会检查/调试您的代码。

  • 同样的事情在我的本地主机上工作,但在服务器上它给了我错误。 (2认同)