Product
Atualização de produto: novo Postbin para depurar webhooks
Publicado originalmente em 7 de dezembro de 2013.
Esta semana, além de escrever sobre o que aprendemos ao disponibilizar grande parte do Mailgun em código aberto, lançamos um novo recurso que achamos que você vai gostar: um postbin para depurar seus webhooks.
Nosso próprio Postbin
Tentamos não sofrer muito com a síndrome do “não inventado aqui” no Mailgun (somos profissionais de engenharia, então é difícil) e, durante anos, houve alguns Postbins que usávamos regularmente, e que incentivávamos nossos clientes a usar, para depurar webhooks. Nosso favorito era o postbin.ryanbigg.com porque era simples, e os POSTs eram fáceis de ler. Mas ele não está mais disponível, e outro de que gostávamos foi reformulado recentemente, dificultando seu uso. Então, decidimos criar o nosso, focando na usabilidade e simplicidade.
Se você acessar http://bin.mailgun.net, agora você terá a capacidade de criar Postbins que permitem depurar facilmente seus webhooks, relacionados ao Mailgun ou não.
Alguns dos recursos que você pode achar úteis são:
- Capacidade de criar vários Postbins, cada um com seu próprio link permanente. Isso pode facilitar a depuração de vários webhooks
- Cada postagem dentro do Postbin também tem seu próprio link permanente. Isso facilita o compartilhamento do seu POST, por exemplo, ao falar com o suporte do Mailgun.
Lembre-se, já que o Mailgun permite testar todos os seus webhooks com um POST de amostra, você pode inserir o URL do seu PostBin no painel de controle do Mailgun e receber seu POST de teste antes de iniciar a programação.
Além disso, o SDK de PHP do Mailgun foi modificado para permitir o Postbin como destino, facilitando ver exatamente o que o SDK está enviando para a API do Mailgun. Acesse o SDK de PHP, na seção “Depuração“, para obter detalhes.
Com o tempo, esperamos integrar o Postbin do Mailgun diretamente no seu painel de controle, para que você possa testar seus webhooks em um postbin privado sem precisar inserir um URL. Até lá, tenha em mente as seguintes ressalvas:
- Seus POSTs para bin.mailgun.net são públicos, então não publique nada confidencial ou que você não gostaria que sua mãe visse.
- Seus dados são excluídos após no máximo 5 dias (e talvez antes), então não armazene nada de que você realmente precise aqui.
Para quem trabalha com desenvolvimento e deseja provisionar um Postbin de forma programática, há uma API disponível para o Postbin. Aqui estão os endpoints disponíveis:
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
}
]
Um aplicativo Flask de amostra para aceitar webhooks
Quando finalmente estiver com tudo pronto para aceitar POSTs de verdade, poderá usar ou modificar este aplicativo Flask para aceitar seus POSTs:
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)
Até a próxima semana.
Bom envio!
Os Mailgunners