Heim  >  Fragen und Antworten  >  Hauptteil

Einfache Anleitung: PHPMailer zum Versenden von Test-E-Mails verwenden

<p>Ich betreibe einen lokalen Apache2-Server unter Debian/Bullseye. Ich habe versucht, PHPMailer zum Laufen zu bringen, war aber erfolglos. Es scheint zwei verschiedene Möglichkeiten zu geben, PHPMailer zu installieren – die erste ist die Verwendung von Composer, die erste Methode, die ich ausprobiert habe. Es erstellt einen Vendor-Ordner im Stammverzeichnis der Site, der eine autoload.php-Datei sowie einige andere Dateien enthält. Die Datei enthält folgenden Inhalt: </p> <pre class="brush:php;toolbar:false;"><?php // autoload.php @generated von Composer require_once __DIR__ . '/composer/autoload_real.php'; return ComposerAutoloaderInitd359baac21f520c04e608f4eed750560::getLoader();</pre> <p>Das sieht unvollständig aus (kein schließendes Tag). Jedenfalls bekomme ich das Beispiel „test.php“ nicht zum Laufen. </p> <p>Eine andere Methode besteht darin, die ZIP-Datei von der gethub-Website herunterzuladen und in das Stammverzeichnis der Website zu extrahieren. Nach dem Umbenennen habe ich einen PHPMailer-Ordner erhalten. Auch die Verwendung des Beispiels „mailer.php“ hat keine Auswirkung. </p> <p>In beiden Fällen habe ich die SMTP-Informationen geändert, um die tatsächlichen Kontoinformationen für die Domäne zu verwenden (Sende-E-Mail, Anmeldekennwort, SMTP-Servername, SMTP-Sicherheit des Hosts und Porteinstellungen), aber ich habe sogar keine Antwort auf die Ablehnung erhalten E-Mail wurde empfangen. Nichts ist passiert. Ich sehe nur eine leere Webseite. </p> <p> Ich habe PHP am Laufen, weil ein PHP-Skript, das ich zuvor verwendet habe, immer noch funktioniert (von meiner Testseite – die eigentliche Seite besteht jetzt auf der Verwendung von SMTP und lässt mich das PEAR-Modul nicht installieren).</p> <p>Hier ist das mailer.php-Skript, das ich verwende – einige Details sind ausgeblendet: </p> <pre class="brush:php;toolbar:false;"><?php //Importieren Sie die PHPMailer-Klasse in den globalen Namespace //Diese müssen sich am Anfang des Skripts befinden, nicht innerhalb der Funktion verwenden Sie PHPMailerPHPMailerPHPMailer; verwenden Sie PHPMailerPHPMailerSMTP; verwenden Sie PHPMailerPHPMailerException; erfordern 'PHPMailer/src/Exception.php'; erfordern 'PHPMailer/src/PHPMailer.php'; erfordern 'PHPMailer/src/SMTP.php'; //Eine Instanz erstellen; „true“ übergeben, um Ausnahmen zu aktivieren $mail = neuer PHPMailer(true); Versuchen { //Server Einstellungen $mail->SMTPDebug = SMTP::DEBUG_SERVER; //Detaillierte Debugging-Ausgabe aktivieren $mail->isSMTP(); //Mit SMTP senden $mail->Host = 'mail.<domain>.ca'; //Legen Sie den zu übergebenden SMTP-Server fest $mail->SMTPAuth = true; //SMTP-Authentifizierung aktivieren $mail->Username = 'mail@<domain>.ca'; //SMTP-Benutzername $mail->Password = '<secret>'; //SMTP-Passwort $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; //Implizite TLS-Verschlüsselung aktivieren $mail->Port = 465; //TCP-Port für die Verbindung; wenn „SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS“ festgelegt ist, verwenden Sie bitte 587 //Empfänger $mail->setFrom('mail@<domain>.ca', 'von mir'); $mail->addAddress('gary@<domain>.ca', 'to me'); //Einen Empfänger hinzufügen // $mail->addAddress('Recipient@emailaddress.com'); //Name ist optional // $mail->addReplyTo('yourname@domain.com', 'Your Name'); // $mail->addCC('cc@example.com'); // $mail->addBCC('bcc@example.com'); //Anhänge (optional) // $mail->addAttachment('/var/tmp/file.tar.gz'); //Anhang hinzufügen // $mail->addAttachment('/tmp/image.jpg', 'new.jpg'); //Optionaler Name //Inhalt $mail->isHTML(true); //E-Mail-Format auf HTML setzen $mail->Subject = 'Hier ist der Betreff'; $mail->Body = 'Dies ist der HTML-Nachrichtentext in Fettschrift!'; $mail->AltBody = 'Dies ist der Textkörper im Klartext für Nicht-HTML-Mail-Clients'; $mail->send(); echo 'Nachricht wurde gesendet'; } Catch (Ausnahme $e) { echo „Nachricht konnte nicht gesendet werden: {$mail->ErrorInfo}“; } ?></pre> <p>Die TLS-Leitungen stammen vom Hosting-Unternehmen, daher gehe ich davon aus, dass sie korrekt sind. </p> <p>Ich habe die Optionen, die ich in meinem Test nicht benötige, auskommentiert, aber es funktioniert immer noch nicht. Kann jemand herausfinden, was ich falsch mache? </p> <p>Vielen Dank. </p>
P粉344355715P粉344355715441 Tage vor633

Antworte allen(1)Ich werde antworten

  • P粉709644700

    P粉7096447002023-08-27 16:24:52

    好的,明白了。主机公司提供了测试代码,他们的示例使用了smtp.domain.com。实际上,他们的smtp服务器是mail,而不是smtp。我猜想当面对一个不存在的服务器时,代码就会停止运行...

    Antwort
    0
  • StornierenAntwort