IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Envoi d'un formulaire par e-mail


Sujet :

JavaScript

  1. #1
    F2
    F2 est déconnecté
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 27
    Points : 20
    Points
    20
    Par défaut Envoi d'un formulaire par e-mail
    bonjour à tous,

    j'ai mis en place sur mon site un formulaire html. j'ai choisi de récupérer les résultats de ce formulaire par envoi d'un e-mail, en utilisant ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form action="MAILTO:monadresse@gmail.com" method="post" enctype="text/plain">
    ...
    </form>
    un click sur le bouton Submit de mon formulaire a pour effet l'envoi d'un mail contenant le nom et la valeur de chacun des champs de mon formulaire. ma question est la suivante : est-il possible de modifier la composition de ce mail ?

    je m'explique : mon form contient un grand nombre de champ text, et ils ne sont pas tous obligatoires. je voudrais, par exemple, que le mail qui m'est envoyé contienne uniquement les champs qui ont été renseignés par le visiteur.

    est-ce possible avec cette méthode ?

    merci

    EDIT : j'ai mis ce post dans le forum JS et pas dans celui HTML, car j'imagine que JavaScript peut apporter d'autres solutions à mon problème...

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut
    salut,

    Tu peux modifier les valeurs et propriétés de tes champs avant envoie

    Donc pour ne pas que la variable apparaisse dans ton email, il faut la désactiver avant envoie puis la réctiver quelques temps après pour que l'utilisateur puisse avoir la possiblilité d'envoyer d'autres emails. Certains objets (comme les checkboxs) sont automatiquement désactivé par défaut.

    voici un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    <!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="fr" >
    <head>
    	<title>TEST</title>
    	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	<link rel="stylesheet" media="screen" type="text/css" title="montheme1" href="../theme1.css" />
    	<link rel="stylesheet" media="screen" type="text/css" href="advance.css" />
     
    	<script type="text/javascript">
     
    		var textBox1
    		var textBox2
    		var oldValue2	
     
     
    		function checkForm(){
     
    			textBox1 = document.getElementById("toto")
    			textBox2 = document.getElementById("tutu")
     
    			oldValue2 = textBox2.value //  sauvegarde de la valeur avant modification
     
     
    			// pour ne pas afficher la variable
    			if (textBox1.value == ""){
    				textBox1.disabled = true
    			}
     
    			// pour modifier la valeur
    			textBox2.value = "salut"
     
     
    			// remet les valeurs qu'il y avait avant modif
    			setTimeout(function(){reinit()},1) // appel la fonction pas tout de suite (le temps que l'email s'ouvre) => il faut peut etre augmenter la valeur
     
    			return true
    			// return false // pour refuser l'envoie
    		}
     
    		function reinit(){
    			textBox1.disabled = false
    			textBox2.value = oldValue2
    		}
     
    	</script>
     
    </head>
     
    <body>
    <form action="MAILTO:monadresse@gmail.com" method="post" enctype="text/plain" onsubmit="return checkForm()">
    <p><input type="checkbox" id="titi" name="titi" /></p>
    <p><input type="text" id="toto" name="toto"/></p>
    <p><input type="text" id="tutu" name="tutu"/></p>
    <p><input type="submit"/></p>
    </form>
    </body>
    </html>

    Peut etre qu'il est aussi possible d'envoyer un email via AJAX (si c'est le cas, c'est plus flexible comme méthode)...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 25
    Points : 32
    Points
    32
    Par défaut
    Bonjour,
    par un lien hipertext
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="mailto:to@ndd.com?subject=Formulaire&cc=cc@ndd.com&bcc=bcc@ndd.com&body=Bonjour%0AFormulaire par mail%0ANom:%0APrenom:">lien</a>
    --
    http://vgt.fr

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut
    Citation Envoyé par V.G.T Voir le message
    Bonjour,
    par un lien hipertext
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="mailto:to@ndd.com?subject=Formulaire&cc=cc@ndd.com&bcc=bcc@ndd.com&body=Bonjour%0AFormulaire par mail%0ANom:%0APrenom:">lien</a>
    --
    http://vgt.fr
    Et comment fais-tu pour changer les valeurs à afficher (à quel moment ?) ?

  5. #5
    F2
    F2 est déconnecté
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    salut,

    merci pour vos réponses.
    boboss je vais essayer ta méthode tout de suite, ça me parait suffisant pour ce que je veux faire.
    par contre j'ai pas trop compris la méthode postée par VGT.

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Cependant, je tiens à souligner que l'envoi d'email via mailto est plutôt à déconseiller si l'on a la possibilité de passer par un script serveur.
    Ensuite, mailto ne fait qu'ouvrir le client mail par défaut, le remplissage de certains champs est très dépendant du client en question. Certains, de mémoire, ne permettent que de remplir les champs to, from et message.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    F2
    F2 est déconnecté
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    la méthode proposée par boboss marche bien pour moi, c'est ce que je voulais faire. mais c'est vrai que ce n'est pas très souple.

    comment peut-on récupérer un formulaire par mail autrement qu'avec mailto ?

    j'avais vu la méthode "get", qui stocke les resultats du form dans un fichier .asp sauvegardé sur le serveur. mais cette méthode sous-entend qu'il faut aller soi-même récupérer le .asp sur le serveur, ou je me trompe ?

  8. #8
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    @Bovino: +1 ; sans compter que si l'utilisateur n'utilise qu'un webmail (par exemple gmail ou yahoo) alors vive les dégâts...

    ERE
    Quand une tête pense seule, elle devient folle.

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut
    Citation Envoyé par emmanuel.remy Voir le message
    @Bovino: +1 ; sans compter que si l'utilisateur n'utilise qu'un webmail (par exemple gmail ou yahoo) alors vive les dégâts...

    ERE
    +2

    => avec cette methode tu t'affranchis de tout problème de compatibilité avec le client... par contre il faut utiliser un langage coté serveur (php, asp, jsp, ...) => si ton serveur gère le php, ça ne devrait pas être trop difficile à implémenter : tu envoies ton formulaire vers un page .php et dans cette page tu mets le code php qui va bien pour envoyer l'email (donc le client envoie les infos au serveur par formulaire et c'est le serveur qui envoie l'email)
    => fais quelques recherches sous google tu trouveras plein d'exemples

    remarque : par contre, dans le champ emetteur de l'email, ça sera l'adresse email du serveur qui apparaitra et non pas celle de l'utilisateur.
    Aussi, il faut voir a qui s'adresse ton formulaire : si c'est a monsieur tout le monde, c'est sur que la mehode de bovino est obligatoire mais si tu es sure que la personne qui utilisera ton formulaire utilisera un logiciel de mail particulier alors tu peux utiliser ma solution (en vérifiant que c'est compatible) => ça t'evitera a apprendre un langage coté serveur (même si c'est quand même assez rapide à apprendre pour le peu de chose que tu as à faire)

Discussions similaires

  1. Envoi d'un formulaire par e-mail
    Par Papapetch dans le forum Langage
    Réponses: 21
    Dernier message: 20/03/2008, 17h36
  2. Envoi d'un formulaire par e-mail
    Par Windaube dans le forum Langage
    Réponses: 2
    Dernier message: 09/08/2007, 09h03
  3. Envoi d'un formulaire par mail
    Par Leimi dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 02/08/2007, 15h59
  4. envois d'un formulaire par e-mail
    Par adenak dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/03/2007, 15h28
  5. [Mail] Envoi date (datetime) formulaire par email
    Par loady dans le forum Langage
    Réponses: 6
    Dernier message: 13/08/2006, 21h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo