node.js - NodeJS 从本地 SMTP 服务器发送电子邮件
问题描述
所以我一直在制作一个应该发送验证电子邮件的应用程序,但我不知道如何处理它。我见过人们使用 Gmail 和组合nodemailer
来发送消息,但我不想依赖谷歌。
我已经看到了smtp-server
将创建一个简单的 smtp 服务器的软件包,但是到目前为止,我已经让它接收电子邮件并从它自己接收电子邮件,可以这么说,但不能从我的本地 SMTP 服务器发送电子邮件,比如说, Gmail 或雅虎。
到目前为止,我的代码看起来像这样:
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));
问题是,现在我的服务器收到我发送的消息,而不是谷歌的。我知道我做错了什么,但我该如何解决呢?
解决方案
推荐阅读
- apache-flink - 会话窗口如何在事件时间合并多流?
- excel - 更新 SUMIF 公式以支持过滤数据
- sql - 我正在寻找使用子查询中的值的方法
- scala - Scala 将 DF 转换为 RDD - 错误 java.lang.NumberFormatException:对于输入字符串:“age”
- python - 增量分析中的特征缩放
- css - 为什么我的第二个延迟的 CSS 动画把一切都搞砸了?
- java - 具有替代合并功能的合并排序的时间复杂度
- typescript - TypeScript:为什么这里有一个 `keyof` 可以解决这个问题
- python - 列表到嵌套列表和字典
- string - 在 Dart 中是否有任何用于检查空字符串和/或空字符串的较短版本?