mail en php

Répondre
delfyno
le 21/10/2010 à 22:42
delfyno
Bonjour,
J'ai crée un site et lorsque je reçois un mail, je ne vois pas l'expéditeur du méssage. En fait lorsque je vais dans ma boite mail, je vois bien le message mais je vois message de moi envoyé à moi et c'est embêtant car je ne peux répondre à celui qui à envoyé le message
message de "moi@monemail.com" envoyé à "moi@monemail.com".
Comment puis je résoudre ce problème s'il vous plaît?
Merci d'avance
moogli
le 22/10/2010 à 00:04
moogli
Salut,

Regarde la doc de la fonction mail et surtout les exemples avec les entetes additionnelles c'est la que tu indique l'expediteur que recupere dans le formulaire de contact !

@+
Il en faut peu pour être heureux !!!!!
delfyno
le 22/10/2010 à 11:33
delfyno
Voici mon code, vous pouvez me dire ce qui ne va pas s'il vous plaît
<?php <?php 
ini_set("SMTP","smtp.ifrance.com");
/* ****************************CONFIGURATION */
// destinataire est votre adreese mail. Pour envoyer à plusieurs à la fois, séparez par une virgule
$destinataire = 'mon adressemail@hotmail.com';

// copie ? (envoie une copie au visiteur)
$copie = 'non'; //'oui' ou 'non'

// messages de confirmation
$message_envoye = "Votre message nous est bien parvenu !<br> Vous allez être automatiquement rédirigé à <b>l'accueil</b> !";
$message_non_envoye = "L'envoie du message a échoué, veuillez réessayer SVP";

// messages d'erreur du formulaire
$message_erreur_formulaire = "Vous devez d'abord <a href=\"contact2.php\">envoyer le formulaire</a>.";
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

/* ***********************************************
FIN DE LA CONFIGURATION */

//on teste si le formulaire a été soumis
if (!isset($_POST['envoi'])) {
//formulaire non envoyé
echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
}
else {
//cette fonction sert à nettoyer et enregistrer un texte
function Rec($text) {
$text = trim($text); //éfface les espaces vides au début et à la fin du texte
if (1 === get_magic_quotes_gpc()) {
$stripslashes = create_function('$txt', 'return stripslashes($txt);');
}
else {
$stripslashes = create_function('$txt', 'return $txt;');
}

//magic quote ?
$text = $stripslashes($text);
$text = htmlspecialchars($text, ENT_QUOTES); //converts to string width " and ' as well
$text = nl2br($text);
return $text;
};

// cette fonction sert à vérifier la syntaxe d'un email
function IsEmail($email) {
$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
return (@eregi($pattern,$email)) ? true : false;
};

//formulaire envoyé, on récupère tous les champs
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';

//on va vérifier les variables et l'email
$email = (IsEmail($email)) ? $email : ''; //soit l'email est vide si érroné, soit il vaut l'email rentré

if (($nom != '') && ($email != '') && ($message != '')) {
//les 4 variables sont remplies, on génère puis envoie le mail
$headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";

//envoyer une copie au visiteur
if ($copie == 'oui') {
$cible = $destinataire.','.$email;
}
else {
$cible = $destinataire;
};
// Remplacement de certains caractères spéciaux
$message = str_replace("&#039;","'",$message);
$message = str_replace("&#8217;","'",$message);
$message = str_replace("&quot;",'"',$message);
$message = str_replace('<br>','',$message);
$message = str_replace('<br />','',$message);
$message = str_replace("&lt;","<",$message);
$message = str_replace("&gt;",">",$message);
$message = str_replace("&amp;","&",$message);

// Envoi du mail
if (mail($cible, $objet, $message, $headers)) {
echo '<p>'.$message_envoye.'</p>'."\n";
}
else {
echo '<p>'.$message_non_envoye.'</p>'."\n";
};

}
else {
// une des 3 variables (ou plus) est vide
echo '<p>'.$message_formulaire_invalide.' <a href="contact2.php">Retour au formulaire</a></p>'."\n";
};
}; //fin du if (!isset($_POST['envoi'])) ?>
moogli
le 22/10/2010 à 13:40
moogli
ligne 59 à 61 a priori c'est bon a voir si ces champs existe bien dans le formulaire !

@+
Il en faut peu pour être heureux !!!!!
delfyno
le 22/10/2010 à 22:26
delfyno
c'est bon ça marche sauf que je reçois les message en double maintenant. Voici mon code
<?php 	
// copie ? (envoie une copie au visiteur)
$copie = 'non'; //'oui' ou 'non'

// messages de confirmation
$message_envoye = "Votre message nous est bien parvenu !<br> Vous allez être automatiquement rédirigé à <b>l'accueil</b> !";
$message_non_envoye = "L'envoie du message a échoué, veuillez réessayer SVP";

// messages d'erreur du formulaire
$message_erreur_formulaire = "Vous devez d'abord <a href=\"contact2.php\">envoyer le formulaire</a>.";
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

/* ***********************************************
FIN DE LA CONFIGURATION */

//on teste si le formulaire a été soumis
if (!isset($_POST['envoi'])) {
//formulaire non envoyé
echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
}
else {
//cette fonction sert à nettoyer et enregistrer un texte
function Rec($text) {
$text = trim($text); //éfface les espaces vides au début et à la fin du texte
if (1 === get_magic_quotes_gpc()) {
$stripslashes = create_function('$txt', 'return stripslashes($txt);');
}
else {
$stripslashes = create_function('$txt', 'return $txt;');
}

//magic quote ?
$text = $stripslashes($text);
$text = htmlspecialchars($text, ENT_QUOTES); //converts to string width " and ' as well
$text = nl2br($text);
return $text;
};

// cette fonction sert à vérifier la syntaxe d'un email
function IsEmail($email) {
$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
return (@eregi($pattern,$email)) ? true : false;
};

//formulaire envoyé, on récupère tous les champs
$nom = $_POST['nom'];
$email = $_POST['email'];
$objet = $_POST['objet'];
$message = $_POST['message'];

//on va vérifier les variables et l'email
$email = (IsEmail($email)) ? $email : ''; //soit l'email est vide si érroné, soit il vaut l'email rentré

if (($nom != '') && ($email != '') && ($message != '')) {
$msg = "Nom:\t$nom\n";
$msg .= "E-mail:\t$email\n";
$msg .= "Objet:\t$objet\n";
$msg .= "Message:\t$message\n\n";

$destinataire = "piresomurphy@hotmail.com";
$subject = "zero.lescigales.org";

$mailheaders = "From: My Web Site <> \n";
$mailheaders .= "Reply-To: $sender_email\n\n";

mail($destinataire, $subject, $msg, $mailheaders);

// Remplacement de certains caractères spéciaux
$message = str_replace("&#039;","'",$message);
$message = str_replace("&#8217;","'",$message);
$message = str_replace("&quot;",'"',$message);
$message = str_replace('<br>','',$message);
$message = str_replace('<br />','',$message);
$message = str_replace("&lt;","<",$message);
$message = str_replace("&gt;",">",$message);
$message = str_replace("&amp;","&",$message);

// Envoi du mail
if (mail($destinataire, $subject, $msg, $mailheaders)) {
echo '<p>'.$message_envoye.'</p>'."\n";
}
else {
echo '<p>'.$message_non_envoye.'</p>'."\n";
};
}
else {
// une des 3 variables (ou plus) est vide
echo '<p>'.$message_formulaire_invalide.' <a href="contact2.php">Retour au formulaire</a></p>'."\n";
};
}; //fin du if (!isset($_POST['envoi']))
?>
moogli
le 23/10/2010 à 00:30
moogli
ben c'est normal tu utilise deux fois la fonction mail (ligne 66 et 79)

vire le 1er et ça ira mieux ;)

@+
Il en faut peu pour être heureux !!!!!
delfyno
le 23/10/2010 à 04:40
delfyno
ah oui c'est vrai, je n'ai pas fais gaffe.
Je te remercie et je remercie aussi tous ceux qui m'ont répondu
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours