Bonjour,
Je n'arrive pas à encoder en UTF-8 malgré que je pense ne pas avoir fait d'erreur:
Mon formulaire
<?php
require 'vendor/autoload.php';
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';
require 'PHPMailer/src/Exception.php';
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv->load();
$mail = new PHPMailer(true);
try {
$mail->isSMTP();
$mail->Host = $_ENV['MAIL_HOST'];
$mail->Port = $_ENV['MAIL_PORT'];
$mail->SMTPAuth = true;
$mail->Username = $_ENV['MAIL_USERNAME'];
$mail->Password = $_ENV['MAIL_PASSWORD'];
$mail->SMTPSecure = $_ENV['MAIL_ENCRYPTION'];
$to = $_ENV['MAIL_USERNAME'];
$mail->addAddress($to);
$name = htmlspecialchars($_POST['name']);
$email = htmlspecialchars($_POST['email']);
$url = htmlspecialchars($_POST['url']);
$ville = htmlspecialchars($_POST['ville']);
$subject = htmlspecialchars($_POST['subject']);
$message = htmlspecialchars($_POST['message']);
$message = nl2br($message);
$objet = 'Courrier pour la demande de chanteur';
$codehtml =
'<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<h3>Courrier pour la demande de chanteur</h3>
<p></p>
<p>Nom complet: ' . $name . '</p>
<p>E-mail: ' . $email . '</p>
<p>Ville: ' . $ville . '</p>
<p>Sujet: ' . $subject . '</p>
<p>Message:<br><br> ' . $message . '</p>
<p>URL vidéo: ' . $url . '</p>
</body></html>';
$headers = 'From:' . $siteTitle . "\r\n";
$headers .= 'Bcc:' . $emailAdministrator . "\r\n";
$headers .= 'Reply-To:' . $noreply . "\r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-Type: text/html; charset=UTF-8' . "\r\n";
$headers .= 'Content-Transfer-Encoding: 8bit';
$mail->isHTML(true);
$mail->Subject = $subject;
$mail->Body = $codehtml;
$mail->AltBody = strip_tags($message);
$mail->send();
echo 'L\'email a été envoyé avec succès.';
} catch (Exception $e) {
echo 'Une erreur s\'est produite lors de l\'envoi de l\'email : ', $e->getMessage();
}
et ma balise form
<form id="contactForm" name="sentMessage" novalidate="novalidate" method="post" accept-charset="UTF-8">
les mails arrivent mal encodés : à çé etc.
Je vous remercie pour votre aide