Bonjour,
J'utilise les script d'annonce script pag, le template a été modifié depuis.
je fait face à des problèmes d'envoi de mails.
Ils partent bien mais n'arrive pas car une erreur se passe au niveau du traitement du corps du message.
Voici le code par exemple pour envoyer le mail de confirmation d'annonce:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| function send_confirm($id, $array)
{
global $cache_mails_auto;
$email = stripslashes($array['ema']);
$titre = stripslashes($array['tit']);
$nom_mail = '';
$email_mail = '';
foreach($cache_mails_auto as $v)
{
if($v['type'] == 1)
{
$nom_mail = stripslashes($v['nom']);
$email_mail = stripslashes($v['email']);
$titre_mail = stripslashes($v['titre']);
$message_mail = stripslashes($v['message']);
}
}
$url = URL .'/confirmer_ann.php?code='. $id .'&email='. $email;
$titre_mail = str_replace('<titre>', $titre, $titre_mail);
$message_mail = str_replace('<titre>', $titre, $message_mail);
$message_mail = str_replace('<url>', $url, $message_mail);
//Entête du mail
$header = "From: ". $nom_mail ." <". $email_mail.">\n";
$header .= "Reply-To: ". $email_mail ."\n";
$header .= "Content-Type: text/html; charset=\"utf-8\"\n";
$header .= "Content-Transfer-Encoding: binary";
mail($email, $titre_mail, $message_mail, $header);
return true;
} |
Après avoir fait pas mal de tests, j'ai isolé les lignes qui posent problème dans mon cas:
1 2
| $message_mail = str_replace('<titre>', $titre, $message_mail);
$message_mail = str_replace('<url>', $url, $message_mail); |
Si je modifie le $message_mail en mettant du simple texte, le mail est bien reçu. En revanche si je laisse comme tel,cela semble bloquer dans l'interprétation du code.
Autres exemple, le code pour envoyer une annonce à un ami:
1 2
| $message_mail = $language['page_ann_mail_msg'] .'<a href="'. $url .'">'. $language['page_ann_mail_lien'] .'</a><br><br>'.
$language['page_ann_mail_nom'] .' : '. $name .'<br /><br />'. $language['page_ann_mail_signature']; |
Là si modifie comme ci dessous, le mail est reçu avec la phrase de la variable language.
$message_mail = $language['page_ann_mail_msg']
Mais Si je mets juste un peu de code html, comme ci dessous, ça passe plus sad
$message_mail = $language['page_ann_mail_msg'] .'<a href="'. $url .'">'. $language['page_ann_mail_lien'] .'</a><br><br>';
Une piste ? je désespère
Partager