解决错误" PHPMailer错误:扩展缺失:openssl"

时间:2015-05-17 07:26:22

标签: php phpmailer

我已被删除;来自PHP的php.ini和apache文件夹的openssl。我仍然得到错误" PHPMailer错误:扩展缺失:openssl"以下是php代码,我也设置了phpmailerautoload。

PHP代码:

<?php
require "PHPMailerAutoload.php";
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Mailer = 'smtp';
$mail->SMTPAuth = true;
$mail->Host = 'smtp.gmail.com'; // "ssl://smtp.gmail.com" didn't worked
$mail->Port = 465;
$mail->SMTPSecure = 'ssl';
// or try these settings (worked on XAMPP and WAMP):
/*$mail->Port = 587;
$mail->SMTPSecure = 'tls';*/


$mail->Username = "vignesh*******45@gmail.com";
$mail->Password = "********";

$mail->IsHTML(true); // if you are going to send HTML formatted emails
$mail->SingleTo = true; // if you want to send a same email to multiple users. multiple emails will be sent one-by-one.

$mail->From = "vignesh*******45@gmail.com";
$mail->FromName = "Vignesh";

$mail->addAddress("vignesh*******45@gmail.com","User 1");

//$mail->addCC("user.3@ymail.com","User 3");
//$mail->addBCC("user.4@in.com","User 4");

$mail->Subject = "Testing PHPMailer with localhost";
$mail->Body = "Hi,<br /><br />This system is working perfectly.";

if(!$mail->Send())
    echo "Message was not sent <br />PHPMailer Error: " . $mail->ErrorInfo;
else
    echo "Message has been sent";
?>

请帮我解决错误。我也在wampserver中启用了openssl。

5 个答案:

答案 0 :(得分:5)

IIS上的PHP,

1)打开 (php安装目录)php.ini

2)取消注释(php.ini中的〜第910行) extension = php_openssl.dll

3)重启IIS

答案 1 :(得分:2)

对于Windows + Apache:

在PHP.INI中,取消注释libeay32.dll

在Apache \ bin中,添加ssleay32.dllThe ordinal 3906 could not be located in the dynamic link library LIBEAY32.dll.。 (跳过此步骤会导致Apache启动两次说defaultdict

重启Apache。

下一步是让SSL工作正常 - TLS与SSL,端口号,身份验证......

答案 2 :(得分:1)

;extension=php_openssl.dll文件中的extension=php_openssl.dll更改为php.ini。 然后重新启动webbrowser和wamp / xampp服务器。希望这有帮助。

答案 3 :(得分:0)

除了你所做的以及@Bilbo所说的,你可能想要将php.ini中的值extension_dir更改为绝对路径(而不是相对默认路径)。不知道为什么,但这对我有用。

在您的php.ini中找到并将extension_dir = "ext"更改为以下内容:extension_dir = "c:/php710/ext"您的路径可能会有所不同!

答案 4 :(得分:0)

1)打开(php安装目录)php.ini
提示:如果找不到php.ini,则可以创建一个php文件并按以下方式运行它:

$inipath = php_ini_loaded_file();
 if ($inipath) {
      echo 'Loaded php.ini: ' . $inipath;
 } else {
      echo 'A php.ini file is not loaded';
 }

这将告诉您php.ini的位置,或者您没有加载php.ini。
提示:如果需要,php会附带一个生产和开发php.ini。

2)取消注释(〜php.ini中的第910行)
7.4.2之前的版本:extension=php_openssl.dll
7.4.2:extension=openssl

3)取消注释extension_dir = "ext"(〜php.ini中的第761行)

4)重新启动IIS