我们设置了一个安全系统,当售出的计算机首次启动时,我们会收到一封来自目的地的电子邮件,表明该邮件已收到。警方建议我们在多次不幸的诈骗尝试后这样做 - 在 macOS 上使用 Postfix 一切正常,但需要注意的是,他们希望在标题中包含计算机的原始 IP 地址,以证明这不是我们自己发送的电子邮件。
我使用 Google 的 SMTP 进行了测试,在相同设置下运行良好,但是由于交付的计算机出现在世界不同地区,Google 的安全系统会启动并认为我们的密码已被盗,因此只有 20% 的电子邮件被发送。
到目前为止,Postmark 的送达率似乎为 100%,问题是,与我们测试过的其他 SMTP 服务器一样,它没有在标头中显示X-Sf-Originating-Ip
其服务器的原始 IP。
有没有办法使用 Postfix 标头强制将发件人的公共 IP 包含在标头中,或者我们可能错过使用 Postmark 的 SMTP 服务器的任何设置?
似乎大多数 Postfix 选项都是排除公共 IP,而不是强制将其包括在内。
答案1
我在 Postmark 工作。虽然您的解决方案在技术上可行,我不建议采用这种方法:
当您运送计算机并进行此设置时,我认为您需要在机器上包含一个邮戳服务器令牌,并且您的客户最终可以发现它,并且他们最终可以使用它来通过您在 Postmark 上的帐户发送电子邮件。
服务器令牌应该像密码一样对待,不应该与未知方共享。
替代:
解决这个问题的一个更简单的方法是配置一个可以通过 https 接受 JSON 负载的 webhook。这样就不再需要 postfix,而且通常不会被 ISP 阻止,因为 443 是一个在网络上无处不在的标准端口。
您的 webhook 可能包含有用的信息,包括
公共 IP(您可以从以下服务中收集):
curl https://api.ipify.org
机器上的 MAC 地址:
ifconfig | grep 'ether'
机器序列号或其他信息(https://apple.stackexchange.com/a/40244/15813)
有许多应用程序可以在公开可用的 webhook 中接受“JSON 转储”,例如https://requestb.in/- 我建议将其托管在您自己的服务器上,因为这是您的请求记录,最终将如下所示:
curl -H "Content-Type: application/json" https://your-server-tracking.com/booted -d '{ "IP": "'"$(curl https://api.ipify.org)"'", "SERIAL" : "'"$(system_profiler SPHardwareDataType | awk '/Serial/ {print $4}')"'", "Date", "'"$(date)"'" }'
其他注意事项:
- 您应该确保您遵守有关在这些机器中包含哪些内容的法律,这似乎可能会与您的客户的隐私相冲突。
- 您应该确认这种方法为警方调查这些案件提供了足够的信息。话虽如此,考虑到任何人都可以在此过程中添加电子邮件标头,上述添加 IP 的方法可能至少与您通过电子邮件标头获得的方法一样可靠。顺便说一句,像这样的标头
X-Sf-Originating-Ip
是非标准的,任何发件人都可以在其中放入任何他们想要的东西。
祝你好运!
答案2
在某些情况下,拥有自己的 SMTP 服务器是理想的选择,因为您
- 决定您想要存储哪些信息。
- 通过不部署此类(默认)来避免任何区域检测。
- 不会在配置文件中泄露您的 Gmail(或其他)密码。
由于大多数 ISP 会25
因为垃圾邮件而封锁端口,因此使用端口上的提交587
(我相信您已经对 Gmail 这样做了)是让邮件通过的必要条件。但是,即使是提交也可能会被封锁。当然,如果滥用者知道您如何跟踪他们,他们就可以轻松地587
在防火墙中封锁端口。
我更愿意使用 HTTPS 端口,而不是 SMTP 443
,因为该端口几乎始终可用,而且由于 HTTPS 的广泛使用,很少被篡改。脚本或程序可以在启动后/通过 cron 尝试加载某个网页,例如https://example.com/imhere.php?serial=<S/N>
。
另一方面,如果您坚持使用电子邮件,您可以使用自己的专用服务器使 SMTPS 不STARTTLS
使用端口443
而不是默认端口465
。与任何 TLS 加密流量一样,不带端口的 SMTPSSTARTTLS
看起来就像 HTTPS。
无论您做什么,这些都只是纯粹的技术建议。确保这种跟踪不会违反您当地以及客户所在国家/地区的任何隐私或数据保护法规。不要试图成为蝙蝠侠。:)