2

我一直在尝试通过 GMail在 WAMP 上使用 Pear 发送电子邮件,在花了几个小时进行设置并找出我遇到的所有错误之后,我以为我已经很接近了,直到我开始得到这个错误:

Failed to connect to ssl://smtp.gmail.com:465 [SMTP: Failed to connect socket: Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP? (code: -1, response: )]

使用此代码:

<?php require_once "info.php"; require_once "Mail.php"; // info.php contains the variable $password
$from = "Me <myemail@gmail.com>";
$to = "Me <myemail@gmail.com>";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";

$host = "ssl://smtp.gmail.com";
$port = "465";
$username = "myemail@gmail.com";
$password = "$password";

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

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

if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}
?>

我已经extension=php_openssl.dll在(正确的)php.ini 中查看并取消了注释,并确保extension_dir指向 DLL。我使用过phpinfo();并且多次提到 SSL:

mod_sslLoaded Modules.

mysqlnd标题下它有一个条目SSL: supported

Phar标题下有 entry Native OpenSSL support: enabled

我还关闭了防火墙,只是为了检查,我已经重新启动了我的计算机,并且我已经检查了这个站点上几乎所有像我这样的问题,但我仍然没有找到解决方案。

我不知道下一步该做什么。我需要启用/检查什么才能使其正常工作?

4

3 回答 3

4

在防火墙中打开 smtp.gmail.com 的 465 端口 :)

这将有助于

那么你的主机可能有问题,否则,

试试这个- 这对我有用

您是否在 Gmail 中允许使用 SMTP

在您的 Gmail 设置中检查 SMTP 服务器的“设置”是否处于活动状态。

于 2013-05-20T03:59:28.963 回答
2

php_openssl.dll在 php.ini 中取消注释

于 2014-09-26T10:22:38.437 回答
1

答案很简单;你应该做的第一件事:

  1. 打开文件php.ini然后尝试搜索密钥extension。那么如果你找不到这个extension=php_openssl.dll,请写下来,但确保你;在单词之前删除extension

  2. 保存后,请重新启动您的 Xampp 服务器。在那之后,一切都很好。

于 2015-10-20T03:17:24.823 回答