Bonjour à tous,
Dans mon site sous Symfony 4.4, j'utilise Swiftmailer pour envoyer les mails.
J'ai une page 'contact' où les visiteurs peuvent m'envoyer une demande.
Rien de bien sorcier : un formulaire avec 7 champs, et au bouton 'envoyer', mon action lit le formulaire, alimente la vue du mail, et procède à l'envoi.
ça marche, mais il y a juste un problème de jeu de caractères.
Swiftmailer en dev intercepte le mail, et m'affiche le champ 'raw content' qui est nickel.
Par contre, le champ 'rendered content' ne fait pas les retours à la ligne, et affiche mal les caractères accentués.
Ma vue utilisée pour le mail est en utf-8.
Swiftmailer affiche dans le header que c'est aussi de l'utf-8 :
Création du message dans mon controller : je ne précise pas le jeu de caractères, mais en le forçant en utf-8, ça ne change rienContent-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset=utf-8
Vue twig pour mon mail : ce fichier twig est en urf-8
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $message = (new \Swift_Message('contact')) ->setFrom($contact['mail']) ->setTo($this->params->get('contact_email')) ->setBody( $this->renderView( 'Visit/visit_contact_email.txt.twig', compact('contact') ), 'text/html' ) ;
Mes questions svp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Une demande de contact a été faite le {{ "now" | date("Y-m-d H:i:s") }}. Civilité : {{ contact.civilite }} Nom : {{ contact.nom }} Prénom : {{ contact.prenom }} Société : {{ contact.societe }} Téléphone : {{ contact.telephone }} Mail : {{ contact.mail }} Questions : {{ contact.questions }}
1/ Si je laisse tout comme ça, en prod, qu'est ce que je recevrai : le raw content (qui est ok) ou le rendered content (qui est foireux) ?
2/ De la même manière que ci dessus, j'ai des fonctionnalités d'envois de mails. Qu'est ce que le destinataire recevra : le raw ou le rendered, ou ça dépend de son logiciel de messagerie ?
3/ Selon les bonnes pratiques (j'ai vu tout et son contraire sur le web !), il vaut mieux envoyer du text/html ou du text/plain, de l'utf-8 ou autre chose ? Et comment m'assurer que ça sera ok en prod ?
Merci d'avance pour votre aide !
Partager