我已经在互联网上到处搜索/阅读/尝试了大约 3 周,然后才在这里发帖......
上下文:
import type { NextApiRequest, NextApiResponse } from "next";
import * as nodemailer from "nodemailer";
export default async (req: NextApiRequest, res: NextApiResponse) => {
res.statusCode = 200;
let transporter = nodemailer.createTransport({
host: process.env.NM_HOST,
port: parseInt(process.env.NM_PORT),
secure: true,
auth: {
user: process.env.NM_USER,
pass: process.env.NM_PASS,
},
tls: {
rejectUnauthorized: false,
},
});
// console.log("User:");
// console.log(process.env.NM_USER);
let info = await transporter.sendMail({
from: "Website <xxx@xxx.com>",
to: "Website <xxx@xxx.com>",
subject: "New contact",
text: "NAME:\n" + req.body.data.name + "\n----------\nEMAIL:\n" + req.body.data.email + "\n----------\nBODY:\n" + req.body.data.body,
}, function (err, info) {
if (err) {
console.log(err)
} else {
console.log(info);
}
});
console.log("Message sent: %s", info);
res.json({
a: req.body.data.name,
b: req.body.data.email,
c: req.body.data.body,
});
};
问题:
Error: connect ECONNREFUSED 127.0.0.1:465
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1133:16) {
errno: -111,
code: 'ESOCKET',
syscall: 'connect',
address: '127.0.0.1',
port: 465,
command: 'CONN'
}
我已经尝试过的和我观察到的:
ping google.com
(以及许多其他)在容器内工作(使用 docker exec -ti container-name sh
命令)docker run --dns 8.8.8.8 ...
启动容器 -> 相同的结果(上面的错误)/etc/resolv.conf
不同(但我认为这可能不是重点,因为 ping
命令正确解析,但如果我是,请随意说我错了)npm run start
或 npm run dev
身份启动我的应用程序时,它可以正常工作任何愿意提供帮助的人都非常感激。