[Résolu] Expéditeur pour envoi de données formulaire en PHP

WRInaute accro
Salut,

mes visiteurs ont la possibilité de remplir un formulaire sur mon site. les données me sont envoyées par la méthode POST en appelant une page de confirmation qui récolte les variables.

De son coté, le visiteur recoit un mail de confirmation récapitulant les données saisies.

Problème : le mail généré contient en tant qu'expéditeur le nom et l'adresse email de mon serveur chez OVH !

comment faire pour que :

1) dans le mail de confirmation envoyé au visiteur, mon nom et mon adresse email soient indiqués en tant qu'expéditeur du mail ?

2) dans le mail que je recois avec les données du formulaire, le nom du visiteur et son email adresse apparaissent en tant qu'expéditeur du mail ?

Je sais que tout se passe au niveau du header mais je suis incapable de savoir comme et où intégrer ces paramètres de façon à réaliser ce que j'ai décrit ci-dessus.

Mes deux "phrases magiques" pour l instant sont :

1)
Code:
@mail($_POST['FROM'],'Reçu de votre demande de renseignements/réservation', stripslashes($message),'X-priority : 1\n');

ce qui envoie le mail de confirmation au visiteur

et

2)
Code:
@mail("mail@mail.com",'Demande de renseignement/réservation', stripslashes($message),'X-priority : 1\n');

ce qui m'envoie les données saisies

merci pour toute idée !!
a+
Hervé
 
WRInaute discret
si j'ai bien compris ton probleme, il faut faire ca:
mail($email,$sujet,$message,$header,"-femail@domain.com");
sans espace entre le -f et l'email
 
WRInaute discret
moui, et le 1 aussi par la meme occasion :)
dans le 1 tu remplace par ton email, et le 2 par celui de ton client.
le X-priority : 1, tu peut l'enlever, il est a 1 par defaut (priorité normale)
le -f fonctionne aves sendmail et postfix, si autre serveur (qmail par ex), le mieux est de tester
 
WRInaute accro
Ok, mais dans le cas du client, il me faut intégrer une variable qui provient du formulaire. Dans le deuxieme cas, c est toujours mon adresse....
 
WRInaute accro
Oui, je le sis puisque je l´utilise pour envoyer la confirmation. mais comment puis-je intégrer cette variable au header ?
 
WRInaute accro
voilou mes headers

$from="tonadresse@tondomaine.com";
$reply="ladressealaquelletuveuxquecareply";

$sujet_code = '=?iso-8859-1?q?'.str_replace('%', '=', rawurlencode($sujet)).'?=';
$mailheaders = "From: $from\r\n";
$mailheaders .= "Reply-To: $reply\r\n";
$mailheaders .= "Content-type:text/html\n";
 
WRInaute accro
tu as cliqué sur mon lien ci-dessus ??

En tout cas, ca nous permet de trouver un joli duplicate.... ;)
 
WRInaute accro
Suite des aventures :

ca marche , ca marche !

Mais (il y a toujours un mais !!) : comme je le disais dans un cas, c'est mon nom et mon email qui sont en from et reply mais dans l'autre cas, il faut que ce soit le contenu du champs FROM (saisi par le visiteur).

Comment puis-je gérer ce probleme ?

1er mail (confirmation au au visiteur, donc avec mon nom en from et reply) :

$from="monadresse@mondomaine.com";
$reply="ladressealaquelletuveuxquecareply";

2eme mail (à moi donc avec le nom du visiteur et son email saisi dans le formulaire). est-ce que je peux faire ca :

$from="$_POST[Prenom] $_POST[Nom]";
$reply="$_POST[FROM]";

merci !
a+

il faut que je rajoute :

Ai-je le droit de définir deux fois les memes variables $from et $reply dans la meme apges avec un contenu différent ? je ne le pense pas. comment peut-on gérer ceci ?
 
WRInaute accro
ca y est, j'ai réussi....pffff ! Mais en résolvant ce probleme, il s en est crée un autre :

Mes mails ne sont plus du tout formatés. Toutes les données (texte + variables saisies) sont écrites à la suite, sans espace ni retour à la ligne.

Une idée ?
 
WRInaute accro
ca venait de cette ligne effectivement. je l'ai supprimée et ca marche à nouveau..... va savoir....

Bon eh bien je vais aller mettre un joli [Résolu] sur le titre de ce post ! Merci à tout le monde ! ;)
 
WRInaute discret
herveG a dit:
ca venait de cette ligne effectivement. je l'ai supprimée et ca marche à nouveau..... va savoir....

hervéééééé! le content-type est "obligatoire" il me semble.. mets plutot Content-Type=text/plain pour envoyer du texte, et ta mise en page sera présente ;)

(rha je suis sur le pc de mon colloc, c'est Didier_S qui parle)
 
WRInaute accro
J'ai mis cette ligne :

$mailheaders .= "Content-type:text/html\n";

et ca n 'a pas marché.

je l'ai supprimée et ca a marché.

Alors, pourquoi ou pour qui est-ce obligatoire ?

Quel est le risque de ne pas mettre ce content-type alors que cela semble fonctionner sans ?
 
WRInaute discret
honnêtement je ne saurais pas trop te le dire, mais il est _recommandé_ d'utiliser un content-type. "text/plain" est celui par défaut, donc à priori ça ne change pas grand-chose de le mettre ou pas.
mais les content-type c'est comme le pinard, ca devrait être obligatoire ! :p

Didier_S alias la banane dansante
 
WRInaute accro
ca a marché (traduire : le mail a bien été envoyé), mais toute la mise en page du message a été supprimmée. comme je le disais, tout était écris a la suite sans espace et sans retour a la ligne comme souhaité. il faudrait que je teste la différence entre plain et html mais comme ca marche sans cette ligne.... je vais laisser comme ca pour l instant !! :) merci !
 
Discussions similaires
Haut