PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |

17-11-2019, 17:58
|
ubik89
Registrierter Benutzer
|
|
Registriert seit: Nov 2017
Beiträge: 8
|
|
PHPMailer mit Plesk Onyx
Hallo,
ich hab eine Frage.
Ich habe folgendes Skript für meine Webseite geschrieben, das den PHPMailer nutzt:
Code:
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 1; # 0 off, 1 client, 2 client y server
$mail->CharSet = 'UTF-8';
$mail->Host = 'mail.....de';
$mail->Port = 25;
$mail->SMTPSecure = 'tls'; # SSL is deprecated
$mail->SMTPOptions = array (
'ssl' => array(
'verify_peer' => true,
'verify_depth' => 3,
'allow_self_signed' => true,
'peer_name' => 'Plesk',
));
$mail->SMTPAuth = true;
$mail->Username = 'mail@....de';
$mail->Password = '...'; //Recipients
$mail->setFrom($_POST['email'], $_POST['fullname']);
$mail->addReplyTo($_POST['email'], $_POST['fullname']); //Content
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Anfrage vom ' . date("d.m.Y H:i");
$mail->Body = utf8_decode(nl2br($_POST['message'])); //$mail->AltBody = utf8_decode($_POST['message']);
$mail->send();
Dieser Code ist mit try-/catch umschlossen.
Wenn ich nun das Skript laufen lasse, bekomme ich keine Fehlermeldung.
Allerdings kommt nichts beim Empfänger an. Keine einzige Email kommt von dem PHP Skript bei mir an. Andere E-Mails gehen, wie zum Beispiel Google Mail, etc.
Nun nutze ich Plesk Onyx für den Webserver (eine Automatisierungssoftware für Server). Könnte da ein Zusammenhang liegen? Wenn ja, was muss ich tun?
Ich bin neu in Plesk...
Geändert von ubik89 (17-11-2019 um 18:06 Uhr)
|

17-11-2019, 22:54
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.780
|
|
Dreh das Debugging von PHPMailer voll auf und schau nach, was passiert.
|

18-11-2019, 16:09
|
ubik89
Registrierter Benutzer
|
|
Registriert seit: Nov 2017
Beiträge: 8
|
|
Zitat:
Zitat von h3ll
Dreh das Debugging von PHPMailer voll auf und schau nach, was passiert.
|
Hallo,
hab ich gemacht. Sowohl
Code:
$mail->SMTPDebug = 2;
als auch
Code:
$mail->SMTPDebug = 1;
liefern keine Fehler.
Es scheint so, als ob die E-Mail gesendet wurde, aber nicht ankommt. Ich habe auch keinen Spam Filter angeschaltet oder ähnliches.
|

18-11-2019, 16:45
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.780
|
|
Zitat:
Zitat von ubik89
liefern keine Fehler.
|
Sondern? Was exakt ist die Debug-Ausgabe?
|

18-11-2019, 16:47
|
ubik89
Registrierter Benutzer
|
|
Registriert seit: Nov 2017
Beiträge: 8
|
|
Es wird nichts ausgegeben... Hab alle Debug Mode ausprobiert.
Es scheint so, als ob die E-Mail gesendet wurdet wurde, aber nichts kommt am Server an.
|

18-11-2019, 17:46
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.780
|
|
Zitat:
Zitat von ubik89
Es wird nichts ausgegeben... Hab alle Debug Mode ausprobiert.
|
Dann wird der Code wohl nicht ausgeführt.
Zitat:
Zitat von ubik89
Es scheint so, als ob die E-Mail gesendet wurdet wurde, aber nichts kommt am Server an.
|
Nein, wenn die Mail gesendet wird, gibt es auch Debug-Ausgaben mit einer Erfolgsmeldung. Da das nicht der Fall ist, wird wohl auch nichts versendet.
|

18-11-2019, 18:17
|
ubik89
Registrierter Benutzer
|
|
Registriert seit: Nov 2017
Beiträge: 8
|
|
Okay...
Aber warum wird dann keine Exception ausgeworfen? Eigentlich habe ich den Code folgendermaßen mit try-catch umrandet:
Code:
$mail = new PHPMailer(true); // Passing `true` enables exceptions
try {
//Server settings
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 2; # 0 off, 1 client, 2 client y server
$mail->CharSet = 'UTF-8';
$mail->Host = 'mail.....de';
$mail->Port = 25;
$mail->SMTPSecure = 'tls'; # SSL is deprecated
$mail->SMTPOptions = array (
'ssl' => array(
'verify_peer' => true,
'verify_depth' => 3,
'allow_self_signed' => true,
'peer_name' => 'Plesk',
)
);
$mail->SMTPAuth = true;
$mail->Username = 'mail@....de';
$mail->Password = '...';
//Recipients
$mail->setFrom($_POST['email'], $_POST['fullname']);
$mail->addReplyTo($_POST['email'], $_POST['fullname']);
//Content
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Anfrage vom ' . date("d.m.Y H:i");
$mail->Body = utf8_decode(nl2br($_POST['message']));
//$mail->AltBody = utf8_decode($_POST['message']);
$mail->send();
$error = false;
} catch (Exception $e) {
$error = true;
}
Wenn $error = false ist, dann wird auf meiner Webseite angezeigt, dass die E-Mail gesendet wurde.
Kann mir jemand helfen, den PHP Code richtig zu schreiben, dass die E-Mail trotzdem gesendet wird?
Ich hab ein Ubuntu 18.04 mit Plesk Onyx am Laufen. Der vServer liegt bei Strato.
Die E-Mailkonfiguration ist SMTP-mäßig auf StartTLS eingestellt und die Verschlüsselung für das Passwort ist md5-digest (so steht es jedenfalls in meinem Mailclienten Evolution). Die IP Adresse ist gewhitelistet.
Geändert von ubik89 (18-11-2019 um 18:23 Uhr)
|

18-11-2019, 22:23
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.780
|
|
Weil du $mail mit new PHPMailer() und nicht mit new PHPMailer(true) befüllst.
Und was ist jetzt mit den Debug-Ausgaben?
|

19-11-2019, 14:49
|
ubik89
Registrierter Benutzer
|
|
Registriert seit: Nov 2017
Beiträge: 8
|
|
Hallo,
die Debug Ausgabe ist jetzt:
Code:
SMTP -> FROM SERVER:220 ....net ESMTP Postfix (Ubuntu)
SMTP -> FROM SERVER: 250-....net 250-PIPELINING 250-SIZE 10240000 250-ETRN 250-STARTTLS 250-AUTH DIGEST-MD5 CRAM-MD5 PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250-DSN 250 SMTPUTF8
SMTP -> FROM SERVER:220 2.0.0 Ready to start TLS
Warning: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in ...
Und hinter der Meldung gibt es eine Zeile komische Zeichen...
|

19-11-2019, 16:33
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.780
|
|
Wie wärs mit ein wenig Selbstinitiative?
Erster Treffer mit Google:
https://stackoverflow.com/a/28759959
|

19-11-2019, 17:33
|
ubik89
Registrierter Benutzer
|
|
Registriert seit: Nov 2017
Beiträge: 8
|
|
Leider hat das nicht geholfen.
Aber es muss doch an Plesk Onyx liegen. Das ist eine Software für eine Serververwaltung.
Wobei, ich habe die IP whitegelistet und es funktioniert trotzdem nicht...
|

19-11-2019, 17:41
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.780
|
|
Was hat das bitte mit irgendwelchen Whitelists zu tun?
Entweder ist SSL auf deinem Webserver oder dem Mail-Server nicht richtig konfiguriert. Von SSL-Konfigurationen habe ich allerdings überhaupt keine Ahnung. Ich lass das immer Server-Admins machen, die Ahnung von der Materie haben.
Geändert von h3ll (19-11-2019 um 17:52 Uhr)
|

19-11-2019, 17:51
|
ubik89
Registrierter Benutzer
|
|
Registriert seit: Nov 2017
Beiträge: 8
|
|
Hallo,
das Problem hat sich gelöst.
Danke für den Hinweis für SSL Zertifikate.
Der E-Mailserver hatte kein Zertifikat. Ohne Zertifikate keine E-Mails...
Vielen Dank!
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|