Envoyer un email à 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.

Descriptif de la fonction mailto
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

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




<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 formaulaire,
- 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>

Commentaire des internautes
avatar
titi le 19/12/2011
test de ce truc! eh ben exigeant en plus
avatar
sdfsdf le 28/01/2011
sdfsdfqsd qsd qsd qs d dqsd
Ajouter un commentaire
Pseudo
Adresse email
Site internet (optionnel)
Votre commentaire
Fiche de l'article
Mise a jour03/07/2010
VisualisationVu 2406 fois
PublicInternaute
CategorieWeb - Javascript - Message - popup
Auteur de l'article
fobec fobec
connecté le 09/05/2012
36 ans - France Nord-Est
44 articles dans la section
Contacter l'auteur
Partager l'article