我正在阅读“计算机网络 - 自上而下的方法”一书,在关于 SMTP 协议的章节之后,任务是:
“强烈建议您使用 Telnet 与 SMTP 服务器进行直接对话。为此,请发出
- 远程登录服务器名称 25
其中 serverName 是本地邮件服务器的名称。执行此操作时,您只是在本地主机和邮件服务器之间建立 TCP 连接。输入此行后,您应该会立即收到服务器的 220 回复。然后在适当的时候发出 SMTP 命令 HELO 、 MAIL FROM 、 RCPT TO 、 DATA 、 CRLF.CRLF 和 QUIT ”。
这是我尝试过的:
- 我:远程登录 smtp.mail.ru 25
- 服务器:220 smtp48.i.mail.ru ESMTP 就绪
- 我:Helo aaaaaaa
- 服务器:250 smtp48.i.mail.ru
- 我: 发件人: ...@inbox.ru(我的邮箱)
- 服务器:250 2.0.0 OK
- 我:RCPT 收件人:...@inbox.ru(我朋友的邮箱)
- 服务器:550 SMTP 仅在启用 SSL 或 TLS 连接时可用。
我究竟做错了什么?总的来说,正如我通过阅读本章所了解的那样,SMTP 是一种用于将电子邮件从一个邮件服务器传输到另一个邮件服务器的协议 - 是否可以从我的笔记本电脑执行此任务,它没有任何服务器软件?或者我应该以某种方式在某个邮件服务器上打开命令行,通过 telnet 创建与另一个邮件服务器的 tcp 连接,然后向我连接的邮件服务器发送消息?如果这仍然可以以某种方式做到,那么应该采取什么样的步骤顺序才能使一切顺利结束?
您在培训任务的框架内做的一切都是正确的。
不幸的是,自从这本书写完以来,发生了很多变化。
问题是垃圾邮件发送者。
由于垃圾邮件活动,几乎所有的公共服务器——以及您朋友邮箱所在的服务器——都有一个“他们从中接收邮件的 IP 地址白名单”。好吧,或者“垃圾邮件黑名单 - 他们不接受邮件的服务器”。
此外,现在许多邮件服务器根本不接受未经 ssl 加密的 smtp 邮件。使用 ssl 进行练习很可能已经超出了课程的范围。
所以你需要找到一个 1) 不通过 IP 过滤连接的 smtp 服务器 2) 不使用 ssl。恐怕野外可能已经没有了。您可以自己安装它,只是为了完成任务。好吧,或者安装几个这样的服务器并在它们之间交换信件。谷歌搜索“smtp server docker”
上次我遇到来自提供商 [best-hosting.ru] 1的未受保护的 smtp 服务器时- 这不是广告。他们现在怎么样了——我不知道 :-)
然而 - 输入字母的文本时,您需要在单独的行上用一个点完成输入,并在该点之后换行