2015-09-21 20 views
5

am Beispiel Basierend dass PHPMailer i das Skript liefert unten haben,PHPMailer - OpenSSL Fehler

date_default_timezone_set('Etc/UTC'); 
require './PHPMailerAutoload.php'; 
$mail = new PHPMailer; 
$mail->isSMTP(); 
$mail->SMTPDebug = 2; 
$mail->Debugoutput = 'html'; 
$mail->Host = 'smtp.gmail.com'; 
$mail->Port = 587; 
$mail->SMTPSecure = 'tls'; 
$mail->SMTPAuth = true; 
$mail->Username = "[email protected]"; 
$mail->Password = "********"; 
$mail->setFrom('[email protected]', 'First Last'); 
$mail->addReplyTo('[email protected]', 'First Last'); 
$mail->addAddress('[email protected]', 'first last'); 
$mail->Subject = 'PHPMailer GMail SMTP test'; 
$mail->Body = "example"; 
$mail->AltBody = 'This is a plain-text message body'; 

if (!$mail->send()) { 
echo "Mailer Error: " . $mail->ErrorInfo; 
} else { 
echo "Message sent!"; 
} 

Selbst wenn dies der genau das gleiche wie das Original Beispiel, ich kann es nicht bekommen zu arbeiten.

Der Fehler, die ich bekommen ist

Warnung: stream_socket_enable_crypto(): SSL-Betrieb mit Code 1. OpenSSL Fehlermeldungen fehlgeschlagen: Fehler: 14090086: SSL-Routinen: SSL3_GET_SERVER_CERTIFICATE: Zertifikat in/opt/lampp fehlgeschlagen verify /htdocs/webmail_client_practise/class.smtp.php in Zeile 344 SMTP-Fehler: Verbindung zum SMTP-Host konnte nicht hergestellt werden.

Hinweis: Die OpenSSL-Erweiterung in meiner php.ini Datei ist bereits geöffnet.

Antwort

19

Dies ist, weil Sie PHP 5.6 ausführen und es Ihre Zertifikate überprüft, aber Ihr Server ungültige Zertifikate präsentiert, so dass es fehlschlägt. Sowohl PHPMailer als auch PHP sind korrekt in dem, was sie tun - der Code ist nicht schuld. Sie können entweder Ihre E-Mail-Server beheben, oder tun, was es in the troubleshooting guide schon sagt, das ist:

$mail->SMTPOptions = array(
    'ssl' => array(
     'verify_peer' => false, 
     'verify_peer_name' => false, 
     'allow_self_signed' => true 
    ) 
); 

Und als der Führer sagt, Sie sollten dies nicht tun, es sei denn Sie haben - es Ihre Sicherheit ist zu beeinträchtigen.

+0

Jetzt macht jeder Sinn jetzt! Danke Synchro! – Makis

+0

Danke, mein Herr. Das war in meinem Fall der Fall. – Blair

+1

Das hat geholfen. Danke :) – Ali