API revolumail V0.3 beta
Grâce à l'API revolumail, profitez de notre plateforme d'envoi et programmez facilement des mailings Email, Fax ou SMS depuis n'importe quelle application.
2) Envoi de message
3) Récupération des statistiques
- 3.1) Liste des campagnes de l'utilisateur
- 3.2) Statistiques globales d'une campagne précise
- 3.3) Détails d'une campagne précise
- 3.4) Liste des codes statut
4) Avoir un Aperçu d'un mail envoyé
5) Supprimer les données d'une campagne de mailing
1) Introduction
Tous les paramètres sont sensibles à la casse.
- Obligatoire
- Optionnel
- Pas encore implémenté
et l'API de récupération des statistiques
2) Envoi de message
http://www.revolumail.com/newmailvous pouvez trouver un exemple d'envoi d'email en utilisant l'API en Python Ici, ou en Php Ici.
Paramètres de la requête :
| Nom | Valeur par défaut | Choix possibles | Description |
| login |
|
|
Votre login utilisateur |
| password |
|
|
Votre Mot de passe |
| name | sujet |
|
Donne un nom à la campagne de mailing, permet d'avoir accès un nom explicite pour les stats |
| subject |
|
|
Le sujet du message, obligatoire uniquement dans le cas d'un Email,
peut contenir des champs et des filtres au même titre que le template. |
| Type | email, fax, sms | Le type d'envoi | |
| format | json | json, xml, csv, yaml | Le format des données envoyées |
| encoding | utf-8 | Le charset des données envoyées | |
| datas |
|
|
Les données, cf 2.1) |
| template |
|
|
Modèle du message, Utilise la syntaxe de template de django cf 2.2) |
| date_send |
|
format : YYYY/MM/JJ |
Date d'envoi du message si il doit être envoyé dans le futur Si ce paramètre n'est pas renseigné, les messages seront envoyés dès que possible |
| tracker | 1 (Oui) | 0 (Non), 1 (Oui) | Ajout d'une image tracker dans les email, permet de savoir quand l'utilisateur a ouvert le mail. |
| readreceipt | 1 (Oui) | 0 (Non), 1 (Oui) | Demande un accusé de resption au destinataire. |
| sender_name | nom de l'utilisateur |
|
Nom de l'expediteur |
| sender_email | email de l'utilisateur |
|
Email de l'expediteur |
| alert_email |
|
Adresse email qui recevra les alertes sur les clics et desabonnements | |
| alert_jabber |
|
|
Adresse jabber qui recevra les alertes sur les clics et desabonnements |
2.1) Les données (champ 'datas')
Si le format est le json, alors les données envoyées doivent *obligatoirement* contenir un champ "email" pour les emails, ou "tel" (pour fax et sms)
[
{ "email" : "machin@gmail.com", "nom" : "machin" , "age" : 42 },
{ "email" : "bidule@free.fr", "nom" : "bidule" , "prenom" : "truc" }
]
exemple pour un envoi de faxes :
[
{ "tel" : "0145454545", "nom" : "machin" , "age" : 42 },
{ "tel" : "0145454545", "nom" : "bidule" , "prenom" : "truc" }
]
NB : les guillemets doivent être doubles : "
email,nom,age
machin@gmail.com,machin,42
bidule@free.fr,bidule,25
La première ligne définit les noms des paramètres.
2.2) Le template
Les données que vous avez envoyées dans le champ 'datas' sont accessibles en insérant {{ data.* }} dans votre template. Par exemple, vous pouvez créer le template suivant pour votre mailing :
Bonjour {{data.nom_complet}}, <br><br>
Nous vous proposons une offre exceptionnelle, valable jusqu'au {{data.fin_offre}} <br><br>
<a href="http://www.perdu.com">Cliquez ici pour en bénéficier de suite !</a><br>
Tous les filtres intégrés à Django peuvent être utilisés dans vos templates, par exemple {{ data.nom_complet|capfirst }}, qui mettra la première lettre du nom en majuscule.
Si un champ n'existe pas dans les datas envoyées, son contenu n'apparaitra pas dans le mail/fax/sms final.
2.3) Ajout de fichier attaché
Cette fonctionalité est évidement uniquement accessible lorsque le type d'envoi est l'email ou fax.
Pour ajouter un ou plusieurs fichier(s) à attacher à l'email lors de l'envoi, il faut modifier le formatage des paramètres,
passer d'un mode d'envoi (ou enctype) 'application/x-www-form-urlencoded' (comme un formulaire en POST normal)
à un mode d'envoi 'multipart/form-data' (comme un formulaire en POST avec un input type=file).
exemple de requête contenant un fichier à joindre à la campagne d'email :
...
Content-Type: multipart/related; boundary="===============1931184483"
...
--===============1931184483==
Content-Type: application/octet-stream
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: form-data; filename="mon_fichier.ext"
bW9uIGN2IGJsYWJsYQ==
--===============1931184483==--
Notez que les librairies les plus souvent utilisées pour forger directement des requêtes HTTP (PEAR/HTTP_request ou cURL en php, urllib2 en python) permettent de faire ceci assez simplement.
Quelques liens pour expliquer le fonctionement :
La spécification HTML du content-type "multipart/form-data" (en anglais)
Une classe en python pour poster en "multipart/form-data"
Un exemple en php (et cURL) d'envoi de mailing avec un fichier attaché
| Nom | Valeur par défaut | Choix possibles | Description |
| login |
|
|
Votre login utilisateur |
| password |
|
|
Votre Mot de passe |
| format | json | html, json, xml, csv |
Le format de retour des données
Note : Il est impossible de récupérer les statistiques détaillées (cmd=details) en format csv du faite de sa trop grande simplicité. |
| cmd |
|
list, global, details |
commande, Modifie les données qui sont renvoyées |
| mailing, mailing |
|
|
nom de la campagne dont on veut récupérer les statistiques Ce paramètre est obligatoire pour les commandes "global" et "details", inexistant pour la commande "list" |
3.1) Liste des campagnes de l'utilisateur
cmd=list
[
"nom_campagne1"
,"mailing-2568"
,"mailing-6587"
]
3.2) Statistiques globales d'une campagne précise
cmd=global&mailing=NomDeLaCampagne
Ou "NomDeLaCampagne" dois être remplacé par la valeur du nom de la campagne telle que récupérée par la requête cmd=list
NB : ce nom peut diverger de celui choisi lors de l'envoi du mailing, car il est transformé pour être unique et valide dans une URL. Vous devez donc veiller à utiliser le nom fourni par la commande cmd=list
Données renvoyées :
| Nom | Valeurs possibles | Description |
| name |
|
Nom de la campagne |
| type | email, fax, sms | Type de la campagne |
| status | 0 (en attente), 1 (en cours d'envoi) ou 2 (traitée) | Statut de la campagne |
| recipients |
|
Nombre de destinataires |
| sent |
|
Nombre de messages envoyés |
| errors |
|
Nombre d'erreurs |
| blacklist |
|
Nombre de messages non envoyés car dans la blacklist |
| opened |
|
Nombre de mails ouverts (type=email seulement) |
| clics |
|
Nombre de clics sur les liens contenus dans le message (type=email seulement) |
| unsuscribed |
|
Nombre de personnes qui se sont desabonnées suite à ce mailing (type=email seulement) |
{
"name" : "nom_campagne",
"type":"email",
"recipients":328 ,
"status":2,
"sent":325,
"errors":12,
"blacklist":2,
"opened":226,
"clics":89,
"unsuscribed":12
}
3.3) Détails d'une campagne précise
cmd=details&mailing=NomDeLaCampagne
Ou "NomDeLaCampagne" dois être remplacé par la valeur du nom de la campagne telle que récupérée par la requête cmd=list
NB : ce nom peut diverger de celui choisi lors de l'envoi du mailing, car il est transformé pour être unique et valide dans une URL. Vous devez donc veiller à utiliser le nom fourni par la commande cmd=list
| Nom | Description |
| status_code |
Renvoi seulement les destinataires avec ce code de statut, cf 3.4) la liste des codes en plus des codes status numériques de la liste des codes, on peut passer un des 3 codes suivants:
|
| start | Renvoi les lignes a partir de l'index "start" |
| limit |
Le nombre de lignes maximum renvoyées |
| Nom | Description |
| id | Identifiant du mail envoyé |
| Email du destinataire | |
| status_code | Code de statut d'envoi du message, cf 3.4) la liste des codes |
| diagnostic | Un message d'erreur eventuelement renvoyé par le serveur mail du destinataire en cas de problème |
| date_sent | Date d'envoi |
| date_opened | Date d'ouverture |
| clics | Une liste de dictionnaires "url" / "date" cliquées dans le mail |
{
total:2
,data:[
{"id":"xxx", "email":"machin@truc.com", "status_code":30, "diagnostic":"",
"date_sent":"2009/06/19 17:48:01","date_opened":"2009/06/20 13:02:59",
"clics":[{"url":"http://www.perdu.com", "date":"2009/06/20 13:04:23"}]
},
{"id":"yyy","email":"bidule@chouette.com", "status_code":20, "diagnostic":"",
"date_sent":"2009/06/19 17:48:03","date_opened":"","clics":[]
}
]
}
3.4) Liste des statuts
| Code | Description |
| 0 | Le Message est prêt à être envoyé |
| 10 | Le Message sera envoyé très prochainement |
| 20 | Le Message a été envoyé avec succès |
| 30 | Le Message a été ouvert par le destinataire (email seulement) |
| 31 | Le destinataire s'est desabonné (email seulement) |
| 40 | Le Message n'a pas pu être envoyé au destinataire |
| 41 | Le Message n'a pas pu être envoyé au destinataire, les données ne contenant pas d'adresse valide (ou tel, suivant le type de la campagne) |
| 42 | Le Message n'a pas pu être envoyé au destinataire, une erreur c'est produite pendant la génération du message |
| 43 | Le Message n'a pas pu être envoyé au destinataire, impossible de joindre le serveur d'envoi |
| 44 | Le Message n'a pas pu être envoyé au destinataire, le serveur d'envoi a refusé la connection |
| 45 | Le Message n'a pas été envoyé au destinataire, car il s'est désabonné |
| 46 | Le Message n'a pas été envoyé au destinataire, car un message lui à déjà été envoyé lors de ce mailing (supréssion des doublons) |
| 50 | Le Message a été envoyé mais le destinataire ne l'a pas reçu |
| 51 | Le Message a été envoyé mais le destinataire ne l'a pas reçu, car son adresse (ou son tel) est inconnue |
| 52 | Le Message a été envoyé mais le destinataire ne l'a pas reçu, car son adresse (ou son tel) est incorrecte |
| 53 | Le Message a été envoyé mais le destinataire ne l'a pas reçu, car le serveur a considéré le message comme du spam |
4) Avoir un Aperçu d'un mail envoyé
| Nom | Description |
| login | Votre login utilisateur |
| password | Votre Mot de passe |
| id |
L'identifiant du Message que l'on veux visualiser |
| html |
Valeur par défaut : false si ce paramètre est à 'true', seule la partie HTML du corps du mail sera renvoyée, sinon, l'intégralité du mail et de ses en-têtes seront renvoyés |
5) Supprimer les données d'une campagne de mailing
| Nom | Description |
| login | Votre login utilisateur |
| password | Votre Mot de passe |
| mailing |
Le nom de la campagne de mailing que l'on souhaite supprimer, tel qu'il est renvoyé par la requête /stats |