我已经在 Linux 机器上设置了本地 smtp 服务器。以下命令有效并成功接收来自 test@<machine-name> 的邮件。
echo “THIS IS A TEST EMAIL” | mail -s "This is subject" [email protected]
而我需要使用nodemailer
下面配置的方法来发送邮件,
const transporter = nodemailer.createTransport({
host:"smtp.<ourserver>.com",
secure:false
});
const info = await transporter.sendMail({
from: 'test@<machine-name>', // sender address
to: '[email protected]', // list of receivers
subject: "Hello", // Subject line
html: "<i>Hello world</i>" // html body
});
但我收到以下错误,
知道我为什么会遇到这个问题吗?
我在 quora 上看到过类似的问题,但没有一个能解决我的问题。
和电子邮件,它适用于以下配置,
const { SMTPClient } = require('emailjs');
const client = new SMTPClient({
host: 'smtp.<ourserver>.com',
ssl: false,
tls: false
});
client.send(
{
text: 'Hello',
from: 'test@<machine-name>',
to: '[email protected]',
subject: 'Hello',
},
(err, message) => {
//
}
);
我怎样才能让它工作nodemailer
?
答案1
您必须添加代码来监听回声,然后:
const auth = {
user: "[email protected]",
pass: "password"
};
const transporter = require('nodemailer').createTransport({
host: "smtp.<ourserver>.com",
port: 587,
auth
});
transporter.verify(function (error, _) {
console.error(error);
}
const data = {
to: "<[email protected]>,
from: 'User Name <' + auth.user + '>',
date: "<date>",
subject: "Subject"
};
transporter.sendMail(data, (response) => {});
答案2
安装 nodemailer 应用程序可能会解决此问题。安装应用程序时,它会自动在后台进行一些设置。要安装该应用程序,只需安装 snapcraft 包并输入 sudo snap install nodemailerapp