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

Publié par fffffff dans CMS

tesffff

Publié par Outsourcing dans news

Le PageRank n'a plus une reelle importance a mon humble avis mais bcp de mes clients continue a juger de la qualite de ma prestation en referencement avec la barre verte!

Publié par MasterMbg dans java

Salut! merci pour le code, si tu y ajoutais des commentaires avant chaque module ce serait encore plus facilitant! merci infiniment...

Publié par Roy2014 dans tuto

Bonjour et merci pour ce tuto interessant. Je pense que tout le monde souffre avec 1and1 du fait que l'on puisse pas gziper directement via le htaccess!!
j'aurais une petite question:
tu dis a p...

Publié par revente lmnp dans logiciel

J'aimerais avoir plus d'informations sur cette article, si quelqu'un peux m'en donnee d'avantage, je vous en remercie d'avance.