Product

Mise à jour produit de la semaine : meilleure prise en charge des caractères non-ASCII dans le routage

Le routage est l'une de nos fonctionnalités les plus populaires, car il vous permet de gérer toutes ces réponses à vos emails marketing et transactionnels.
Image pour Mise à jour produit de la semaine : meilleure prise en charge des caractères non-ASCII dans le routage

Cette semaine, nous avons déployé une amélioration, bon d’accord, nous avons corrigé un bug, dans notre API d’analyse d’emails, qui fait partie de notre système de gestion des emails entrants appelé Routes. Le routage est l’une de nos fonctionnalités les plus populaires, car il vous permet de gérer toutes ces réponses à vos emails marketing et transactionnels. Certains clients utilisent également cette fonctionnalité de gestion des emails entrants pour réaliser des opérations intéressantes, comme permettre à leurs clients de créer des tâches dans une application de gestion de projet par email ou participer à un forum de discussion en ligne par email.

Ce qui nous amène à un meilleur support des caractères non-ASCII

Lorsqu’un utilisateur demande à Mailgun d’analyser ses emails entrants et de les envoyer à son application via une requête HTTP POST, nous analysons les citations, les signatures et les pièces jointes, puis nous les envoyons à un webhook. Si un message ne comporte pas de partie HTML (par exemple, s’il a été envoyé en texte brut uniquement), nous essayons tout de même de construire une partie HTML à partir du texte fourni et de l’envoyer en tant que paramètre stripped-html (nous créons également la partie stripped-text lorsqu’un email contenant uniquement du HTML est reçu).

Récemment, un bug a été découvert pour ce cas d’usage précis si la partie texte contenait des caractères non-ASCII. Lorsque cela se produisait, ces caractères étaient corrompus dans le paramètre stripped-html. Par exemple, « 日本語 » était transformé en « æ—¥æœ¬èªž ». Le bug est désormais corrigé et Mailgun génère correctement du code HTML à partir du texte, même avec des caractères non-ASCII.

En savoir plus sur le routage

C’est l’occasion idéale de revenir sur les possibilités offertes par le routage, car c’est une fonctionnalité vraiment puissante. Le routage vous permet de configurer une série de règles sur la façon de gérer les messages entrants. Plus précisément :

  • Les messages sur lesquels agir (par exemple, les messages d’une personne en particulier, avec un objet spécifique ou même l’ensemble des messages)
  • Ce que vous souhaitez faire de ces messages (par exemple, les transférer vers une autre adresse email ou les envoyer à votre application via une requête POST)

Lorsque vous choisissez d’envoyer le message à votre application via une requête POST, Mailgun vous transmet soit le message MIME complet non analysé (si c’est ce que vous préférez), soit il l’analyse pour vous et envoie les paramètres extraits via une requête POST. Dans les deux cas, nous transcoderons le message en UTF-8, car nous aimons nos clients.

Vous trouverez ci-dessous la liste des paramètres analysés que nous enverrons à votre application via une requête POST lors de l’utilisation du routage.

Accepter les webhooks entrants

Vous devrez configurer votre application pour qu’elle reçoive les paramètres analysés. Voici une petite application Flask qui vous montre les bases afin que vous puissiez commencer à utiliser le routage pour gérer les messages entrants, si ce n’est pas déjà fait !

                                

                                    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)

                                
                            

Et enfin, notre nouveau blog…

Si vous lisez les articles de Mailgun depuis longtemps, vous remarquerez que nous avons un nouveau blog. Voici quelques-unes des nouveautés qui, selon nous, vous plairont :

  • Il est responsif pour que vous puissiez le lire facilement sur n’importe quel appareil
  • Vous pouvez vous inscrire dès maintenant pour recevoir des notifications lorsqu’un nouvel article de blog est publié (et absolument aucun autre email non désiré)
  • Chaque article contient des documents associés. Ainsi, si vous lisez un article expliquant comment un client utilise le routage de Mailgun pour réaliser une action intéressante, vous pourrez trouver la documentation la plus pertinente sur ce sujet directement depuis l’article.

Nous espérons que ce nouveau blog vous plaira. Faites-nous part de ce que vous en pensez.