suchen

Heim  >  Fragen und Antworten  >  Hauptteil

PHPMailer: SMTP-Fehler: Verbindung zum SMTP-Host konnte nicht hergestellt werden

Ich habe PHPMailer in mehreren Projekten verwendet, aber jetzt stecke ich fest. Es gab mir den Fehler:

SMTP-Fehler: Verbindung zum SMTP-Host konnte nicht hergestellt werden.

Ich habe versucht, E-Mails über Thunderbird zu senden, und es hat funktioniert! Aber nicht über PHPMailer... Hier sind die Einstellungen für Thunderbird:

Server Name: mail.exampleserver.com

Port: 587

Benutzername: user@exampleserver.com

Sicherheitsauthentifizierung: No

Verbindungssicherheit: starttls

Ich habe sie mit PHPMailer mit dem Server meines letzten Projekts verglichen und sie sind:

Servername: mail.exampleserver2.com

Port: 465

Benutzername: user@exampleserver2.com

Sichere Authentifizierung: Nein

Verbindungssicherheit: SSL/TLS

Mein PHP-Code lautet:

$mail = new PHPMailer();
 $mail->IsSMTP(); // send via SMTP
 $mail->Host = SMTP_HOST; // SMTP servers
 $mail->Port = SMTP_PORT; // SMTP servers
 $mail->SMTPAuth = true; // turn on SMTP authentication
 $mail->Username = SMTP_USER; // SMTP username
 $mail->Password = SMTP_PASSWORD; // SMTP password
 $mail->From = MAIL_SYSTEM;
 $mail->FromName = MAIL_SYSTEM_NAME;
 $mail->AddAddress($aSecuredGetRequest['email']);
 $mail->IsHTML(true); // send as HTML

Was habe ich falsch gemacht?

P粉990008428P粉990008428409 Tage vor757

Antworte allen(1)Ich werde antworten

  • P粉352408038

    P粉3524080382023-10-13 14:23:02

    由于这个问题在 google 中出现率很高,因此我想在这里分享我针对 PHP 刚刚升级到版本 5.6(具有更严格的 SSL 行为)的情况的解决方案。

    PHPMailer wiki 有一个关于此的部分:

    https://github.com/PHPMailer/ PHPMailer/wiki/Troubleshooting#php-56-certificate-verification-failure

    建议的解决方法包括以下代码:

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

    这应该适用于 PHPMailer 5.2.10(及更高版本)。

    注意:显然,正如该 wiki 中所建议的,这应该是一个临时解决方案!

    Antwort
    0
  • StornierenAntwort