Product
Mise à jour produit : un nouveau Postbin pour déboguer les webhooks
Publié initialement le 7 décembre 2013.
Cette semaine, en plus de notre article sur ce que nous avons appris en passant une partie majeure de Mailgun en open source, nous avons lancé une nouvelle fonctionnalité qui devrait vous plaire : un postbin pour déboguer vos webhooks.
Notre propre Postbin
Chez Mailgun, nous essayons de ne pas trop souffrir du syndrome du « pas inventé ici » (nous sommes dans l’ingénierie, c’est donc difficile). Pendant des années, nous avons régulièrement utilisé quelques Postbins, et nous encouragions notre clientèle à les utiliser pour déboguer les webhooks. Notre préféré était postbin.ryanbigg.com car il était simple et les requêtes POST étaient faciles à lire. Mais il n’est plus disponible, et un autre que nous aimions bien a récemment été repensé, ce qui le rend plus difficile à utiliser. Nous avons donc décidé de créer le nôtre, en nous concentrant sur l’ergonomie et la simplicité.
Si vous allez sur http://bin.mailgun.net, vous pourrez désormais créer des Postbins qui vous permettront de déboguer facilement vos webhooks, qu’ils soient liés à Mailgun ou non.
Voici quelques fonctionnalités qui pourraient vous être utiles :
- La possibilité de créer plusieurs Postbins, disposant chacun de son propre permalien. Cela peut faciliter le débogage de plusieurs webhooks
- Chaque requête au sein du Postbin possède également son propre permalien. Cela permet de partager facilement votre requête POST, par exemple lors d’un échange avec le support de Mailgun.
N’oubliez pas que, puisque Mailgun vous permet de tester tous vos webhooks avec une requête POST d’exemple, vous pouvez saisir l’URL de votre PostBin dans le panneau de contrôle de Mailgun et recevoir votre requête POST de test avant tout codage.
De plus, le SDK PHP de Mailgun a été modifié pour autoriser le Postbin comme destination, ce qui permet de voir facilement et exactement ce que le SDK envoie à l’API de Mailgun. Consultez la section « Débogage » du SDK PHP pour plus de détails.
À terme, nous espérons intégrer le Postbin de Mailgun directement dans votre panneau de contrôle, afin que vous puissiez tester vos webhooks vers un postbin privé sans avoir à saisir d’URL. En attendant, gardez à l’esprit les mises en garde suivantes :
- Vos requêtes POST vers bin.mailgun.net sont publiques, alors n’envoyez rien de confidentiel ou que vous ne voudriez pas que votre mère voie.
- Vos données sont supprimées après cinq jours maximum, voire plus tôt. Ne stockez donc rien dont vous avez absolument besoin ici.
Pour provisionner un Postbin par programmation, une API est disponible. Voici les points de terminaison disponibles :
POST http://bin.mailgun.net/api/new
Creates a new Postbin
Response:
{
"url": "http://bin.mailgun.net/b50299cc"
}
POST http://bin.mailgun.net/api/<id>
Stores data in the Postbin
Response:
{
"message": "Post received. Thanks!"
}
DELETE http://bin.mailgun.net/api/<id>
Deletes a Postbin
Response:
{
"message": "Bin deleted"
}
GET http://bin.mailgun.net/api/<id>
Retrieves the Postbin data
Response:
[
{
"id": 153,
"params": "{"recipient":"test@example.com","sender":"travis@example.com","stripped-text":"A POST!","timestamp":"1358041467"}",
"created_at": 1385798101,
"bin_id": 59
}
]
Un exemple d’application Flask pour accepter les webhooks
Une fois que vous avez tout configuré pour accepter de véritables requêtes POST, vous pouvez utiliser ou modifier cette application Flask pour les recevoir :
from flask import Flask
from flask import request
app = Flask(__name__)
@app.route('/mailgun-tracking', methods=['GET', 'POST'])
def tracking():
# access some of the email parsed values:
request.form['recipient']
request.form['from']
request.form['subject']
# extended parameters
request.form['Message-Id']
request.form['message-headers']
request.form['timestamp']
request.form['body-plain']
request.form['stripped-html']
request.form['stripped-text']
request.form['stripped-signature']
return "Ok"
if __name__ == '__main__':
app.run(host='50.56.174.200', port=100, debug=True)
À la semaine prochaine.
Bons envois !
L’équipe Mailgun