Mail via PHP Mailer versenden?
Moin,
ich wollte gerne eine mail über web.de versenden und bekomme nun folgende Fehlermeldung und finde keine Lösung :
2023-05-08 19:51:49 SERVER -> CLIENT: 220 web.de (mrweb006) Nemesis ESMTP Service ready
2023-05-08 19:51:49 CLIENT -> SERVER: EHLO localhost
2023-05-08 19:51:50 SERVER -> CLIENT: 250-web.de Hello localhost [178.24.229.10]250-8BITMIME250-SIZE 141557760250 STARTTLS
2023-05-08 19:51:50 CLIENT -> SERVER: STARTTLS
2023-05-08 19:51:50 SERVER -> CLIENT: 220 OK
2023-05-08 19:51:50 CLIENT -> SERVER: EHLO localhost
2023-05-08 19:51:50 SERVER -> CLIENT: 250-web.de Hello localhost [178.24.229.10]250-8BITMIME250-AUTH LOGIN PLAIN250 SIZE 141557760
2023-05-08 19:51:50 CLIENT -> SERVER: AUTH LOGIN
2023-05-08 19:51:50 SERVER -> CLIENT: 334 VXNlcm5hbWU6
2023-05-08 19:51:50 CLIENT -> SERVER: [credentials hidden]
2023-05-08 19:51:50 SERVER -> CLIENT: 334 UGFzc3dvcmQ6
2023-05-08 19:51:50 CLIENT -> SERVER: [credentials hidden]
2023-05-08 19:51:50 SERVER -> CLIENT: 535 Authentication credentials invalid
2023-05-08 19:51:50 SMTP ERROR: Password command failed: 535 Authentication credentials invalid
SMTP Error: Could not authenticate.
2023-05-08 19:51:50 CLIENT -> SERVER: QUIT
2023-05-08 19:51:50 SERVER -> CLIENT: 221 web.de Service closing transmission channel
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
E-Mail konnte nicht gesendet werden. Fehler: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
Hat jemand eine Idee was ich machen kann? Die LoginDaten meiner Email sind korrekt, die email selber,sowie die Pfade der PHP Dateien sind auch alle korrekt.
4 Antworten
Evtl. musst du auf web.de erst noch "POP3 und IMAP Zugriff erlauben" aktivieren. Also ins web.de-Webmail einloggen dann unter "Einstellungen" -> "POP3/IMAP Abruf".
Hier der zugehörige PHP Code :
<?php
require 'PHPMailer\PHPMailer-master\src/PHPMailer.php';
require 'PHPMailer\PHPMailer-master\src\SMTP.php';
require 'PHPMailer\PHPMailer-master\src/Exception.php';
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
if(isset($_POST['send_email'])) {
// Benutzerdaten aus dem Formular
$email = $_POST['email'];
$name = $_POST['name'];
$message = $_POST['message'];
// E-Mail-Adresse, an die die E-Mail gesendet werden soll
$to = 'xxx';
// Betreff der E-Mail
$subject = 'Nachricht von Webseite';
// E-Mail-Inhalt
$email_body = "Name: " . $name . "\n";
$email_body .= "E-Mail: " . $email . "\n";
$email_body .= "Nachricht: " . $message;
// Erstellen und Konfigurieren des PHPMailer-Objekts
$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host = 'smtp.web.de';
$mail->SMTPAuth = true;
$mail->Username = 'xxx'; // Hier deine Gmail-Adresse eintragen
$mail->Password = 'xxx'; // Hier dein Gmail-Passwort eintragen
$mail->SMTPSecure = 'TLS';
$mail->Port = 587;
// Absender und Empfänger festlegen
$mail->setFrom('xxx', 'xxx');
$mail->addAddress($to);
// E-Mail-Inhalt festlegen
$mail->Subject = $subject;
$mail->Body = $email_body;
$mail->SMTPDebug = SMTP::DEBUG_SERVER;
// E-Mail-Versand
if($mail->send()) {
// Erfolgsnachricht
echo 'E-Mail wurde erfolgreich gesendet!';
} else {
// Fehlermeldung
echo 'E-Mail konnte nicht gesendet werden. Fehler: ' . $mail->ErrorInfo;
}
}
?>
ja , wie folgt: mustermann@web.de Die Anmeldedaten sind 100% richtig
Wenn die gleichen Daten (Kodierungsprobleme ausgeschlossen?) in einem anderen Client o.ä. funktionieren, aber in PHPMailer nicht, dann bleibt nru noch ein Bug übrig.
Ich kann hier leider nur begrenzt helfen... wenn die Login-Daten korrekt sind und damit der Versand in Thunderbird o.ä. funktioniert, dann ist irgendwas in der Implementierung von PHPMailer falsch. Hast Du mal versucht die Kommunikation mit dem SMTP Server selbst zu implementieren?
ERROR: Password command failed: 535 Authentication credentials invalid
Hier stimmt etwas nicht mit deinem SMPT
Ich ich frage mich was du eigentlich vor hast.
Du kannst doch mit PHP auch direkt mail() benutzen um Mails z.b. vom Server zu schicken um Formulare zu bearbeiten und per Mail zu verschicken
Auf der Website gibt es einen "Kontakt" Bereich bei dem, sobald man diese felder :
$email = $_POST['email'];
$name = $_POST['name'];
$message = $_POST['message'];
ausgefüllt hat, man auf senden drückt und dann soll die mail an meine Webmail gesendet werden. Bin auch eher Anfänger und habe mir das so im Netz zusammen gesucht.
Dafür verwende ich die einfache Mail Funktion
https://www.php.net/manual/de/function.mail.php
Allerdings sollte man Daten aus dem Formular immer erst prüfen bevor man sie weiter verwendet
Ansonsten haben es hacker leicht dich zuzumüllen oder schlimmer deine Website zu Hacken
Offenbar mag der Server die Credentials nicht.
Du hast den Nutzername korrekt und inklusive Domain angegeben?