我正在学习网络的基础知识,想通过命令行发送电子邮件。我在.l.google.com:25中用gmail-smtp打开了一个telnet会话,并发出了第一个命令EHLO gmail.com
220 mx.google.com ESMTP u16-20020ac25190000000b00449fff280afsi9331201lfi.49 - gmtp
EHLO gmail.com
502 5.5.1 Unrecognized command. u16-20020ac25190000000b00449fff280afsi9331201lf.49 - gsmtp
EHLO gmail.com
250-mx.google.com at your service, [xxx.xxx.xxx.xxx]
250-SIZE 157286400
250-8BITMIME
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
当我第一次发出EHLO gmail.com
时,它说Unrecognized command
,但随后它接受了我的命令。我做错了什么?
我无法复制您的问题。收到问候语后,telnet gmail-smtp-in.l.google.com 25
和EHLO localhost
对我来说很好。(你不应该在EHLO
中使用gmail.com
,但这无关紧要。正确的方法是使用你的机器的完全限定域名(而不是localhost
(,或者如果你的机器没有DNS地址,则使用方括号中的IP地址。(
RFC 5321指定SMTP客户端应在发送EHLO
命令之前等待来自服务器的问候语。延迟问候可以作为一种反垃圾邮件措施,但我不认为这是问题所在。