Envois¶
-
GET
/api/v1/mailings
¶ Liste des envois existants
Query Parameters: - list – filtre les résultats par identifiant unique de liste
Response JSON Array of Objects: - id (int) – l’identifiant unique de l’envoi
- name (string) – le nom unique de l’envoi
- campaign (int) – l’identifiant unique de la campagne de cet envoi
Requête:
GET /api/v1/mailings HTTP/1.1 Host: account.emailicious.com Accept: application/json
Réponse:
HTTP/1.1 200 OK Vary: Accept Allow: GET, POST, HEAD, OPTIONS Content-Type: application/json { "count": 3, "next": null, "previous": null, "results": [ { "id": 1, "name": "First mailing", "campaign": null }, { "id": 2, "name": "Mailing with campaign", "campaign": 1 }, { "id": 3, "name": "Third mailing", "campaign": null } ] }
-
POST
/api/v1/mailings
¶ Crée un envoi avec possiblité de variantes et livraisons multiples.
Request JSON Object: - list (int) – l’identifiant unique de la liste
- name (string) – le nom unique de l’envoi
- campaign (int) – l’identifiant unique de la campagne
- segments (array) – identifiants uniques des segments
- variants (array) – variantes
- variants.language (array) – code de langue de la variante
- variants.from_name (string) – nom de l’expéditeur de la variante (prend la valeur
default_from_name
de la liste si définit) - variants.from_email (string) – nom de l’expéditeur de la variante (prend la valeur
default_from_email
de la liste si définit) - variants.replyto_email (string) – nom de l’expéditeur de la variante (prend la valeur
default_replyto_email
de la liste si définit) - variants.subject (string) – object de la variante
- variants.layout.text (string) – contenu texte de la variante
- variants.layout.zip_file (string) – fichier Zip sous forme de data URI représentant le contenu HTML de la variante
- variants.deliveries (array) – livraisons
- variants.deliveries.scheduled_datetime (string) – date et temps de la livraison
Note
Afin de permettre la soumission de fichiers lors des requêtes dont le
Content-Type
estapplication/json
leur contenu doit être sous forme de data URI.Les champs
variants.layout.zip_file
doivent être des fichiers Zip contenant l’aborescence suivante.Un fichier
index.html
représentant la mise en page HTML du gabarit.Et optionnelement des fichiers images (
.jpg
,.png
,.gif
) placéesdans un dossierimages
accessible depuis la racine de l’archive. Ces images devront être référencées de manière relative depuis le fichierindex.html
afin d’être considérées lors de l’importation du gabarit.
Voici un exemple Python démontrant comment générer une archive de valide compatible:
import StringIO import zipfile html = """<!DOCTYPE html> <html> <body> Hello World! <img src="images/planet.png" /> </body> </html>""" buffer = StringIO.StringIO() with zipfile.ZipFile(buffer, mode='w') as archive: archive.writestr('index.html', html) archive.write('/path/to/planet.png', 'images/planet.png') # URI encode the Zip file. layout = 'data:application/zip;charset=utf-8;base64,%s' % ( buffer.getvalue().encode('base64'), )
Requête:
POST /api/v1/mailings HTTP/1.1 Host: account.emailicious.com Accept: application/json Content-Type: application/json { "list": 1, "name": "Mailing", "variants": [ { "subject": "Hello World!", "layout": { "zip_file": "data:application/zip;charset=utf-8;base64,..." }, "deliveries": [ { "scheduled_datetime": "2017-05-15T19:30:33Z" } ] } ] }
Réponse:
HTTP/1.1 201 Created Allow: GET, POST, HEAD, OPTIONS Content-Type: application/json Vary: Accept { "id": 1, "name": "Mailing", "list": 1, "campaign": null, "segments": [], "variants": [ { "from_name": "List default from name", "from_email": "list@default.from.email", "replyto_email": "", "subject": "Hello World!", "deliveries": [ { "exclusions": [], "limit": null, "scheduled_datetime": "2017-05-15T19:30:33Z" } ], "language": null, "layout": { "id": 1, "source": "<!DOCTYPE html>\n<html>\n<body>...</body>\n</html>" } } ] }