我已被删除;来自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。
答案 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.dll
和The 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