最近,我一直在尝试一个简单的脚本,该脚本侦听端口25,并接收和记录所有传入的电子邮件。
这是一个非常原始的脚本,它根本没有实现SMTP协议。它只是简单地发出罐头答复,其工作方式如下:
(example.com代替了我的真实域的FQDN。)
这确实是一个非常粗糙的脚本;但是,在过去的几个月中,它非常适合我需要接收的每封电子邮件。我可以从Gmail,Protonmail,验证电子邮件等处收到罚款。我还捕获了一些Internet范围的扫描,因此它也可以用作有趣的蜜罐。
今天,我试图收到一封Microsoft帐户验证电子邮件以注册一个Microsoft帐户。远程客户端似乎根本没有响应220!
# nc -l -v -p 25
Listening on [0.0.0.0] (family 0, port 25)
Connection from mail-co1nam03on0003.outbound.protection.outlook.com 56725 received!
220 example.com ESMTP Postfix
无论我尝试了什么,客户端都不会发送任何东西。我究竟做错了什么?任何想法都欢迎。
答案 0 :(得分:0)
tripleee在评论中解决了这个问题,因此我将其发布为答案,以供所有人查看。问题是我只给LF作为换行符,而不给CRLF。因此,我在代码中用“ \ r \ n”替换了所有的“ \ n”,并进行了修复。我想其他邮件服务器只是对我宽容。