2017-11-05 3 views
0

ich diese PHP-Funktion haben:Die Art, wie wir Benutzer authentifizieren nicht mehr funktioniert, gibt Authentifizierungsfehler

public static function smtpmailer($to, $from, $from_name, $subject, $body) { 
    $mail = new PHPMailer(); // create a new object 
    $mail->IsSMTP(); // enable SMTP 
    $mail->SMTPDebug = 0; // debugging: 1 = errors and messages, 2 = messages only 
    $mail->SMTPAuth = true; // authentication enabled 
    $mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail 
    $mail->Host = 'smtp.gmail.com'; 
    $mail->Port = 465; 
    $mail->Username = "[email protected]"; 
    $mail->Password = "somepassword";   
    $mail->SetFrom($from, $from_name); 
    $mail->Subject = $subject; 
    $mail->Body = $body; 
    if (is_string($to)) { 
     $to = array($to); 
    } 
    foreach ($to as $t) { 
     $mail->AddAddress($t); 
    } 
    if(!$mail->Send()) { 
     $error = 'Mail error: '.$mail->ErrorInfo; 
     return false; 
    } else { 
     $error = 'Message sent!'; 
     return true; 
    } 
} 

Diese erfolgreich, bevor sie verwendet wurde, aber jetzt gibt es mir einen Fehler Ich verstehe nicht:

string(1553) "Warning [2] stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

Einige Authentifizierung wird nicht bestanden, aber sowohl der Benutzername als auch das Passwort sind korrekt. Dies wurde von URL1 erfolgreich zuvor verwendet und ich kopierte diesen Code auf eine andere Site mit URL2. Der oben erwähnte Fehler trat jedoch auf. Als ich dies bei URL1 versuchte, um herauszufinden, ob dies ein Einstellungs-Problem in meinem Google Mail-Konto ist, das für die E-Mail-Überprüfung verwendet wurde, habe ich den gleichen Fehler festgestellt. Meine Frage ist: Was muss ich beheben und wie kann ich eine Authentifizierungs-E-Mail in Bezug auf die Einstellungen des Google Mail-Kontos und des Codes, die ich oben gezeigt habe, erfolgreich senden?

EDIT

Unterschiede zwischen dieser Frage und dem einen markiert als die auf diesem Wesen mit duplizieren:

  • Dies ist eine Frage PHP-Code beteiligt, ist diese Frage zu Pythonic Probleme
  • diese Frage ist sehr spezifisch über Google Mail-Nutzung und den Wunsch, Google Smtp Bedingungen und Richtlinien zu erfüllen
  • die andere Frage ist über das Herunterladen von Dateien, ist dies über das Senden einer E-Mail von einem bestimmten Gmail-Adresse
  • die andere Frage ist, über ein Pop-up mit Zertifikaten im Browser, die Dinge hier geschehen auf serverseitige
+0

@kabanus Ich denke, das kein Duplikat ist, da diese über die Begegnung mit gmail Anforderungen in einer Art und Weise, die vorher gearbeitet, aber aufgrund zumindest eine Änderung unkown mir nicht jetzt arbeiten. –

+0

Sind Sie sicher, dass es sich nicht um ein Google Mail-Zertifikat handelt, das Sie zuvor hatten, oder um eine Änderung des Hostnamens? – kabanus

+0

@kabanus für URL2 Ich habe einen anderen Hostnamen. Aber für URL1 verwende ich ein Zertifikat, das früher erstellt wurde und dann funktioniert. Ich habe auch mit URL1 getestet, um die Möglichkeit von Problemen aufgrund von falschem Zertifikat und/oder Änderung des Hostnamens auszuschließen. –

Antwort

1

Die Schritte für die Lösung waren wie folgt:

  1. Stellen Sie sicher, dass die gmail Konto ermöglicht den Zugriff von der App. Sie können dies tun, indem Sie auf die Einstellungen des Kontos gehen und Let Less Secure apps use your account,

  2. Vergewissern Sie sich, dass PHPMailer in Verwendung mit der PHP-Version entspricht

  3. Wir brauchen die folgenden Einstellungen:

$mail->SMTPSecure = 'tls'; // secure transfer enabled REQUIRED for GMail $mail->Host = 'smtp.gmail.com'; $mail->Port = 587;

  1. stellen Sie außerdem sicher, dass wir die SMTPOptions gesetzt:

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

Schön, froh, dass du es hast. – kabanus

Verwandte Themen