node.js - Node.js nodemailer Gmail SMTP不工作
问题描述
require("dotenv").config();
"use strict";
var nodemailer = require("nodemailer");
const SMTPTransport = require("nodemailer/lib/smtp-transport");
console.log("Nach attr");
// async..await is not allowed in global scope, must use a wrapper
async function main() {
// Generate test SMTP service account from ethereal.email
// create reusable transporter object using the default SMTP transport
console.log("vor transporter");
let transporter = nodemailer.createTransport({
host: "smtp.gmail.com",
port: 465,
secureConnection: true, // true for 465, false for other ports
auth: {
user: 'email', // generated ethereal user
pass: 'password', // generated ethereal password
tls: {
rejectUnauthorized: false
}
},
});
transporter.verify().then(console.log).catch(console.error);
let mailOptions = {
from: 'testsender',
to: 'reciever',
subject: 'Test Mail',
text: '123456789'
};
console.log("vor transporter.send");
transporter.sendMail(mailOptions, function (err, data) {
if (err) {
console.log('Error Occurs: ', err);
} else {
console.log('Email sent!');
}
});
//console.log("Message sent: %s", info.messageId);
// Message sent: <b658f8ca-6296-ccf4-8306-87d57a0b4321@example.com>
// Preview only available when sending through an Ethereal account
//console.log("Preview URL: %s", nodemailer.getTestMessageUrl(info));
// Preview URL: https://ethereal.email/message/WaQKMgKddxQDoou...
}
main().catch(console.error);
控制台输出
Error Occurs: Error: connect ETIMEDOUT 64.233.166.108:465
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16) {
errno: 'ETIMEDOUT',
code: 'ESOCKET',
syscall: 'connect',
address: '64.233.166.108',
port: 465,
command: 'CONN'
}
解决方案
推荐阅读
- python - Google 日历 API 入门
- c# - 以编程方式更改背景颜色后鼠标悬停触发器不起作用
- mysql - 有没有办法将 WHERE 与 INSERT INTO 一起使用?
- bash - -bash:世博会:找不到命令
- firebase - 使用流构建器时出现颤振错误需要标识符
- javascript - react.js 将值传递给子函数
- scala - Spark 2.3 Dataframe partition-想要在 n 个分区中对 key 上的数据进行分区
- c# - 如何在 ASP.NET MVC 5 应用程序中使用 Azure AD 组授权
- android - 如何停止 Retrofit 在一对多关系中寻找嵌入对象?
- spring-mvc - @ModelAttribute 值在验证错误的情况下不可用