【发布时间】:2013-04-02 21:05:07
【问题描述】:
我收到了
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>");
}
有什么想法吗?
【问题讨论】:
-
您是否从您的计算机上尝试了相同的 smtp 帐户?许多家庭 ISP 阻止访问外部邮件服务器作为垃圾邮件预防措施。
-
是的,我在 Outlook 和 php 中使用了相同的 smtp 用户名和密码。 Outlook 和 php 在我的本地工作站上运行
标签: php email ssl openssl pear