【发布时间】:2021-05-15 18:34:24
【问题描述】:
我有一个用于接收电子邮件的简单脚本,即使它接收电子邮件并打印正常,但不幸的是,它没有响应发送服务器,(没有 250OK)因此发送服务器一直发送相同的 e - 邮件(重试)
需要回复什么或可能有什么问题?
在此设置中,此代码在我的本地网络 (OsX) 中运行,我的路由器的端口 25 转发到我的机器。
const SMTPServer = require("smtp-server").SMTPServer;
const parser = require("mailparser").simpleParser
const server = new SMTPServer({
onData(stream, session, callback) {
parser(stream, {}, (err, parsed) => {
if (err){
console.log("Error:" , err)
}
eMailParse(parsed)
stream.on("end", callback)
})
},
disabledCommands: ['AUTH']
});
server.listen(25, "192.168.50.20")
console.log("Mail Server Running");
function eMailParse(parsed){
const {headers, from, to, cc, date, html, text, messageId} = parsed;
console.log("\n//############# New Mail #############\n")
console.log(messageId)//Unique Mail ID;
console.log("\n//$$$$$")
console.log(from)
console.log(to)
console.log(cc)
console.log(date)
console.log(text)
console.log("//====")
console.log(html)
}
Gmail 的回复
接收服务器不接受我们的连接请求。在https://support.google.com/mail/answer/7720 [dc-133a13304d09.*******.fun 了解更多信息。 nn.nnn.nn.nn: 超时]
Telnet 响应
421 超时 - 关闭连接 连接被外部主机关闭。
【问题讨论】:
-
除非我遗漏了一些明显的东西,否则不是用于发送电子邮件的 SMTP 服务器吗?电子邮件客户端连接到 SMTP 服务器,发送电子邮件,然后 SMTP 服务器将其发送出去。要接收来自 Google 的电子邮件,我认为您需要一个 IMAP 服务器。类似wildduck
-
其实它是正确的,但它接收电子邮件,我不能说我完全理解发生了什么。在一篇文章中它说“一个 SMTP 接收来自其他电子邮件服务器或电子邮件客户端的电子邮件”
-
我的理解是;它作为中继工作,因此,接收电子邮件并发送到其他地方,它应该返回中继邮件服务器的答案,但是我不是中继,而是拦截电子邮件,我想返回 250 个传输答案服务器。
-
是的,根据this,smtp 服务器最初显然接受了电子邮件,然后将其转发到 imap/pop 服务器。无论如何,我对此无能为力,抱歉:)
标签: javascript node.js email smtp nodemailer