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 :

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; }
	}
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
16
17
18
19
$message=nl2br(htmlspecialchars(addslashes($message)));
// Mail envoy&eacute; à l'utilisateur
$messageUser='<p>Bonjour mme, m. '.$name.',<br /><br />Vous avez envoy&eacute; un message &agrave; <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&eacute;, nous vous r&eacute;pondrons dans les plus brefs d&eacute;lais .</i></p>';
// Mail envoy&eacute; à l'administrateur
$messageAdmin='<p>Bonjour, '.MAIL_NAME.',<br /><br />Vous avez re&ccedil;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&eacute;pondre, il vous suffit de r&eacute;pondre &agrave; 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&ucirc; &ecirc;tre envoy&eacute; suite &agrave; un incident technique ... Pour renvoyer le message, actualisez la page puis cliquez sur 'ok' ."); 
}
ça m'affiche donc le message d'erreur : Erreur serveur : Le mail n'a pas p&ucirc; &ecirc;tre envoy&eacute; suite &agrave; un incident technique ...

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