Publié le 03/07/2010
Auteur fobec
Réseaux sociaux
0 partages
0 tweets
0 plus
1 commentaires

Envoyer un email a partir d'un formulaire

A partir d'un formulaire, la fonction mailto permet à un internaute d'envoyer un email sans passer par un script PHP. L'application de messagerie par défaut (Outlook, Thunderbird, IncrediMail, ..) est automatiquement ouvert avec un message déjà remplie.

Formulaire de contact sans PHP

Comprise par tous les navigateurs, mailto ouvre le client de messagerie par défaut. Ce n'est pas une fonction Javascript à proprement parler, il s'agit d'un attribut de lien qui s'utilise le plus souvent dans une page HTML sous la forme:
<a href="mailto:user@domain.com?subject= sujet">Envoyer un email</a>

La syntaxe pour ajouter l'adresse du destinataire, le titre et le message:
mailto:adresse du destinataire?subject=titre du message&body=message

Formulaire HTML d'envoi d'un email

ajax-mailtoL'internaute saisie son message dans un formulaire HTML classique. Le click sur le bouton envoyer déclenche l'action Javascript sendMail.




Code HTML du formulaire
Afin d'afficher un formulaire comprenant une adresse email, le sujet et le contenu du message, on peut utiliser le code HTML suivant:
<form method="" action="javascript:sendMail()">
    <table border="0" cellspacing="1" width="400">
        <tr>
            <td width="98">Destinataire</td>
            <td width="295">
                <input type="text" id="edTo" size="39"></td>
        </tr>
        <tr>
            <td width="98">Sujet</td>
            <td width="295">
                <input type="text" id="edSubject" size="39"></td>
        </tr>
        <tr>
            <td width="98">Message</td>
            <td width="295">
                <textarea rows="3" id="edBody" cols="33"></textarea></td>
        </tr>
    </table>
    <br>
    <input type="submit" value="Envoyer" >
</form>

Fonctions javascript d'envoi du message

Au lieu d'appeler directement la fonction mailto dans le post du formulaire, la fonction send Mail() effectue les opérations suivantes:
- tester les données saisies par l'internaute dans le formulaire,
- encoder les textes pour respecter le format des URL,
- rediriger l'internaute vers le logiciel de messagerie.

Note : La fonction sendMail() est à coller au dessus du code HTML du formulaire

<script language="Javascript" type="text/javascript">
    function sendMail() {
        <!--Tester les donnees-->
        if (document.getElementById("edTo").value.length==0) {
            alert("Saisir l'adresse du destinataire !!!");
            return;
        }
        if (document.getElementById("edSubject").value.length==0) {
            alert("Saisir le titre !!!");
            return;
        }
        if (document.getElementById("edBody").value.length==0) {
            alert("Ecrire le message !!!");
            return;
        }
        <!--Encoder l'url mailto-->
        var url="mailto:"+encodeURIComponent(document.getElementById("edTo").value)
            +"?subject="+encodeURIComponent(document.getElementById("edSubject").value)
            +"&body="+encodeURIComponent(document.getElementById("edBody").value);
        <!--Ouvrir client messagerie-->
        document.location=url;
    }
 
</script>

A priori, cette solution ,'est pas la plus élégente pour permettre à l'internaute d'envoyer un message au webmaster du site internet. La principale force dans l'envoi d'un email sans PHP est qu'elle est très simple à mettre en place et que le message est envoyé à partir du logiciel de messagerie par défaut.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.
avatar titi

Publié par titi

le 19/12/2011 à 08:56:20

test de ce truc! eh ben exigeant en plus

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
tuto - webmaster
Mise a jour
03/07/2010
Visualisation
vu 8522 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 267 articles
|BIO_PSEUDO|
Commentaires récents

Publié par Diégo DELPY dans CMS

IL FAUT IMPERATIVEMENT DONNER DES CHEMINS COMPLETS à pFrom et à pTo, sinon ça marche
bizzarrement.
Exemple :

// Chemin relatif : PAS BON !
pFrom := \'Bureau\\Tél...

Publié par angelofchaos dans java

Marche très bien , merci beaucoup :)

Publié par y__fe dans java

Impeccable merci !

Publié par FOBEC dans CMS

Un chronomètre, des challenges et l'affichage des meilleurs scores sont prévus. Si ça vous intéresse, laissez moi un p'tit mot !!!

Publié par Fobec dans news

Bonjour,
la localisation des adresses ip utilise plusieurs algo de recherche de position geographique. La precision du rapport d'analyse correspond la qualite de la localisation:
9/10 la locali...