- · Niveau : INTERMÉDIAIRE
- · Compatibilité : Flash 5 / MX
- · Fichier à télécharger
Flash n’envoie pas de courriel mais il peut utiliser le logiciel de courrier électronique installé sur la machine de l’usager. Pour ce faire, il doit utiliser un lien getURL avec "mailto:". Et construire une chaîne de caractères encodée comprenant le courriel du destinataire (receveur), le sujet et le message. La chaîne de caractères ainsi générée sera envoyée au logiciel de courrier électronique. Le logiciel ouvre alors une fenêtre pour envoyer un nouveau courriel avec les paramètres, spécifiés par le Flash, placé dans le nouveau courriel.
ATTENTION, bien que Outlook ou Netscape Mail sont sur la plupart des ordinateurs, ce flash peut ne pas fonctionner puisque qu’il est intimement relié à un logiciel externe au Flash. Logiciel qui doit être installé, compatible et fonctionnel.
NOTE : Vous ne pouvez tester l’envoie avec mailto dans un simple "Test movie". Pour le tester vous devez publier le Flash.
Paramètres de l’en-tête HTTP/GET
La chaîne doit être construite à la manière d’un en-tête HTTP/GET et respecter la nomenclature des paramètres. À savoir, débuter par le point d’interrogation ( ? ) et le séparateur de paramètres, le e commercial ( & ). Les paramètres possibles sont : (Attention, les noms de paramètre doivent être en minuscule).
- to : par défaut il vientà la suite du mailto: et n’a pas besoin d’être identifié.
- cc : Copie conforme, envoie le courriel à une deuxième adresse (optionnel).
- bcc : Autre copie conforme, avec la particularité de cacher l’adresse (optionnel).
- subject : Sujet du message (optionnel).
- body : Message ou corps du courriel (optionnel).
getURL ("mailto:destinataire@courriel.com&cc=&bcc=&subject=&body=");
Encodage (url-encoded)
Les caractères du message doivent être encodés du type application/x-www-form-urlencoded pour les caractères accentués et notamment les sauts de lignes. Normalement on devrait utiliser escape sans problème mais Flash à un petit problème à ce niveau. Alors voilà ce que je propose dans la construction de la chaîne BODY.
J’ajoute manuellement les sauts de ligne. Le code du saut de ligne est "%0D" mais c’est parfois "%0A". Alors j’ajoute les deux pour augmenter les chances de compatibilité. Par exemple, je veux ajouter un en-tête à mon message et sauter deux lignes.
entete = "Bonjour%0D%0A%0D%0A"+message;
Le résultat sera:
Bonjour,
Et le message...
Saut de lignes dans un texte saisie
Si le message est saisi dans une boîte de texte (input text) à ligne multiple, ça se complique car il faut trouver tous les sauts ligne et les convertir manuellement. Outre le escape qui ne fonctionne pas dans ce cas précis, il n’y a aucune méthode pour remplacer un caractère dans une chaîne... Il faut donc faire notre propre fonction de remplacement.
Pour localiser les sauts de ligne dans le message, j’utilise unescape("%0D") ce qui revient à dire "un saut de ligne non encodé". Et je les remplace bien sûr par "%0D%0A". Les sauts de ligne du message seront ainsi préservés. J’ai fait une fonction appelée "RemplaceCar", voir dans l’exemple à télécharger. Ainsi, la construction finale de la chaîne (avec deux sauts de ligne à la fin du message) sera:
hMess = "Bonjour,%0D%0A%0D%0A"+RemplaceCar(this.tMessage, unescape("%0D"), "%0D%0A")+"%0D%0A";
Ajouter des valeurs de saisie
Si votre formulaire contient plusieurs champs de saisie, vous devez pour les récupérer les ajouter au paramètre "body" et donc les ajouter à la chaîne de cette façon (dans mon exemple j’ai deux champs de saisie (input texe) du nom de variable hNom et hPrenom).
hMess = "Message de : "+hPrenom+" "+hNom+"%0D%0A%0D%0A"+RemplaceCar(this.tMessage, unescape("%0D"), "%0D%0A")+"%0D%0A";
Exemple complet d’une chaîne envoyé au logiciel de courrier électronique.
// L’action du bouton "envoyer".
on (release) {
// Adresse du receveur et sujet du message.
hDestinataire = "votre@courriel.com";
hSujet = "Le sujet du courriel";
// Construction du message encodé
hMess = "Message de : "+hPrenom+" "+hNom+"%0D%0A%0D%0A"+RemplaceCar(this.tMessage,
unescape("%0D"), "%0D%0A")+"%0D%0A";
// C’est ici que la chaîne est envoyée.
getURL ("mailto:" +hDestinataire+ "?subject="
+ hSujet + "&body=" +hMess);
}
La composante twFlashMailto
Cette composante ou "SmartClip" vient tout équipée, avec le formulaire, la fonction "RemplaceCar" et le script qui construit la chaîne dans le bouton envoyé. Pour l’utiliser il suffit d’ouvrir la librairie et de glisser la composante "twFlashMailto" dans votre propre Flash.
Une fois sur la scène, ouvrer l’onglet "paramètres" de la fenêtre "Propriétés". Vous verrez qu’il y a deux paramètres, soit l’adresse de courrier du destinataire (ou l’adresse de courrier de celui que recevra le courriel). Et le sujet par défaut du courriel envoyé. Vous n’avez qu’à changer leur valeur et votre formulaire sera fonctionnel.
NOTE : Cette technique n’est pas conseillée pour un projet professionnel. C’est mieux que rien mais au risque de décourager l’usager. En effet, il y a les problèmes de compatibilité, les problèmes reliés à l’installation de l’usager mais aussi un problème de confidentialité. Par exemple, quand je me retrouve dans cette situation, il y a 90% de chances que j’annule l’opération car je ne veux pas donner mon adresse de courrier électronique. Et si j’étais sur la machine d’un ami?
Pour une technique vraiment professionnelle, voir le prochain tutoriel. Mais attention, avant de perdre votre temps, assurez-vous d’avoir accès à un langage serveur comme le ASP, le PHP ou le Perl. C’est l’administrateur du serveur qui héberge votre site qui peut vous indiquer si vous avez accès à un de ces langages.
Téléchargez la composante twFlashMailto.zip
- Envoyer un formulaire Flash avec un script serveur (avec la composante twFlashForm et les scripts asp / php)