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 mailtoComprise 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=messageFormulaire 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 messageAu 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>