我正在尝试为应用设置nodemailer。尝试时出现错误。
这是我的设置:
email = setting.email;
password = setting.password;
var transporter = nodemailer.createTransport({
host: 'smtp.gmail.com',
port: 587,
secure: false, // true for 465, false for other ports
auth: {
user: '***********@gmail.com', // real email
pass: '*********' // real password
}});
// var transporter = nodemailer.createTransport({
// service: 'gmail',
// auth: {
// user: email, // Your email id
// pass: password // Your password
// }
// });
var mailOptions = {// sender address
from: email,
to: to, // list of receivers
subject: sub, // Subject line
text: text, //, /// plaintext body
html: html
}
//console.log(JSON.stringify(mailOptions));
transporter.sendMail(mailOptions, function (error, info) {
if (error) {
console.error(error);
} else {
console.log(info.response);
}
;
});
});
} catch (error) {
console.error(error);
}
这是我第一次尝试使用nodemailer。我正在使用真实的电子邮件和密码。错误是:
(节点:18974)[DEP0025] DeprecationWarning:不建议使用sys。使用工具 代替。魔术发生在端口5000 ERROR上!错误!错误!错误! provider_analytic_daily已保存。 {错误:连接超时 在SMTPConnection._formatError(/root/faszz/node_modules/smtp-connection/lib/smtp-connection.js:528:15) 在SMTPConnection._onError(/root/faszz/node_modules/smtp-connection/lib/smtp-connection.js:514:16) 在SMTPConnection。 (/root/faszz/node_modules/smtp-connection/lib/smtp-connection.js:236:14) 在ontimeout(timers.js:498:11) 在tryOnTimeout(timers.js:323:5) 在Timer.listOnTimeout(timers.js:290:5)代码:“ ETIMEDOUT”,命令:“ CONN”}
答案 0 :(得分:0)
functionObj = {};
functionsObj.getSmtpTransport = function() {
var smtpTransport = nodemailer.createTransport({
service: "Gmail",
auth: {
user: "<your email address>",
pass: "<your pass>"
}
});
return smtpTransport;
}
functionsObj.sendMailForPasswordReset = function(to, token) {
var smtpTransport = functionsObj.getSmtpTransport();
var mailOptions = {
to: to,
subject: "Blabla.com Reset Password",
html: "Hi,<br> Click to link for resetting password.<br><a href='https://<blabla.com>/reset/" + urlencode(token) + "'>Click Me !!!</a>"
}
smtpTransport.sendMail(mailOptions, function(error, response) {
if (error) {
return error;
}
else {
return true;
}
});
};
嗨,
上面的代码在我的项目中正常工作,没有任何错误。但是您应该允许第三方软件使用Google的Google帐户。
在这种情况下,这里是Google的支持页面:
https://support.google.com/accounts/answer/6010255?hl=en
我建议所有输入都应进行验证:)例如,如果您要从用户处获取“ to”参数。您应该验证“收件人”参数是否为有效的电子邮件地址?