NodeJS 从本地 SMTP 服务器发送电子邮件

时间:2021-03-06 21:28:27

标签: node.js email

所以我一直在制作一个应该发送验证电子邮件的应用程序,但我不知道如何处理它。我见过有人使用 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));

问题是,现在我的服务器接收的是我发送的消息,而不是谷歌的。我知道我做错了什么,但我该如何解决?

0 个答案:

没有答案