我有一个情况 . 我想连接到gmail smtp服务器并从我的Gmail帐户发送电子邮件 . 因为gmail smtp服务器使用PLAIN身份验证和TLS . 我连接到gmail smtp服务器 . 和服务器响应如下 .
220 mx.google.com ESMTP n21sm810716wed.43
然后我发送它“AUTH PLAIN”并发送“EHLO”命令 . 服务器响应如下:
503 5.5.1首先是EHLO / HELO . n21sm810716wed.43
然后我再次发送它“EHLO”命令,响应是:
250-mx.google.com为您服务,[203.99.179.10]
在此之后无论我给它什么 . 它打印一系列行和退出 . 它给出的响应顺序是;
250-SIZE 35882577 250-8BITMIME 250-STARTTLS 250 ENHANCEDSTATUSCODES
我该怎么做才能让我登录并发送电子邮件给我?任何帮助或建议将不胜感激 . 谢谢
另见
使用SMTP,Gmail和STARTTLS
3 回答
你面临三个问题:
首先,您是EHLO命令的 not reading entire response .
此命令具有 multi-line 响应:
注意最后250个代码后的 space - 这意味着这是最后一个响应行 .
第二:EHLO应该是您发送的 first 命令 .
第三:Gmail不允许在不使用SSL的情况下登录,无论是隐式(465端口)还是显式(STARTTLS命令)
除非我们与服务器 Build 安全连接,否则我们无法使用STARTTLS . 简单的SMTP库和telnet不支持STARTTLS . 为此,我不得不使用GNUTLS与服务器进行握手并交换证书以 Build 安全连接 . 之后我发送STARTTLS,它运行正常 . 希望这有助于其他面临类似的问题 . 谢谢
您应该在给定的响应后发出STARTTLS命令 . 这是一个SMTP会话示例,在端口587上的
smtp.gmail.com
上使用netcat
获得: