Product

Produkt-Update: Neuer Postbin zum Debuggen von Webhooks

Zusätzlich zur Veröffentlichung unserer MIME-Parsing- und E-Mail-Validierungsbibliothek als Open Source haben wir auch einen Postbin zum Debuggen Ihrer Webhooks erstellt.
Bild für Produkt-Update: Neuer Postbin zum Debuggen von Webhooks

Ursprünglich veröffentlicht am 7. Dezember 2013.

Diese Woche haben wir neben unserem Artikel darüber, was wir bei der Open-Source-Veröffentlichung eines großen Teils von Mailgun gelernt haben, auch ein neues Feature veröffentlicht, das Sie sicher schätzen werden: einen Postbin zum Debuggen Ihrer Webhooks.

Unser eigener Postbin

Wir bemühen uns, bei Mailgun nicht allzu sehr unter dem Not-invented-here-Syndrom zu leiden (da wir jedoch ein Ingenieursteam sind, fällt das schwer). Über Jahre hinweg gab es einige Postbins, die wir regelmäßig nutzten und deren Nutzung wir auch unserer Kundschaft zum Debuggen von Webhooks empfohlen haben. Unser Favorit war postbin.ryanbigg.com, da er einfach war und die POSTs gut lesbar waren. Dieser ist jedoch nicht mehr verfügbar, und ein anderer, der uns gefiel, wurde kürzlich umgestaltet, was seine Nutzung erschwert. Daher haben wir beschlossen, unseren eigenen zu entwickeln, wobei der Fokus auf Benutzerfreundlichkeit und Einfachheit lag.

Wenn Sie http://bin.mailgun.net aufrufen, haben Sie nun die Möglichkeit, Postbins zu erstellen, mit denen Sie Ihre Webhooks – ob mit Mailgun-Bezug oder nicht – problemlos debuggen können.

Einige der Features, die Sie vielleicht nützlich finden:

  • Möglichkeit, mehrere Postbins zu erstellen, jeweils mit einem eigenen Permalink. Dies kann das Debuggen mehrerer Webhooks erleichtern
  • Jeder Post innerhalb des Postbins verfügt ebenfalls über einen eigenen Permalink. Das macht es einfach, Ihren POST weiterzugeben, zum Beispiel bei der Kommunikation mit dem Mailgun-Support.

Denken Sie daran: Da Sie bei Mailgun alle Ihre Webhooks mit einem Beispiel-POST testen können, können Sie Ihre Postbin-URL in das Control Panel von Mailgun eingeben und Ihren Test-POST erhalten, bevor Sie Code schreiben.

Darüber hinaus wurde das Mailgun-PHP-SDK angepasst, um den Postbin als Ziel zuzulassen. So lässt sich leicht genau erkennen, was das SDK an die API von Mailgun sendet. Weitere Informationen finden Sie im PHP-SDK im Abschnitt „Debugging“.

Im Laufe der Zeit hoffen wir, den Mailgun-Postbin direkt in Ihr Control Panel zu integrieren, damit Sie Ihre Webhooks mit einem privaten Postbin testen können, ohne eine URL eingeben zu müssen. Bis dahin sollten Sie folgende Hinweise beachten:

  • Ihre POSTs an bin.mailgun.net sind öffentlich. Veröffentlichen Sie daher keine vertraulichen Daten oder Dinge, die Ihre Mutter nicht sehen sollte.
  • Ihre Daten werden nach spätestens fünf Tagen gelöscht, möglicherweise auch früher. Speichern Sie hier also nichts, was Sie unbedingt benötigen.

Für alle, die einen Postbin programmatisch bereitstellen möchten, steht eine API für den Postbin zur Verfügung. Hier sind die verfügbaren Endpunkte:

                                

                                    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&gt;
Stores data in the Postbin
Response:
{
    "message": "Post received. Thanks!"
}
                                
                            
                                

                                    DELETE http://bin.mailgun.net/api/<id&gt;
Deletes a Postbin
Response:
{
    "message": "Bin  deleted"
}
                                
                            
                                

                                    GET http://bin.mailgun.net/api/<id&gt;
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
    }
]
                                
                            

Eine Flask-Beispiel-App zur Annahme von Webhooks

Wenn Sie schließlich bereit sind, POSTs tatsächlich anzunehmen, können Sie diese Flask-App verwenden oder anpassen, um Ihre POSTs zu akzeptieren:

                                

                                    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)
                                
                            

Bis nächste Woche.

Viel Spaß beim Senden!

Ihr Mailgun-Team