Pb avec fonction mail()

victorvivic Messages postés 7 Date d'inscription samedi 5 janvier 2013 Statut Membre Dernière intervention 5 janvier 2013 - 11 déc. 2005 à 16:39
mageonyme Messages postés 121 Date d'inscription samedi 10 janvier 2004 Statut Membre Dernière intervention 1 décembre 2009 - 26 déc. 2005 à 01:38
Bonjour,

J'ai créé un formulaire d'envoi de cartes de voeux avec un cadre de saisie de texte et une image à choisir. Le destinataire reçoit un petit texte, et en dessous l'image.

J'ai 2 problèmes :

1°) J'ai fait l'essai chez différents amis chez différents hébergeurs, et ça fonctionne bien sauf chez Free. Le destinataire reçoit bien un message, mais il est vide !

2°) Lorsque l'expéditeur saute une ligne dans le cadre de saisie du texte, ce saut de ligne n'est pas répercuté dans le mail reçu par le destinataire. Le texte est écrit en continu.

Voilà, je compte vraiment sur votre aide.
Merci d'avance.

Vic.

8 réponses

J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
11 déc. 2005 à 17:06
Salut.





1° => va voir ma première source

2° => utilise la fonction nl2br() pour transformer les sut de ligne texte (\n) par des sauts de lignes HTML
\n.



Voili
0
victorvivic Messages postés 7 Date d'inscription samedi 5 janvier 2013 Statut Membre Dernière intervention 5 janvier 2013
11 déc. 2005 à 18:49
Salut et merci pour cette réponse rapide.

Pour le 2° point, ça fonctionne très bien maintenant. Merci bcp.

Pour le 1° point, j'ai utilise l'ex de ta source. Alors le message dans free n'est plus vide, mais voilà le message que je reçois. Aurais tu une solution ?



MIME-Version: 1.0
Content-Type: multipart/related; boundary="-----=222934dbbee9cc68bdf8c0a72297d491"

Si tu lis ça, c'est que tu agent de mail est trop-vieux ;)

-------=222934dbbee9cc68bdf8c0a72297d491
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit

<html>
<head>
<title>Mail2</title>
</head>



&nbsp;Image 1 :
















&nbsp;re-Image 1 :






</html>

-------=222934dbbee9cc68bdf8c0a72297d491
Content-Transfer-Encoding: base64
Content-ID: <d7d92260fe2c5d2ff18c037e30039232creasiteconcept.com>

-------=222934dbbee9cc68bdf8c0a72297d491
Content-Transfer-Encoding: base64
Content-ID: <7e5884da867e5e377cafc2101acf796acreasiteconcept.com>

-------=222934dbbee9cc68bdf8c0a72297d491--
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
11 déc. 2005 à 19:02
Non, aucune idée.
0
mageonyme Messages postés 121 Date d'inscription samedi 10 janvier 2004 Statut Membre Dernière intervention 1 décembre 2009
11 déc. 2005 à 23:51
bizarre je croyais que la fonction sur free s'était email() et non mail()...

sinon peut mettre des trucs comme ça dans le header :

// 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=iso-8859-1' . "\r\n";

// En-têtes additionnels
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Anniversaire ' . "\r\n";
$headers .= 'Cc: anniversaire_archive@example.com' . "\r\n";
$headers .= 'Bcc: anniversaire_verif@example.com' . "\r\n";

// Envoi
mail($to, $subject, $message, $headers);

ça devrait marcher
pour plus d'infos : http://fr2.php.net/manual/fr/function.mail.php
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
12 déc. 2005 à 00:07
En relisant le tout, je viens d'avoir une idée...



Bon ! C'est un peu léger :



Contrairement à ce qui est dit dans fr.php.net, et contrairement à mon
exemple, n'envoi que le corps du HTML (...).

Car beaucoup de boite mail sont des pages web (hotmail, gmail,...)
hors, pour afficher le message, elles éliminent l'entête html. Donc
tout ce que tu mettras dedans sera perdu !



Par contre, je craint que ça ne résolve pas ton problème.

Deux solutions :



1. free ajoute ces propres entêtes au mail (ne confonds pas avec les
entêtes html). et dans ce cas, je ne vois pas trop comment faire



2. remplace mes sauts de ligne (define('NL',"\n");) par define('NL',"\r\n");





mageonyme => merci, tu m'a fourni la deuxième idée. Par contre, le
problème ici n'est pas d'envoyer avec free, mais de recevoir !?!
(et la fonction mail a été réactivée sous free)





voilà, A+
0
victorvivic Messages postés 7 Date d'inscription samedi 5 janvier 2013 Statut Membre Dernière intervention 5 janvier 2013
12 déc. 2005 à 12:42
Merci J_G pour ton aide, j'ai pas encore essayé ce que tu m'as recommandé, mais je vais le faire.

En fait je me suis rendu compte que dès que je mets le code MIME ($headers = "MIME-Version: 1.0\r\n";) dans la fonction mail(), le message est vide chez free. Et quand je l'enlève, le message n'est plus vide, mais contient le code HTML.

Est il possible d'envoyer des mails HTML chez Free ??
0
mageonyme Messages postés 121 Date d'inscription samedi 10 janvier 2004 Statut Membre Dernière intervention 1 décembre 2009
14 déc. 2005 à 22:40
si ce que je t'ai donné ça ne marche pas, c'est que je ne sais plus comment j'ai fait, mais je l'ai déjà fait...
chez online et chez free...
donc reprend espoir...
c'est possible !!!
mais comment ?
0
mageonyme Messages postés 121 Date d'inscription samedi 10 janvier 2004 Statut Membre Dernière intervention 1 décembre 2009
26 déc. 2005 à 01:38
au fait merci J_G, fonction mail(); bien utile; bizarre qu'il ne l'est pas activée avant...
0
Rejoignez-nous