【问题标题】:Extension missing: openssl Mailer Error: Extension missing: openssl缺少扩展名:openssl 邮件程序错误:缺少扩展名:openssl
【发布时间】:2017-02-16 07:43:00
【问题描述】:

我正在使用 php mailer 来生成邮件,但是代码在本地机器上运行良好,但是当我在服务器上上传相同的内容时,它给出了这个错误(缺少扩展名:openssl 邮件程序错误:缺少扩展名:openssl),我打开了 587端口也一样,仍然无法正常工作

require 'phpmailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP();                                      
$mail->Host = 'smtp.gmail.com';  
$mail->SMTPAuth = true;                             
$mail->Username = 'abc@gmail.com';                 
$mail->Password = 'secret';                           
$mail->SMTPSecure = 'tls';   // Even ssl is not working                           
//$mail->Port = 587;                                  
$mail->setFrom('abc@gmail.com', 'abc');
$mail->addAddress('def@yahoo.com', 'DEF');     
$mail->isHTML(true);                                  
$mail->Subject = 'Subject here';
$mail->Body    = 'Body Goes here';
if(!$mail->send()) 
   echo 'Mailer Error: ' . $mail->ErrorInfo;
else
   echo 'Mail Sent';

即使我从它在本地机器上但不在服务器上工作的代码中删除了端口号,我觉得我必须在服务器上进行一些更改。我已经使用 phpinfo() 函数检查了服务器设置,该设置与我的本地机器几乎相似

【问题讨论】:

  • 天真我会说你需要在你的服务器上安装 PHP 的 openssl 扩展。这似乎不是代码中的错误。

标签: php phpmailer


【解决方案1】:

“几乎”还不够好 - 您缺少 OpenSSL 扩展,但您要求 PHPMailer 使用加密,没有它就无法工作。您只需要启用 openssl 扩展程序,它就可以工作。有很多资源可以帮助你做到这一点,例如 this question,但你没有说你正在运行什么样的服务器,所以我不能更具体。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-14
    • 2017-06-13
    • 2018-08-11
    • 2014-09-08
    • 2015-03-05
    • 2016-06-19
    • 2018-02-20
    相关资源
    最近更新 更多