@DwB
Das mit dem senden per SMTP hatten wir schon mal bei Github diskutiert.
Bei mir hat es nur so funktioniert, man muss beim versenden von Mails per SMTP zusehen das die Namensräume korrekt eingebunden sind.
Hierfür zuerst die use-Statements in dem Script zum testen des Mailversands nutzen.
Code: Alles auswählen
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
Natürlich müssen noch die anderen Klassen (SMTP.php und Exception.php) in den include Ordner hochgeladen werden, damit diese für den Versand per SMTP zur Verfügung stehen.Danach habe ich dann alle 3 Klassen ins Script eingebunden.
Code: Alles auswählen
require_once ('./includes/PHPMailer.php');
require_once ('./includes/Exception.php');
require_once ('./includes/SMTP.php');
Um mir einen kompletten Log des Mailservers anzusehen lasse ich mir den ausgeben.
Code: Alles auswählen
$mail = new PHPMailer($debug);
if ($debug) {
// gibt einen ausführlichen Log aus
$mail->SMTPDebug = SMTP::DEBUG_SERVER;
}
Danach habe ich zum testen deinen Beispielcode geändert.
Mein Code für die Datei (mail.php)zum testen des versenden von Mails per SMTP lautet nun
Code: Alles auswählen
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\SMTP;
require_once ('./includes/PHPMailer.php');
require_once ('./includes/Exception.php');
require_once ('./includes/SMTP.php');
$debug = true;
// Instanz der PHPMailer-Klasse erstellen
$mail = new PHPMailer($debug);
if ($debug) {
// gibt einen ausführlichen Log aus
$mail->SMTPDebug = SMTP::DEBUG_SERVER;
}
// Authentifikation mittels SMTP
$mail->isSMTP();
$mail->SMTPAuth = true;
// Login
$mail->Host = 'DEN_SMTP_SERVER';
$mail->Port = 587;
$mail->Username = 'Anmeldename@Deine_Domain.com'; // Anmeldename am Mailserver
$mail->Password = 'DEIN_GEHEIMES_PASSWORT'; // Passwort des Anmeldenden
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
// Absender, optional kann der Name mit angegeben werden
$mail->setFrom('Absender@Domain.de', 'Absendername');
// Empfänger, optional kann der Name mit angegeben werden
$mail->addAddress('Empfaenger@Domain.de', 'Empfängername');
// Kodierung für Umlaute & Sonderzeichen
$mail->CharSet = 'UTF-8';
$mail->Encoding = 'base64';
// eMail als HTML versenden
$mail->isHTML(true);
$mail->Subject = 'Der Betreff Deiner Mail Sonderzeichen: äöüÄÖÜß'; //Test mit Sonderzeichen im Betreff
$mail->Body = 'Der Text Deiner Mail als HTML-Inhalt. Auch <b>fettgedruckte</b> Elemente sind beispielsweise erlaubt.';
$mail->AltBody = 'Der Text als simples Textelement';
$mail->send();
?>
Nun noch zu einer kleinen Änderung in der Datei PHPMailer.php.
Damit es nicht zu einen Fehler kommt beim Aufruf des Scripts der so lautet
Code: Alles auswählen
PHP Fatal error: Uncaught Error: Class "PHPMailer\PHPMailer\PHPMailer" not found in /...../mail.php:12
Stack trace:
#0 {main}
thrown in /...../mail.php on line 12
Dazu in der Datei PHPMailer.php die Zeile 22
ändern in
Das ist momentan auch die Änderung auf der
Github Seite für den PHPMailer.
Gruß Henshingly