CVO*_*CVO 3 node.js nodemailer
我正在尝试使用 nodejs 和 nodemailer 发送邮件,但它对我不起作用。我有这个代码:
const config = require('../../config');
const http = require('http');
const nodemailer = require('nodemailer');
module.exports = {
sendMail: function (params) {
return new Promise((resolve, reject) => {
var transporter = nodemailer.createTransport({
//service: 'gmail', //I tried with this too
host: 'smtp.gmail.com',
port: 465,
secure: true,
auth: {
user: params.fromMail,
pass: params.fromPass
}
});
var mailOptions = {
from: params.fromMail,
to: params.toMailList,
subject: params.subject,
html: params.mailHtmlContent,
};
transporter.sendMail(mailOptions, function(err, info){
if (err) {
reject(err);
} else {
resolve(info.response);
}
});
});
}
};
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
{ 错误:无效登录:535-5.7.8 用户名和密码不被接受。在 535 5.7.8 https://support.google.com/mail/?p=BadCredentials了解更多信息 \Users\Carlos\Desktop\Proyectos\nodeServer\node_modules\nodemailer\lib\smtp-connection\index.js:691:47) at TLSSocket.emit (events.js:182:13) at addChunk (_stream_readable.js:283) :12) at readableAddChunk (_stream_readable.js:264:11) at TLSSocket.Readable.push (_stream_readable.js:219:10) 代码:'EAUTH',响应:'535-5.7.8 用户名和密码不被接受。在\n535 5.7.8 了解更多信息 https://support.google.com/mail/?p=BadCredentials p6sm97493129wrx.50 - gsmtp',响应代码:535,命令:'AUTH PLAIN' }
我已经更改了我的 gmail 帐户中有关“安全性较低的应用程序”的对应参数。我也尝试过使用另一个非 gmail 帐户。我试过这个:
service: 'gmail',
Run Code Online (Sandbox Code Playgroud)
这用于连接:
host: 'smtp.gmail.com',
port: 465,
secure: true,
Run Code Online (Sandbox Code Playgroud)
我在 stackoverflow 中阅读了所有“类似问题”,我不知道我是否需要其他任何东西,或者我是否做错了什么。(当然,我已经修改了两个帐户中的用户名和密码,它们没问题)。
我在做什么坏事?
var nodemailer = require('nodemailer');
const transporter = nodemailer.createTransport({
service: 'gmail',//smtp.gmail.com //in place of service use host...
secure: false,//true
port: 25,//465
auth: {
user: 'example@gmail.com',
pass: 'password'
}, tls: {
rejectUnauthorized: false
}
});
transporter.sendEMail = function (mailRequest) {
return new Promise(function (resolve, reject) {
transporter.sendMail(mailRequest, (error, info) => {
if (error) {
reject(error);
} else {
resolve("The message was sent!");
}
});
});
}
module.exports = transporter;
Run Code Online (Sandbox Code Playgroud)
用法:
//import transporter JS file
const mail = require('../utils/mail');
let htmlContent = `
<h1><strong>Contact Form</strong></h1>
<p>Hi,</p>
<p>${name} contacted with the following Details</p>
<br/>
<p>Email: ${email}</p>
<p>Phone: ${phone}</p>
<p>Company Name: ${companyName}</p>
<p>Message: ${message}</p>
`
let mailOptions = {
from: "Example <example@gmail.com>",
to: "me@gmail.com",
subject: "Mail Test",
text: "",
html: htmlContent
}
mail.sendMail(mailOptions)
.then(function (email) {
res.status(200).json({ success: true, msg: 'Mail sent' });
}).catch(function (exception) {
res.status(200).json({ success: false, msg: exception });
});
Run Code Online (Sandbox Code Playgroud)
笔记:
在使用 Gmail 发送电子邮件之前,您必须允许非安全应用访问 Gmail,您可以转到 Gmail 设置 https://myaccount.google.com/lesssecureapps?pli=1
| 归档时间: |
|
| 查看次数: |
9772 次 |
| 最近记录: |