Also das hier funktioniert bei mir, ich habe es übe einen lokalen SMTP versendet, den ich auch selbst betreibe. Wie Du das machst weiß ich nicht.
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'PHPMailer-master/src/Exception.php';
require 'PHPMailer-master/src/PHPMailer.php';
require 'PHPMailer-master/src/SMTP.php';
$mail = new PHPMailer();
$mail->IsHTML(true);
$mail->CharSet = "UTF-8";
$mail->From = 'joerg.reinholz@fastix.org';
$mail->FromName = "Tester";
$mail->AddAddress( 'joerg.reinholz@gmail.com' );
$mail->Subject = "Füßilierte Ümläutü?";
# Das geht auch:
#$mail->Subject = mb_encode_mimeheader("Füßilierte Ümläutü?");
$mail->Body = 'Füßilierte Ümläutü für 100€,
jetzt an jeder Ecke.';
$mail->send();
print_r( $mail );
Fummle mit
- mb_convert_encoding() ODER
- iconv() ODER
- utf8_encode()
einfach Deine Texte (also auch das Subjekt, ggf den Klarname in der Mailadresse ('Ödipus oedipus@example.org') in UTF-8 um, dann sollte der Mist auch bei Dir gehen.
Hinweis:
Das von Dir gezeigte Skript hat gar keinen Subject-Header gesetzt.
Du kannst Dein Glück auch mit dem mistigen WIN1251/ISO-8859-1 oder WIN1252/ISO-8859-15 (wie vor, aber immerhin mit Euro-Symbol „€“) versuchen.
Dann muss aber alles in der selben Kodierung übergeben werden.