我一直试图通过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>");
}
?>
我在(正确的)php.ini中经历并取消注释extension=php_openssl.dll
,并确保extension_dir
指向DLL。我使用过phpinfo();
,我看过多次提及SSL:
我在mod_ssl
中看到Loaded Modules
。
在mysqlnd
标题下,它有一个条目SSL: supported
。
在Phar
标题下,有条目Native OpenSSL support: enabled
。
我也关闭了我的防火墙,只是为了检查,我已经重新启动了我的计算机,而且我几乎已经检查了这个网站上的每个问题,我仍然没有找到解决方案。
我不知道接下来该做什么。启用/检查以使其正常工作需要什么?
答案 0 :(得分:3)
在防火墙中打开端口465打开到smtp.gmail.com:)
然后您的主机可能存在问题,或者
Try This - 这对我有用
您是否在Gmail中允许使用SMTP
检查Gmail设置中SMTP服务器的“设置”是否有效。
答案 1 :(得分:2)
在php.ini
中取消php_openssl.dll
答案 2 :(得分:1)
答案很简单;你应该做的第一件事:
打开文件php.ini
,然后尝试搜索密钥extension
。然后,如果您找不到此extension=php_openssl.dll
,请写一下,但请确保在;
之前删除extension
。
保存后,请重新启动Xampp服务器。在那之后,一切都很好。