1

我正在接收

Failed to connect to ssl://smtp.gmail.com:587 [SMTP: Failed to connect socket: (code: -1, response: )]

当我尝试发送 SMTP 电子邮件时。我已经尝试了 ssl:// 和 tls:// 都没有成功。

我已经验证我的计算机可以通过使用配置了 SMTP 帐户的 Outlook 建立这样的传出连接,并且它能够使用 TLS 成功发送。

我还使用 phpinfo() 验证了 Web 服务器上启用了 OpenSSL。它显示 PHP 5.3.15,并且有一个显示 OpenSSL 支持的 openssl 部分:已启用

相关代码:

if($isSSL)
    $host="tls://$host";

$headers = array ('From' => $from,
    'To' => $to,
    'Subject' => $subject);
$opts=array ('host' => $host,
            'debug'=>true,
           'auth' => true,
           'port'=>$port,
           'username' => $username,
           'password' => $password);
$smtp = Mail::factory('smtp',$opts);

$mail = $smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {
    echo("<p>" . $mail->getMessage() . "</p>");
} 

有什么想法吗?

4

1 回答 1

2

ssl://应该管用。也请尝试端口 465。

用于$mail->getUserInfo()获取更详细的错误消息。

另一个问题来源可能是您的防火墙不允许到该端口的传出连接。

于 2013-04-11T13:00:30.347 回答