8797 sujets

Développement web côté serveur, CMS

Bonjour,

Suite à un formulaire je demande à ce que des infos plus un message arrive dans ma boite mail.
Lorsque je clique sur envoyer un accusé réception m'informe que tout c'est bien déroulé or, rien n'est arrivé dans ma boite mail.
Ce n'est pourtant pas le premier que je fais mais là je ne vois pas où se trouve mon erreur Smiley ohwell .
Voilà le lien du formulaire,
et voici le code de relevé d'information formulair.php

<?php

//recuperation des donnees du formulaire
$nom	    = $_POST["nom"];
$prenom    = $_POST["prenom"];
$societe     = $_POST["societe"];
$activite     = $_POST["activite"];
$adresse     = $_POST["adresse"];
$codepostal = $_POST["codepostal"];
$ville           = $_POST["ville"];
$pays          = $_POST["pays"];
$telephone  = $_POST["telephone"];
$fax 		= $_POST["fax"];
$mail          = $_POST["email"];
$plaquette  = $_POST["plaquette"];

//adresse de réception du mail 
$email = "mon mail@mon site.fr";
//sujet du mail
$sujet = "Demande d'informations ou/et d'une plaquette";
//preparation du texte du mail (\n correspond au retour à la ligne)
$message = "Vous avez recu une demande d'informations ou/et d'une plaquette de la part de : \n\n NOM : ".$nom."\n PRENOM : ".$prenom."\n SOCIETE : ".$societe."\n ACTIVITE : ".$adresse."\n ADRESSE : ".$activite."\n CODE POSTAL : ".$codepostal."\n VILLE : ".$ville."\n TELEPHONE :".$telephone."\n FAX : ".$fax."\n EMAIL : ".$mail."\n\n PLAQUETTE : ".$plaquette;

//Envoi du mail
if ( mail($email,$sujet,$message) )

{
	include("ac.php");
	
}	
	else
{
        include("err.php");
}
?>

Pouvez-vous m'aider à trouver mon erreur?
Je vous en remercie par avance Smiley smile
salut,

si je comprends bien l'accusé de reception c'est ton include("ac")?

a partir de là on peut supposer que le reste du code est bon, que le mail est envoyé mais qu'il se perd quelquepart.

faudra peut-être envoyé quelques infos dans le header.

je ne pense que ce soit un pb d'indication SMTP sinon t'aurais eu un warning du genre

a écrit :
Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in f:\program files\easyphp1-8\www\test\formulaire 1\reception-mail.php on line 16


mais il me semble qu'il y a une autre variable machinchose_from a remplir. si tes headers ne disent pas d'où provient tes mails ( et vaut mieux que ce soit une adresse valide ) les hebergeurs vont stoppé le mail...............

tous ça c'est compliqué. y a qu'a voir la longueur de certaines classes destinées a envoyé du mail. maintenant que j'ai compris comment fonctionne PHPmailer , c'est PHPmailer a toute les sauces Smiley cligne
Modifié par CPascal (28 Jan 2008 - 13:32)
Bonjour et merci CPascal,

En fait il se trouve que j'ai le même formulaire sur un autre serveur et il fonctionne.
J'ai donc pris contact avec mon hébergeur.

@+
Voila mon nouveau code qui fonctionne Smiley biggrin

<?php // Début du PHP

//recuperation des donnees du formulaire
$nom	    = $_POST["nom"];
$prenom     = $_POST["prenom"];
$message    = $_POST["message"];
$societe       = $_POST["societe"];
$activite      = $_POST["activite"];
$adresse     = $_POST["adresse"];
$codepostal = $_POST["codepostal"];
$ville           = $_POST["ville"];
$pays          = $_POST["pays"];
$telephone  = $_POST["telephone"];
$fax 		= $_POST["fax"];
$to     	= $_POST["to"];
$plaquette  = $_POST["plaquette"];

//adresse de réception du mail rattachée au domaine hébergé
$from = "monmail@mondomaine.com";  // adresse d'exemple
$entete  = "MIME-Version: 1.0\r\n";
$entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
$entete .= "From: $from <monmail@mondomaine.com>\r\n";
$entete .= "Reply-to: $from\r\n";
$entete .= "X-Mailer: PHP\r\n";
$entete .= "X-Priority: 1\r\n";
$entete .= "Return-Path: <monmail@mondomaine.com> \r\n";

//sujet du mail
$sujet = "Demande d'informations ou/et d'une plaquette\r\n";
//preparation du texte du mail (\r\n correspond au retour à la ligne)
$mge = "Vous avez recu une demande d'informations ou/et d'une plaquette de la part de : \r\n
Nom : ".$nom."\r\n 
Prenom : ".$prenom."\r\n 
Societe : ".$societe."\r\n 
Activite : ".$activite."\r\n 
Adresse : ".$adresse."\r\n 
Code-Postal : ".$codepostal."\r\n 
Ville : ".$ville."\r\n 
Telephone :".$telephone."\r\n 
Fax : ".$fax."\r\n 
Email : ".$to."\r\r\n 
Message : ".$message."\r\r\n
Plaquette demandée : ".$plaquette;

//Envoi du mail
if (mail($to,$sujet,$mge,$entete))

{
	include("ac.php");
	
}	
	else
{
        include("err.php");
}

// Fin du PHP
?>

Le problème que je rencontre maintenant (encore Smiley confus ) est que tout arrive sur la même ligne

ex: Vous avez recu une demande d'informations ou/et d'une plaquette de la part de : Nom : test Prenom : essai Societe : Testsociete Activite : webmaster Adresse : par là Code-Postal : 00000 Ville : ici Telephone :0122334455 Fax : 0 Email : mail@serveur.com Message : ceci est un test Plaquette demandée : non

malgré les retours chariot et de ligne.
Quelqu'un saurait-il me dire pourquoi?
Et qu'est-ce qui fait que d'un serveur à un autre ça ne réagit pas de la même façon?
a écrit :
$entete .= "Content-type: text/html; charset=iso-8859-1\r\n";


tu envoies donc le message au format html.

tu as essayé les <br>? ou de passer ton contenu avec nl2br ?

avec phpmailer c'est des br que je mets dans la partie html.

par contre on a la possibilité de rentrer un corps pour les clients de messagerie qui accepte le html et un corps (de texte ) pour ceux qui le veulent pas avec des retours chariot.

le probleme d'aspect me semble plus lié au client de messagerie ( outlook,thunderbird,webmail machin) qu'au serveur.

edit: autre solution mettre un content-type du genre text/plain et garder les retour chariot.
Modifié par CPascal (29 Jan 2008 - 15:20)