Deux petites question avec des mails en PHP
Posté : 23 avr. 2010, 17:50
Bonjour à tous,
j'ai deux petites questions à vous soumettre concernant d'une part, les images dans les mails et d'autre part, des caractères du style "\r\n" qui se mettent dans les mail envoyés.
Première question :
J'ai lu qu'il y avait deux solution pour mettre des images dans un mail envoyer en PHP :
Lorsque je rédige mon mail dans le formulaire fait à cet effet, je met la balise <img> avec un lien absolu.
Problème : l'image ne s'affiche pas or, si j'ulitise d'autre balises HTML comme <u> ou <p> ça marche sans souci.
Deuxième question :
Lorsque j'envoie un mail toujours avec le même formulaire, des "\r" et des "\n" s'ajoutent clandestinement au mail.
Exemple de mail reçu :
Merci d'avance à tous et à toutes
Compléments :
le formulaire ainsi que le script d'envoi du mail se trouve sur la même page, la voici :
j'ai deux petites questions à vous soumettre concernant d'une part, les images dans les mails et d'autre part, des caractères du style "\r\n" qui se mettent dans les mail envoyés.
Première question :
J'ai lu qu'il y avait deux solution pour mettre des images dans un mail envoyer en PHP :
- Joindre l'image au mail
- Mettre un lien absolu
Lorsque je rédige mon mail dans le formulaire fait à cet effet, je met la balise <img> avec un lien absolu.
Problème : l'image ne s'affiche pas or, si j'ulitise d'autre balises HTML comme <u> ou <p> ça marche sans souci.
Deuxième question :
Lorsque j'envoie un mail toujours avec le même formulaire, des "\r" et des "\n" s'ajoutent clandestinement au mail.
Exemple de mail reçu :
Comment faire pour les enlever?\r\n
\r\nHello world !\r\n
Merci d'avance à tous et à toutes
Compléments :
le formulaire ainsi que le script d'envoi du mail se trouve sur la même page, la voici :
<?php
if(!isset($_POST['title']) || !isset($_POST['contenu']))
{
?>
<form action="includes/newsletter.php" method="post">
Titre : <br><input type="text" size="40" name="title">
<br>
<br>
Le contenu : <br>
<textarea cols="90" rows="20" name="contenu"></textarea><br>
<input type="reset" value="Effacer tout"> <input type="submit" value="Envoyer">
</form>
<?php
}
elseif( isset($_POST['title']) && isset($_POST['contenu']))
{
include_once("fonction.inc.php");
connect();
$titre = mysql_real_escape_string(stripslashes($_POST['title']));
$contenu = wordwrap(mysql_real_escape_string(stripslashes($_POST['contenu'])), 70);
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$query = mysql_query("SELECT mail FROM ts_newsletters WHERE 1") or exit(mysql_error());
$i = 0;
while($mail = mysql_fetch_array($query))
{
if($i == 0)
{
$destinataire .= $mail['mail'] . ',';
}
else
{
$destinataire .= ' ' . $mail['mail'] . ',';
}
$i++;
}
mysql_close();
if(mail($destinataire, $titre, $contenu, $headers))
{
redirect('../admin.php?action=mail_ok');
}
else
{
redirect('error.php?error=unable_send_mail');
}
}
?>