Hallo zusammen,
ich mußte getrieben durch meinen Provider auf PHP 8.0 wechseln. Letztlich muss man ja mit den Versionen mitgehen. Macht ja Sinn.
Wie so oft paßt mein Code nun nicht mehr.
Aus meiner eigentlichen PHP Seite erstelle ich ein Objekt email, welches - wie kann es anders sein - mit dem phpMailer (version 6.7.1) eine Email versendet. Das folgende verwendete Beispiel paßt einwandfrei und macht was es soll.
Nun möchte ich aber wie gesagt, diesen Emailversand in eine Klasse kapseln und habe folgenden Code (eigentlich mehr oder weniger den Gleichen) in eine eigene Datei geschrieben:
Im Hauptteil rufe ich diesen mit folgendem Codeblock auf:
Es kommen keine Fehlermeldungen. Allerdings wird keine Email versendet. Interessanterweise werden auch keine Echo-Befehle geprinted. Ich verzweifele langsam. Hat sich denn zwischen PHP 7.x und PHP 8.0 hier etwas markantes geändert?
Ich schaue nun schon seit Stunden auf den Code und suche den Fehler. Könnt ihr mal bitte drüber schauen?
Vielen Dank,
Holger
ich mußte getrieben durch meinen Provider auf PHP 8.0 wechseln. Letztlich muss man ja mit den Versionen mitgehen. Macht ja Sinn.
Wie so oft paßt mein Code nun nicht mehr.
Aus meiner eigentlichen PHP Seite erstelle ich ein Objekt email, welches - wie kann es anders sein - mit dem phpMailer (version 6.7.1) eine Email versendet. Das folgende verwendete Beispiel paßt einwandfrei und macht was es soll.
Code:
<?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\Exception; try { require './tools/PHPMailer/src/Exception.php'; require './tools/PHPMailer/src/PHPMailer.php'; require './tools/PHPMailer/src/SMTP.php'; // Instanz der PHPMailer-Klasse erstellen $debug = 1; $mail = new PHPMailer($debug); // Authentifikation mittels SMTP $mail->isSMTP(); $mail->SMTPAuth = true; // Login $mail->Host = 'smtp.ionos.de'; $mail->Port = '587'; $mail->Username = '----'; $mail->Password = '----'; $mail->SMTPSecure = 'tls'; // Enable encryption, 'ssl' also accepted // Absender $mail->setFrom('fhem@butschek.com', 'Mailer'); $mail->FromName = 'Locative Geo-Fence'; $mail->addAddress('fhem@butschek.com', 'FHEM'); $mail->CharSet = 'UTF-8'; $mail->Encoding = 'base64'; $mail->isHTML(false); $mail->Subject = 'Der Betreff Ihrer Mail'; $mail->Body = 'Der Text Ihrer Mail als HTML-Inhalt. Auch <b>fettgedruckte</b> Elemente sind beispielsweise erlaubt.'; $mail->AltBody = 'Der Text als simples Textelement'; $mail->send(); } catch (Exception $e) { echo "Message could not be sent. Mailer Error: ".$mail->ErrorInfo; } ?>
Code:
<?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\Exception; class Mailer { function Mailer(string $subject) { try { require './tools/PHPMailer/src/Exception.php'; require './tools/PHPMailer/src/PHPMailer.php'; require './tools/PHPMailer/src/SMTP.php'; $mail = new PHPMailer(true); // Authentifikation mittels SMTP $mail->isSMTP(); $mail->SMTPAuth = true; // Login $mail->Host = 'smtp.ionos.de'; echo $mail->Host; $mail->Port = '587'; $mail->Username = '-----'; $mail->Password = '-----'; $mail->SMTPSecure = 'tls'; // Enable encryption, 'ssl' also accepted //Recipients $mail->setFrom('fhem@butschek.com', 'Mailer'); $mail->FromName = 'Locative Geo-Fence'; $mail->addAddress('fhem@butschek.com', 'FHEM'); //Add a recipient $mail->CharSet = 'UTF-8'; $mail->Encoding = 'base64'; $mail->isHTML(false); // Set email format to HTML $mail->Subject = $subject; $mail->Body = 'sent by butschek.com - FHEM !'; //$mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; $mail->send(); echo 'Message has been sent'; //$mail->addAddress('ellen@example.com'); //Name is optional //$mail->addReplyTo('info@example.com', 'Information'); //$mail->addCC('cc@example.com'); //$mail->addBCC('bcc@example.com'); //Attachments //$mail->WordWrap = 50; // Set word wrap to 50 characters //$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments //$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name } catch (Exception $e) { echo "Message could not be sent. Mailer Error: {$this->ErrorInfo}"; } } } ?>
Code:
// Mail senden require_once('.cls_Mailer.php'); $subject = date('d-m-Y G:i:s') . " | HOLGER enter HOME"; $email = new Mailer($subject);
Ich schaue nun schon seit Stunden auf den Code und suche den Fehler. Könnt ihr mal bitte drüber schauen?
Vielen Dank,
Holger
Kommentar