所以我一直在制作一个应该发送验证电子邮件的应用程序,但我不知道如何处理它。我见过有人使用 Gmail 和 nodemailer
的组合来发送邮件,但我不想依赖 Google。
我已经看到包 smtp-server
可以制作一个简单的 smtp 服务器,但到目前为止,我已经让它接收电子邮件并从它自己接收电子邮件,可以这么说,但不能从我的本地 SMTP 服务器,例如 Gmail 或 Yahoo。
到目前为止,我的代码看起来像这样:
const smtpServer = require('smtp-server');
const mailparser = require('mailparser');
const nodemailer = require('nodemailer');
const a = new smtpServer.SMTPServer({
onData(stream, session, callback) {
mailparser.simpleParser(stream, (err, main) => {
console.log("An email was received:");
console.log(" From: " + main.from.text);
console.log(" To: " + main.to.text);
console.log(" Text: " + main.text);
callback(err);
});
},
onAuth: function (auth, session, callback) {
callback(null, { user: auth });
},
disabledCommands: ['AUTH']
});
a.listen(587, '192.168.....');
nodemailer
.createTransport( {
host: "My public ip",
port: 587,
secure: false,
auth: {
user: "username",
pass: "password"
},
tls: {
rejectUnauthorized: false
}
})
.sendMail({
from: '"Verification" <verification@test.com>',
to: 'my.email@gmail.com',
html: `Test`,
headers: {
}
})
.catch(e => console.log(e));
问题是,现在我的服务器接收的是我发送的消息,而不是谷歌的。我知道我做错了什么,但我该如何解决?