J'utilise PHPMailer 6.1.8 pour envoyer des mails en texte brut. Je veux les envoyer avec un encodage utf8 mais dans Thunderbird, les e-mails reçus ont toujours le mauvais type de contenu dans l'en-tête :

Content-Type: text/plain; charset=iso-8859-1

Mon code PHP:

function sendMail($subject, $body, $to, $from = 'mail@server1.intranet.lan', array $cc = [], array $bcc = []) {
    $mail = new PHPMailer();
    $mail->charSet = 'UTF-8';
    $mail->setLanguage = 'de';

    $mail->isSMTP();
    $mail->Host = '****';
    $mail->SMTPAuth = true;
    $mail->Username = '****';
    $mail->Password = '****';
    $mail->SMTPSecure = 'tls';
    $mail->Port = 587;
    
    $mail->setFrom($from);
    $mail->addAddress($to);

    foreach ($cc as $address) {
        $mail->addCC($address);
    }

    foreach ($bcc as $address) {
        $mail->addBCC($address);
    }

    $mail->Subject = $subject;

    $mail->Body = $body;

    $mail->send();
}
0
Andreas 18 nov. 2020 à 19:50

1 réponse

Meilleure réponse

PHP est sensible à la casse pour les noms de propriétés, alors changez ceci :

$mail->charSet = 'UTF-8';

À

$mail->CharSet = 'UTF-8';

Vous pouvez considérer cela comme un indice pour obtenir un IDE décent, car tout bon l'aurait signalé sans même que vous exécutiez le code.

1
Synchro 18 nov. 2020 à 17:02