2017-02-16 149 views
0

我使用php郵件生成郵件,但代碼在本地機器上正常工作,但是當我上傳相同的服務器時,它給出了這個錯誤(擴展名缺少:openssl Mailer Error :擴展丟失:OpenSSL的),我已經打開587端口爲好,不過其不工作擴展缺失:openssl梅勒錯誤:擴展名缺少:openssl

require 'phpmailer/PHPMailerAutoload.php'; 
$mail = new PHPMailer; 
$mail->isSMTP();          
$mail->Host = 'smtp.gmail.com'; 
$mail->SMTPAuth = true;        
$mail->Username = '[email protected]';     
$mail->Password = 'secret';       
$mail->SMTPSecure = 'tls'; // Even ssl is not working       
//$mail->Port = 587;         
$mail->setFrom('[email protected]', 'abc'); 
$mail->addAddress('[email protected]', '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()函數檢查了服務器設置,該設置與我的本地機器幾乎相似

+0

簡單地說,我會說你需要在你的服務器上安裝PHP的openssl擴展。這似乎不是代碼中的錯誤。 –

回答

0

「幾乎」不夠好 - 您錯過了OpenSSL擴展,但您要求PHPMailer使用加密,沒有它就無法工作。你只需要啓用openssl擴展,它就可以工作。有很多資源可以幫助你做到這一點,例如this question,但是你沒有說你正在運行什麼樣的服務器,所以我不能更具體。