我有一个微型设备,能够通过 SMTP 客户端发送电子邮件。但是,该设备没有 DNS 客户端,因此发送电子邮件的唯一方法是指定 SMTP 中继的 IP 地址,而不是域名。
例如:当设备发送电子邮件时,它将初始化其 SMTP 客户端,如下所示:
SmtpServer = 111.122.133.144;
Port = 343;
From: [email protected]
..etc..
不幸的是,我们无法使用中继的域名来初始化 SMTP 客户端,例如:
SmtpServer = relay.smtp.com;
Port = 343;
From: [email protected]
..etc..
我尽力让我们的微型设备开发人员支持 DNS 客户端,但无济于事。因此,我们只能使用 IP 来指定 SMTP 中继服务器。
我们原本计划使用第三方的 SMTP 服务,但现在我们遇到了没有 DNS 支持的问题,我们无法使用第三方,因为我们无法相信他们的 IP 地址会保持不变。最有可能的是,他们的 IP 地址每月、每周甚至每天都会发生变化。
以此作为我的问题的背景,我的问题是 - 是否存在某种类型的路由器可以检测传入的电子邮件请求,然后将该请求转发到远程 SMTP 服务器?
总结一下两个问题:
- 我们不想管理自己的 SMTP 服务器,而愿意付费让第三方服务来为我们管理。
- 由于微型设备无法支持 DNS 客户端,它必须指向我们完全控制和了解的 IP 地址(我们不能相信第三方服务会如何使用其 IP)。
为了解决上述两个问题,我想配置一个我完全了解并控制其公共 IP 地址的设备。嵌入式设备将向此设备/路由器发送电子邮件。然后,设备/路由器将通过该 SMTP 服务器的域名(而不是 SMTP 服务器的 IP 地址)将电子邮件转发到第三方 SMTP 服务。
简而言之:微型设备通过 IP 地址将电子邮件发送到 fancy-router-thing,后者通过域名将电子邮件转发给第三方 SMPT 人员。
您是否知道有路由器(或任何非 SMTP 服务器设备)可以检测传入的 SMTP 数据包并将其转发到远程 SMTP 服务器?
或者 - 您有什么想法/建议我可以做些什么来解决我上面提到的两个问题(除了在我们的微型设备开发者身上采取中世纪的做法..哈!)?
答案1
为什么不直接运行 SMTP 服务器,然后使用第三方中继呢?
微型设备 -> smtp 投递 -> 您的中继 -> smtp 投递 -> 第三方中继服务器
SMTP 旨在经过多个跳转,大量离开企业的电子邮件要经过面向互联网的 SMTP 中继,而该中继本身使用基于 ISP 的 SMTP 中继。
答案2
SMTP 是一个简单的 TCP 协议,根据您的网络设置方式,您可能只创建一个 NAT 规则来将流量转发到您的真实服务器,或者使用 netcat、tcproxy 或许多类似工具之一设置 TCP 代理。