problème fonction mail() (reception du mail avec balise)

Eléphanteau du PHP | 37 Messages

31 oct. 2007, 22:57

bonsoir,

je suis en plein apprentissage de la fonction mail.

j'ai un formulaire (contact.html) qui demande un email et un numero de colis et un bouton valider qui amene au fichier mail.php

quand je recois le mail, je le recois avec les balises apparante alors que lorsque j'affiche le resultat dans mail.php, le message s'affiche correctement.

pouvez vous m'aidez sur ce problème ?

merci d'avance

contact.html
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
<head>
	<title>contactez moi</title>
	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<form method="post" action="mail.php">
<h2> CONTACT </h2>
<p>
email du destinataire
  <input type="text" method ="post" name="votremail" />
<input type="hidden" name="objet" value="Votre colis est expedie" />
</p>
<p>Numero du colis 
  <input name="numero" type="text" id="numero" />
</p>
<p>
<input type="submit" value="envoyer" />
</p>
</form>
</body>
</html>

mail.php


<?php

/**
 *
 *
 * @version $Id$
 * @copyright 2007
 *
 */
  $objet = $_POST['objet'];
 $numero=$_POST['numero'];
$message = "bonjour, votre colis n° $numero est bien parti </br> vous pouvez suivre
son acheminement à tous moment sue le site internet de la poste </br>
<a href=\"http://www.coliposte.fr/gp/index.jsp\">CLIQUEZ ICI POUR ACCEDER AU SERVICE COLIPOSTE</a>";
$from="from eurodeal4u";
if (mail($votremail, $objet ,$message, $from))
 {
	echo $message;
}


?>


Eléphant du PHP | 445 Messages

31 oct. 2007, 23:34

Pour pouvoir envoyer un mail au format PHP il faut definir les header dans ta fonction mail()

Regarde le manuel de la fonction mail()
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

Eléphanteau du PHP | 37 Messages

01 nov. 2007, 00:36

super

merci de votre aide

j'ai encore une question

maintenant j'aimerai mettre du graphisme dans cette email. Un logo, un encadrement etc....

par quoi dois je commmencer pour faire ca

Eléphant du PHP | 445 Messages

01 nov. 2007, 00:41

C'est pareil qu'une simple page HTML.

Tu cree tes tableaux, tes images, tes liens, ...

Eléphanteau du PHP | 37 Messages

01 nov. 2007, 00:45

ok, mais je place ou le code html afin qu'il apparaisse dans l'email ?

Eléphant du PHP | 445 Messages

01 nov. 2007, 00:57

Dans ta variable $message.

Si tu mettre une image :
$message = '<img src="./spacer.gif" alt="" />';  // C'est un exemple

Eléphanteau du PHP | 37 Messages

01 nov. 2007, 01:22

j'ai reussi a integré un logo, mais il apparait sous forme de croix rouge. En sachant que tous mes tests se font en local pour le moment.

merci

Code : Tout sélectionner

$message="<p><img src='EURODEAL.jpg' /></p> bonjour, votre colis n° $numero est bien parti <br/> vous pouvez suivre son acheminement à tous moment sue le site internet de la poste </br> <a href=\"http://www.coliposte.fr/gp/index.jsp\">CLIQUEZ ICI POUR ACCEDER AU SERVICE COLIPOSTE</a>";

Eléphanteau du PHP | 37 Messages

01 nov. 2007, 01:30

c'est ok

j'ai pris un logo stocké dur le serveur de mon site et tout fonctionne

merci encore

Eléphanteau du PHP | 37 Messages

01 nov. 2007, 01:53

Encore une question a propos de la fonction mail()

quand je fais un test sur un outlook tout est nickel
sur hotmail, la balise <br> ne rempli pas sa fonction
sur gmail la balise <br> rempli sa fonction à moitié


comment faire pour que ca fonctionne sur toute les messageries ?

<style type="text/css">
<!--
body {

}
-->
</style><?php

/**
 *
 *
 * @version $Id$
 * @copyright 2007
 *
 */

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

  $objet = $_POST['objet'];
 $numero=$_POST['numero'];
$message="<p><img src='http://membres.lycos.fr/agendaperso/site/EURODEAL.jpg' /></p>
<font face=\"arial\" color=#0000000 size=4>Bonjour, votre colis n° $numero est bien parti </br> vous pouvez suivre
son acheminement à tous moment sue le site internet de la poste </br></br>
<a href=\"http://www.coliposte.fr/gp/index.jsp\">CLIQUEZ ICI POUR ACCEDER AU SERVICE COLIPOSTE</a>";

$from="from eurodeal4u";
if (mail($votremail, $objet ,$message, $headers))
 {
	echo $message;
}


?>


Eléphant du PHP | 445 Messages

01 nov. 2007, 02:19

Tu utilises dans ton message la balise </br>
Tu devrais l'ecrire comme ceci : <br /> ou <br>

Eléphanteau du PHP | 37 Messages

01 nov. 2007, 11:03

bonjour

un dernier petit soucis

j'ai mis une ligne
$headers ='From: Eurodeal4u <[email protected]>'."\r\n";
mais ca marche pas. a chaque reception de mail cela n'est pas ecrit
<style type="text/css">
<!--
body {

}
-->
</style><?php

/**
 *
 *
 * @version $Id$
 * @copyright 2007
 *
 */
$headers ='From: Eurodeal4u <[email protected]>'."\r\r";
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

$objet = $_POST['objet'];
$numero=$_POST['numero'];
$message="<p><img src='http://membres.lycos.fr/agendaperso/site/EURODEAL.jpg' /></p>
<font face=\"arial\" color=#0000000 size=4>Bonjour, votre colis n° $numero est bien parti. <br> vous pouvez suivre
son acheminement à tous moment sur le site internet de la poste <br><br>
<a href=\"http://www.coliposte.fr/gp/index.jsp\">CLIQUEZ ICI POUR ACCEDER AU SERVICE COLIPOSTE</a>";


if (mail($votremail, $objet ,$message, $headers))
 {
	echo $message;
}


?>


Eléphant du PHP | 445 Messages

01 nov. 2007, 16:10

C'est normal tu as oublié un point devant ton 2eme $header=
$headers ='From: Eurodeal4u <[email protected]>'."\r\r";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

Eléphanteau du PHP | 37 Messages

01 nov. 2007, 17:39

super, comme quoi ca ne tient pas à grand chose parfois

par contre, à quoi servent ces points ?


merci

Eléphant du PHP | 445 Messages

01 nov. 2007, 18:47

$texte = $texte . " etc...";
// equivaut à
$texte .= " etc..." ;

Eléphanteau du PHP | 37 Messages

01 nov. 2007, 19:31

merci a vous. j'ai bien compris

j'ai pris un compte chez ovh et la ou je croyais mes problèmes resolus, le script ne marche pas

pourtant le phpinfo() de ovh indique que je peux le faire

http://www.eurodeal4u.com/phpinfo

pour quelle raison ca marche tres bien en local mais pas sur ovh ?