【发布时间】:2019-10-10 10:33:53
【问题描述】:
我已经在我的主机上设置了一个电子邮件服务器。它基本上是一个侦听端口 25 的 SMTP 服务器。
const recvServer = new SMTPServer({
requireTLS: true,
authOptional: true,
logger: true,
onConnect(session, callback) {
return callback();
},
onMailFrom(address, session, callback) {
console.log('from', address, session);
return callback();
},
onData(stream, session, callback) {
console.log('new msg');
let message = '';
stream.on('data', chunk => {
message += chunk;
});
stream.on('end', () => {
callback(null, 'Message queued');
simpleParser(message)
.then(parsed => {
console.log(parsed);
// here I wish to forward the message to outside gmail addresses
})
.catch(err => {
console.log(ee)
});
});
}
});
recvServer.listen(25);
recvServer.on('error', err => {
console.log(err.message);
});
它可以很好地接收来自外部的电子邮件,例如 gmail 等。
但我也希望能够在外面发送电子邮件,或者将收到的电子邮件转发到某些 gmail 地址。
我知道我可以使用 Gmail SMTP 服务器做到这一点,但我需要一个 gmail 帐户和密码。
我希望能够使用我自己的服务器发送电子邮件,就像 yahoo 使用他们自己的服务器而不是 gmail 帐户向 gmail 发送邮件一样 :)
【问题讨论】:
-
请注意,如果您想向 Gmail 地址发送电子邮件,您需要使用 SPF 记录授权您的服务器,否则 google 将拒绝您的电子邮件。
-
后缀工作正常。如果您的服务器由第三方托管,您通常可以使用他们的 SMTP 服务器作为中继
-
Alex - 你有答案吗 - 如果有,请接受 - 如果没有,请解释!
标签: javascript node.js smtp nodemailer