Bonjour,
Je viens de migrer de PHP7 à PHP8 et j'ai des problèmes pour l'envoi des mails, qui fonctionnait bien avant la migration.
Je reçois bien les mails, j'ai l'objet mais le contenu est toujours vide.
Quelqu'un a une piste ?
Merci de votre aide,
Bonjour,
Je viens de migrer de PHP7 à PHP8 et j'ai des problèmes pour l'envoi des mails, qui fonctionnait bien avant la migration.
Je reçois bien les mails, j'ai l'objet mais le contenu est toujours vide.
Quelqu'un a une piste ?
Merci de votre aide,
Non, pas d'idée.
Je commencerais par vérifier que le contenu apparaît bien avec un message tout simple.
Oui, c'est ce que j'ai fait avec ça :
ou ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 $mail_expediteur="contact@xxx.com"; $mail_destinataire="vi@yyy.com"; $titre="Titre du mail"; $msg="Mon message mail"; $Entetes=[]; $Entetes[] = "MIME-Version: 1.0"; $Entetes[] = "Content-type: text/html; charset=UTF-8"; $Entetes[] = "From: <a href="mailto:contact@xxx.com">contact@xxx.com</a>"; $Entetes[] = "Reply-To:contact@xxx.com"; if(mail($mail_destinataire,"=?UTF-8?B?".base64_encode($titre)."?=",$msg,implode("\r\n",$Entetes))){ echo "ok"; } else{ echo "pas ok"; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $message="mon message mail à envoyer"; $from = "contact@xxx.com"; $to = "vi@xxx.com"; $subject = "message"; $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type: text/html; charset=UTF-8" . "\r\n"; $headers .= "From: ".$from."\r\n". "Reply-To: ".$from."\r\n" . "X-Mailer: PHP/" . phpversion(); mail($to,$subject,$message, $headers);
Dans cet exemple de code, je ne vois pas où est définie la variable $message.
PS: avertissement de sécurité.
Ceci ne peut pas fonctionner, le code est invalide !
Code : Sélectionner tout - Visualiser dans une fenêtre à part $Entetes[] = "From: <a href="mailto:contact@xxx.com">contact@xxx.com</a>";
Par "tout simple" j'entendais :
Ensuite, si c'est bon, tu peux réintroduire petit-à-petit tes éléments.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $to = 'dest@example.net'; $subject = 'Sujet de test'; $message = 'Message de test'; mail($to, $subject, $message);
Merci pour vos retour,
@Séb. :
Oui, c'est ce que j'ai mis dans la 2ème version de test :
@Binarygirl : $message est déclaré en ligne 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $message="mon message mail à envoyer"; $from = "contact@xxx.com"; $to = "vi@xxx.com"; $subject = "message"; $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type: text/html; charset=UTF-8" . "\r\n"; $headers .= "From: ".$from."\r\n". "Reply-To: ".$from."\r\n" . "X-Mailer: PHP/" . phpversion(); mail($to,$subject,$message, $headers);
J'ai créé ces tests parce mon mail original ne fonctionnait plus. Ces 2 tests fonctionnent en php7.
Partager