Bonjour, j'avais créé une fonction sendMail() qui fonctionnait bien sur un de mes autres sites, et là j'essaie de la mettre en place sur un autre site par un simple copier coller .... ça ne fonctionne pas ... J'ai pourtant essayé de réécrire les variables, modifier les textes en faisant des textes basiques, j'ai même écrit en toutes lettres les éléments dont a besoin la fonction sendMail() ... ça ne s'envoi pas donc je pense que le problème se situe dans la fonction même, elle est pourtant toute basique :
Et, voici les mails qui devraient s'envoyer, je reprécise que j'ai déjà essayé de mettre du texte en brut à la place des variables, etc ... rien n'y fait .
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 /* Envoi d'un mail au format HTML */ function sendMail($subject, $message, $to, $toName, $from, $fromName) { // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type: text/html; charset=utf-8" . "\r\n"; // En-têtes additionnels $headers .= "To: " . $toName . " <" . $to . ">" . "\r\n"; $headers .= "From: " . $fromName . " <" . $from . ">" . "\r\n"; $headers .= "Cc: " . $to . "\r\n"; $headers .= "Bcc: " . $to . "\r\n"; if (mail($to, $subject, $message, $headers)) { return true; } else { return false; } }
ça m'affiche donc le message d'erreur : Erreur serveur : Le mail n'a pas pû être envoyé suite à un incident technique ...
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
17
18
19 $message=nl2br(htmlspecialchars(addslashes($message))); // Mail envoyé à l'utilisateur $messageUser='<p>Bonjour mme, m. '.$name.',<br /><br />Vous avez envoyé un message à <strong>'.TITLE.' " <a href="mailto:'.MAIL_ADMIN.'">'.MAIL_ADMIN.' "</a></strong> :</p> <h4 style="color:#990000; text-decoration:underline; text-align:center;">'.$subject.'</h4> <p style="color:#0033ff">'.$message.'</p> <p><i>Merci de nous avoir contacté, nous vous répondrons dans les plus brefs délais .</i></p>'; // Mail envoyé à l'administrateur $messageAdmin='<p>Bonjour, '.MAIL_NAME.',<br /><br />Vous avez reçu un nouveau message de la part de <strong>'.$name.' " <a href="mailto:'.$mail.'">'.$mail.' "</a></strong> :</p> <h4 style="color:#990000; text-decoration:underline; text-align:center;">'.$subject.'</h4> <p style="color:#0033ff">'.$message.'</p> <p><i>Afin de lui répondre, il vous suffit de répondre à ce mail ...</i></p>'; if (sendMail($subject, $messageAdmin, MAIL_ADMIN, MAIL_NAME, $mail, $name)==true && sendMail($subject, $messageUser, $mail, $name, MAIL_ADMIN, TITLE)==true) { //enregistrement dans bdd mais on s'en fiche pour le moment ... } else { $erreur=1; info("false","Erreur serveur : Le mail n'a pas pû être envoyé suite à un incident technique ... Pour renvoyer le message, actualisez la page puis cliquez sur 'ok' ."); }
Merci beaucoup de votre aide ... comme quoi, on peut développer des fontionnalités complexes sans encombres, et des simples qui nous font perdre un temps fou et précieux .
Edit : toutes les variables sont envoyées par un formulaire au préallable et extraites par la fonction extract();
Edit 2 : je précise aussi que j'ai testé avec une simple fonction mail() et là le message s'envoi![]()
Partager