首页 文章

通过套接字连接到Gmail SMTP会返回每台服务器的不同响应

提问于
浏览
0

我想了解为什么通过SSL打开Gmail服务器的套接字为不同的服务器提供不同的响应 . 这阻止我连接到Gmail以发送电子邮件 .

下面是一个非常简单的脚本:

<?php

$smtp_connect = fsockopen('ssl://smtp.googlemail.com', 465,
    $errno,
    $errstr,
    300);

var_dump(fgets($smtp_connect, 512));

?>

在服务器1 [未安装ssl证书]上,上述代码的输出为: string(57) "220 smtp.googlemail.com ESMTP s89sm726209qkl.44 - gsmtp "

在服务器2 [已安装ssl证书]上,上述代码的输出为: string(71) "220-mycompany.pro.com ESMTP Exim 4.87 #1 Wed, 26 Oct 2016 07:42:49 -0400 "

任何人都可以解释为什么会发生这种情况,我怎样才能使服务器2具有与服务器1相同的行为?

更新:我也尝试了 smtp.gmail.com ,输出与使用 smtp.googlemail.com 相同 .

1 回答

  • 0

    您获得SMTP欢迎消息的行 . 不同的服务器提供不同的欢迎消息是完全正常的 . 对您发送的命令的响应通常是不同的 . 这意味着在与SMTP服务器通信时,您不应将固定字符串视为响应,而是实现正确的SMTP解析 . 有关此协议的详细信息,请参见the SMTP standard (RFC 2821) .

相关问题