Études de cas
Comment UserVoice a résolu son problème d’emails entrants
Il y a environ deux ans, nous exécutions le système de gestion de tickets de UserVoice sur nos propres serveurs Postfix. Depuis, nous sommes passés à Mailgun pour les emails entrants et sortants, et nous en sommes très satisfaits. Voici notre histoire et les problèmes auxquels nous avons été confrontés en matière d’emails entrants.
Les emails entrants avant Mailgun
Notre système de gestion de tickets initial utilisait Postfix pour gérer les emails entrants (et sortants). Postfix est un logiciel très solide, mais il est un peu daté et, honnêtement, sa documentation est un peu obscure. À cela s’ajoute le fait que nous n’avions pas configuré Postfix de manière « normale ». La plupart des tutoriels et des exemples vous montrent comment configurer des utilisateurs et des messageries distincts dans Postfix, mais nous voulions gérer tout cela dans notre application Rails.
Après beaucoup de tâtonnements, nous avons finalement réussi à le faire fonctionner. Nous avons obtenu un script shell à exécuter pour chaque email entrant, qui ajoutait l’email à Redis via une tâche Resque.
Dans la tâche Resque, nous avons ensuite analysé l’email en utilisant TMail. Un problème que nous avons rencontré concernait les encodages. Notre application Rails est conçue pour fonctionner avec UTF-8 et le support d’encodage de Ruby 1.9.3, mais TMail possède un support d’encodage obsolète. Nous avons essayé la nouvelle gem Mail, mais elle ne parvenait pas à analyser un email s’il avait quelque chose de « bizarre ». L’email est comme le Far West : tout est permis. Votre parseur doit être extrêmement robuste, et la gem Mail (~2 ans plus tôt) ne l’était pas.
Après avoir analysé l’email, nous devons ensuite analyser le corps pour séparer les nouvelles parties de l’email du fil de discussion/de l’historique cité de l’email. Notre première version était relativement naïve et se contentait de scinder à partir de « Le xx/xx/xxxx, Quelqu’un a répondu : ». Nous considérions alors la partie supérieure comme la nouvelle portion du message. Notre système ne gérait pas très bien les réponses « en ligne ».
S’il y avait un problème et que nous devions trouver des diagnostics, nous devions nous connecter en SSH à notre machine Postfix et utiliser grep sur nos journaux. C’était bien, mais notre personnel de support moins technique ne pouvait pas résoudre les problèmes de manière autonome.
En termes de redondance ou de mise à l’échelle, nous n’avions qu’une seule machine. Heureusement, elle n’est jamais tombée en panne, et heureusement, nous n’avons pas eu besoin de mettre à l’échelle.
Après Mailgun
Mailgun résout tous ces problèmes.
Tout d’abord, nous n’avons plus besoin de nous battre avec Postfix. En configurant une simple règle « catch_all » dans Mailgun, tous les emails adressés à *@*.uservoice.com sont envoyés à nos serveurs via HTTP.
Ces emails arrivent pré-analysés. Tout ce qui est envoyé à nos serveurs arrive en UTF-8. Rien que cela vaut son pesant d’or.
Au-delà de cela, Mailgun sépare automatiquement les nouvelles parties du message du fil de discussion. Elles sont incluses dans un paramètre appelé « stripped-text » dans le webhook, ce qui est exactement ce dont nous avons besoin lorsque nous affichons un message dans UserVoice. Nous n’avons plus à maintenir une collection désordonnée d’expressions régulières. De plus, il gère automatiquement les réponses en ligne.
Notre équipe de support dispose de journaux complets et interrogeables de tous les messages entrants et sortants. Fini les recherches avec grep pour trouver des messages, et l’interface fournie par Mailgun est complètement accessible à notre équipe de support.
Enfin, nous n’avons plus à nous soucier de la mise à l’échelle de nos serveurs, du basculement et d’autres choses de ce genre. Mailgun gère tout cela pour nous.
La meilleure partie de Mailgun
L’équipe technique de Mailgun et leur support sont d’excellente qualité. Ils sont toujours responsifs et serviables. Ils ont assuré et implémenté des fonctionnalités clés lorsque nous en avions besoin pour conclure avec certains clients. Ils nous informent de manière proactive des problèmes (comme les clients envoyant du spam) et des éventuels problèmes de configuration. Ils nous aident également à traquer les problèmes lorsque nos clients ont des difficultés à transférer des emails. En tant qu’entreprise totalement concentrée sur l’amélioration du support client, nous apprécions cela !
« L’utilisation de Mailgun nous permet d’assurer un meilleur service à nos marketeurs. Ils comptent sur nous, et nous comptons sur Mailgun : et cette relation nous aide à maintenir notre crédibilité auprès de nos clients. »