Product
Atualização semanal de produto: melhor tratamento de caracteres não ASCII em rotas
Esta semana, lançamos uma melhoria, ou melhor, corrigimos um bug na nossa API de análise de e-mails, que faz parte do nosso sistema de tratamento de e-mails recebidos chamado Rotas. As rotas são um dos nossos recursos mais populares, pois permitem o tratamento de todas as respostas aos seus e-mails de marketing e transacionais. Alguns clientes também usam esse recurso de tratamento de e-mails recebidos para fazer coisas incríveis, como permitir que seus clientes usem o e-mail para criar tarefas em um aplicativo de gestão de projetos ou participem de um fórum de discussão on-line por e-mail.
O que nos leva a um melhor suporte a caracteres não ASCII
Quando um usuário solicita ao Mailgun a análise de e-mails recebidos e a execução de um POST para o seu aplicativo via HTTP, nós analisamos as citações, as assinaturas e os anexos e, em seguida, os enviamos para um webhook. Se uma mensagem não tiver uma parte em HTML (por exemplo, se foi enviada apenas como texto sem formatação), ainda assim tentaremos criar uma parte em HTML a partir do texto fornecido e enviá-la como um parâmetro stripped-html (também criamos a parte stripped-text quando um e-mail contendo apenas HTML é recebido).
Recentemente, foi encontrado um bug neste caso de uso específico, que ocorria se a parte de texto incluísse caracteres não ASCII. Quando isso acontecia, eles eram corrompidos no parâmetro stripped-html; por exemplo, “日本語” era transformado em “日本語”. Agora o bug está corrigido e o Mailgun cria o HTML adequadamente a partir do texto, mesmo com caracteres não ASCII.
Conte-me mais sobre as Rotas
Este parece ser um momento tão bom quanto qualquer outro para falar sobre as possibilidades oferecidas pelas Rotas, pois elas são muito poderosas. As Rotas permitem que você configure uma série de regras sobre como tratar as mensagens recebidas. Especificamente:
- Em quais mensagens agir (por exemplo, mensagens de uma pessoa específica, com um assunto específico ou até mesmo todas as mensagens)
- O que você deseja fazer com essas mensagens (por exemplo, encaminhá-las para outro endereço de e-mail ou enviá-las por POST para o seu aplicativo)
Quando você decide enviar a mensagem por POST para o seu aplicativo, o Mailgun envia toda a mensagem MIME não analisada (se essa for a sua preferência) ou a analisa para você e publica os parâmetros analisados. Em ambos os casos, nós transcodificaremos a mensagem para UTF-8, pois amamos nossos clientes.
Abaixo, você confere uma lista dos parâmetros analisados que enviaremos por POST para o seu aplicativo ao usar as Rotas.
Como aceitar webhooks recebidos
Você precisará configurar o seu aplicativo para receber os parâmetros analisados. Aqui está um pequeno aplicativo Flask que mostra o básico para que você possa começar a usar as Rotas no tratamento de mensagens recebidas, caso ainda não esteja fazendo isso!
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)
E, por fim, nosso novo blog…
Se você acompanha o Mailgun há algum tempo, vai notar que temos um novo blog. Algumas das novidades que achamos que você vai gostar são:
- Ele é responsivo para que você possa lê-lo facilmente em qualquer dispositivo
- Você pode assiná-lo agora para receber atualizações quando um novo conteúdo for publicado no blog (e absolutamente nenhum outro e-mail que você não queira)
- Cada publicação apresenta documentações relacionadas. Sendo assim, se você ler um post sobre um cliente usando as Rotas do Mailgun para fazer algo incrível, poderá encontrar a documentação mais intimamente ligada a esse tópico diretamente da postagem.
Esperamos que você goste do novo blog. Deixe-nos saber o que você acha.