Aller au contenu

problème avec un script mail


tchouf

Sujets conseillés

bonjour, je suis tout débutant dans le language php, quelqu'un d'autre a (ou avait) un problème avec ce même script trouvé sur internet, mais le mien est différent

le script fonctionne sans problème, sauf que je ne reçois pas l'adresse email de l'expéditeur, mais bien mon adresse email qui est mariée à mon espace chez mon provider, car je ne l'ai pas indiquée dans mon script ...

la faute est elle dans le script, ou bien chez mon provider qui refuserait de mettre une autre adresse que la mienne comme expéditeur?

voici mon script, merci pour vos lumières


<?php
// Dans la ligne qui suit, remplacer webmaster_AT_domaine.tld par l'adresse email du webmaster, à laquelle les messages devront être envoyés
$email_webmaster = "christiane_AT_scarlet.be";
// === traitement des données du formulaire ============================================================
if (isset($_POST["envoyer"])){
// le formulaire a été soumis
$etat = "erreur";
// Valeur par défaut. Prendra la valeur "ok" s'il n'y a pas d'erreur
// --- mise en forme des champs saisis dans le formulaire lors de sa soumission ---
if (isset($_POST["email_expediteur"])) {
$_POST["email_expediteur"]=trim(stripslashes($_POST["email_expediteur"]));
}
if (isset($_POST["titre"])) {
$_POST["titre"]=trim(stripslashes($_POST["titre"]));
}
if (isset($_POST["message"])) {
$_POST["message"]=trim(stripslashes($_POST["message"]));
}
// --- test de la validité des champs saisis ---
if (empty($_POST["email_expediteur"])) {
// il manque l'email de l'expéditeur
$erreur="! ! ! Saisissez votre adresse email... ! ! !";
}
if (empty($_POST["titre"])) {
// il manque à qui s'adresse le message
$erreur="! ! ! Saisissez à qui s'adresse ce message ... ! ! !";
}
elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email_expediteur"])){
// l'adresse e-mail n'est pas valide
$erreur=" ! ! ! Votre adresse e-mail n'est pas valide... ! ! !";
}
elseif (empty($_POST["message"])) {
// le message est vide
$erreur="! ! ! Saisissez un message... ! ! !";
}
else {
// --- tous les champs sont correctement remplis: on pourra envoyer le mail ---
$etat="ok";
}
}
else {
// --- le formulaire n'a pas été soumis ---
$etat="attente";
}
// === fin de traitement des données du formulaire =======================================================
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="fr" lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Formulaire de contact</title>
</head>
<body>
<h1>Nous contacter</h1>
<?php
if ($etat!="ok"){// le formulaire n'a pas été soumis, ou soumis avec une erreur
if ($etat=="erreur"){
//le formulaire a été soumis avec une erreur
echo "<p><strong>".$erreur."</strong></p>\n";
// afficher le message d'erreur
}
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
<p><label for="email_expediteur">Votre adresse e-mail (obligatoire):</label><br />
<input type="text" size="40" name="email_expediteur" id="email_expediteur" value="<?php
if (!empty($_POST["email_expediteur"])) {
// l'adresse email de l'expéditeur a été saisie: la réafficher
echo htmlspecialchars($_POST["email_expediteur"],ENT_QUOTES);
}
?>" />
</p>
<p>
<label for="titre">Message pour (indiquez à qui s'adresse ce message) </label>
<br />
<input type="text" size="40" name="titre" id="titre" value="<?php
if (!empty($_POST["titre"])) {
// le titre du message a été saisi: le réafficher
echo htmlspecialchars($_POST["titre"],ENT_QUOTES);
}
?>" />
</p>
<p><label for="message">Message (obligatoire): ! POUR L'INSTANT, RAJOUTEZ VOTRE ADRESSE EMAIL DANS LE MESSAGE SVP !</label><br />
<textarea name="message" id="message" cols="40" rows="5"><?php
if (isset($_POST["message"])) {
// le message a été saisi: le réafficher
echo htmlspecialchars($_POST["message"],ENT_QUOTES);
}
?></textarea>
</p>
<p><input type="submit" name="envoyer" value="Envoyer" />
</p>
</form>
<?php
}
else {
// le formulaire a été soumis sans erreur, on envoie le mail
$entete = "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">\n";
$entete .= "MIME-Version: 1.0";
if (@mail($email_webmaster,$_POST["titre"] ,$_POST["message"],$entete)){
// mail envoyé
echo "Votre message a été envoyé.<br />\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Envoyer un autre message...</a>\n";
}
else {
// erreur lors de l'envoi du mail
echo "Un problème s'est produit lors de l'envoi du message.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a>\n";
}
}
?>
</body>
</html>
</body>
</html>

Edit Modérateur : merci d'utiliser le BBCode pour mieux présenter son post :)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour tchouf,

J'ai testé ton script qui fonctionne normalement. Je n'ai pas une adresse expéditeur comportant le nom de domaine du site. La fonction d'envoi du mail est correctement programmée.

Donc l'explication la plus probable est que tu as un hébergeur qui n'autorise pas cette fonction dans la totalité : l'adresse expéditeur ne peut être changée.

J'ai eu le cas avec Lycos en hébergement gratuit. :(

Avec un payant, le problème a disparu :rolleyes:

Bon travail pour la suite ;)

Lien vers le commentaire
Partager sur d’autres sites

merci beaucoup pour ta réponse, je m'en doutais un peu que c'était mon provider, le blème, c'est que c'est mon fournisseur d'accès à internet, et que donc je paye! (même cher)

si jamais tu pouvais facilement ajouter ou transformer une ligne de ce code, pour que l'adresse email se retrouve dans le message, ça serait vraiment sympa ... car c'est ça qui m'importe, du moment que je peux la lire quelque part, ça sera bien pour moi

merci d'avance si t'as 5 min à me consacrer :thumbsup:

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...