ich baue zurzeit die TLS/ SSL und Port Auswahl vom MOD in den Onlineshop ein.
Hier verwende ich eine preiswerte Testumgebung von Hetzner. Leider kam es zu Fehlermeldungen.
Mit meiner KI bei der Entwicklungsumgebung kamen wir zu dem Ergebnis:
Eine mögliche Ursache ist, dass du den Namensraum von PHPMailer nicht korrekt verwendest. Du musst entweder die Klasse mit dem vollständig qualifizierten Klassennamen (FQCN) instanziieren:
$phpmailer = new PHPMailer\PHPMailer\PHPMailer();
Oder du definierst den Import am Anfang deiner Datei, bevor du die Klassen lädst:
use PHPMailer\PHPMailer\PHPMailer;
Das wird es dir erlauben, deine vorhandene Zeile new PHPMailer zu verwenden. Diese Lösung wurde in einigen ähnlichen Fragen auf Stack Overflow vorgeschlagen.
Eine andere mögliche Ursache ist, dass du die SMTP-Klasse explizit verwendest, aber nicht importierst. Wenn du diese Zeile in deinem Code hast:
$mail->SMTPDebug = SMTP::DEBUG_SERVER;
Dann musst du entweder den vollständig qualifizierten Namen verwenden:
$mail->SMTPDebug = PHPMailer\PHPMailer\SMTP::DEBUG_SERVER;
Oder du musst den Import hinzufügen:
use PHPMailer\PHPMailer\SMTP;
Das wird verhindern, dass die Klasse SMTP nicht gefunden wird.
Ich hoffe, das hilft dir weiter. Wenn du mehr über PHPMailer erfahren möchtest, kannst du dir die offizielle Dokumentation3 oder das GitHub-Repository ansehen. Viel Erfolg beim Programmieren!
wir verwenden im PHP Script
Code: Alles auswählen
use PHPMailer\PHPMailer\SMTP;
Code: Alles auswählen
$phpmailer->SMTPSecure = PHPMailer\PHPMailer\PHPMailer::ENCRYPTION_SMTPS;
$phpmailer->SMTPSecure = PHPMailer\PHPMailer\PHPMailer::ENCRYPTION_STARTTLS;
Beste Grüße
Ralf