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 7100 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 261 articles
|BIO_PSEUDO|
Commentaires récents

Publié par lamardiallo48 dans java

trop bon ton code ca m'a beaucoup aide. Merci

Publié par Axel dans java

Bonjour Kezouille,
je viens de tester sur notre LAN (serveur Windows 7), la surveillance a l'air de marcher.
De votre cote, s'agit-il d'un serveur sous Windows ou sous Linux ?
Pouvez-vou...

Publié par zozo dans logiciel

comment ca marche??????????

Publié par traitstone dans CMS

c'est bou et tres bon chose

Publié par ING_BIO dans CMS

tres bonnes aide merci