• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Kontaktformular: Bestätigungsmail zeigt Fehler seit Änderung der PHP-Version auf 7.2

Kay-Bee

Neues Mitglied
Hi Leute,

es geht um einen Fehler in der Bestätigungsmail einer per Kontaktformular gesendeten Mail nach Umstellung der PHP-Version beim Hoster.
Seit der Änderung der PHP Version beim Hoster von 5 auf PHP 7 steht im Betreff der Bestätigungsmail an den Anfrager nicht mehr "XY bedankt sich für ihre Nachricht" sondern nur noch "=?iso-8859-1?Q??=".
Das Formular auf der (simplen) HTML-Website (es ist eine Seite aus der guten alten Zeit, sprich sehr alt) wurde mit PHPMailer (Version: 5.1) eingebunden soweit ich das verstanden habe (in der Datei class.phpmailer.php steht, dass es mit PHP 5 oder höher funktionieren sollte).
Es gibt eine Datei class.phpmailer.php und die eigentliche Seite unter der Datei kontakt.php. Liegt direkt beides im Hauptverzeichnis.

Kann man mit geringem Aufwand etwas nachpflegen um den Fehler zu bereinigen oder sollte die Einbindung komplett bearbeitet werden? Die Website soll ohnehin demnächst einen Relaunch erhalten, daher wäre für jetzt gleich eher eine schnelle, kleine Lösung erstrebenswert. Bin allerdings PHP-Laie.

Die Einbindung in der kontakt.php Datei beginnt wie folgt:
<?php
require_once 'class.phpmailer.php';

$lengthm = strlen($_POST["send"]["mail"]);
$lengtha = strlen($_POST["send"]["autor"]);
$lengthn = strlen($_POST["send"]["nachricht"]);

$i = "0";

if(isset($_POST["send"]) && is_array($_POST["send"])) {

$_POST["send"]["autor"] = stripslashes($_POST["send"]["autor"]);
$_POST["send"]["mail"] = stripslashes($_POST["send"]["mail"]);
$_POST["send"]["nachricht"] = stripslashes($_POST["send"]["nachricht"]);


usw.

später heißt es:

#--------------------- für den Benutzer
$mail = new PHPMailer(true); //defaults to using php "mail()"; the true param means it will throw exceptions on errors, which we need to catch
try {
$mail->AddAddress($_POST["send"]["mail"], $_POST["send"]["autor"]);
$mail->SetFrom('[email protected]', 'Das Unternehmen XY');
$mail->Subject = 'XY bedankt sich für Ihre Nachricht.';
..

Habt Ihr einen Rat für mich, oder wo zu suchen wäre?
Danke für Hinweise und Hilfe.
Viele Grüße
Kay-Bee
 
Danke, Ven.
Wo überall muss ich dann UTF-8 als Kodierung angeben?
Weil mit den früheren Standards ISO.. usw. muss man ja an verschiedenen Stellen Unterschiedliches definieren. Also zB RFC für Mailheader berücksichtigen.

Entfällt das bei UTF-8 dann und überall sollte UTF-8 gelten?

Muss ich im PHPMailerskript herumpfuschen?
Das wäre dann ja wohl hier am Beginn der class.phpmailer.php, oder?

<h1>Kontaktformular</h1>

<?php
require_once 'class.phpmailer.php';

Das wäre dann wohl hier zu Beginn in der Datei:

/**
* Sets the CharSet of the message.
* @var string
*/
public $CharSet = 'iso-8859-1';


In der html-Seite wird im head in der Metaangabe ebenfalls iso-8859-1 definiert. Das gilt doch nur für die eigentlichen Textinhalte ?!
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
Kann der Mail aber egal sein oder?


Viele Grüße
Kay-Bee
 
Interessant: Nachdem ich CharSet von ISO auf UTF-8 gewechselt habe erscheint das Mail-Subject nicht mehr falsch als "=?iso-8859-1?Q??=" sondern als "=?utf-8?Q??="
Das war also leider nicht die Lösung.
Viele Grüße
Kay-Bee
 
Zuletzt bearbeitet:
Ändere nichts in den Dateien vom phpMailer!

$mail->CharSet = 'utf-8';
 
Ja, m.scatello, das dachte ich mir.
Aber hat niemand einen Ansatz, wie ich das fehlerhafte Subject korrigieren kann?
VG
Kay-Bee
 
Zurück
Oben