Email

Utiliser Mailgun avec les recettes Capistrano

Mailgun a été créé pour être un remède aux difficultés de développement d'emails. C'est pourquoi nous sommes toujours ravis de voir l'équipe de développement aller plus loin avec notre plateforme grâce aux outils qu'elle crée. Si vous avez développé une bibliothèque, un module, ou tout autre outil intéressant à utiliser avec Mailgun, nous serions ravis de le découvrir et de le mettre en avant sur notre blog.
Image pour Utiliser Mailgun avec les recettes Capistrano

Mailgun a été créé pour être un remède aux difficultés de développement d’emails. C’est pourquoi nous sommes toujours ravis de voir l’équipe de développement aller plus loin avec notre plateforme grâce aux outils qu’elle crée. Si vous avez développé une bibliothèque, un module, ou tout autre outil intéressant à utiliser avec Mailgun, nous serions ravis de le découvrir et de le mettre en avant sur notre blog.

L’article ci-dessous a été rédigé par Spike Grobstein, ingénieur DevOps senior chez Ticket Evolution qui possède plus de dix ans d’expérience avec Linux et se spécialise dans l’automatisation et le déploiement.

**********

Envoyer des emails manuellement après un déploiement réussi est fastidieux. J’ai donc décidé d’écrire une recette Capistrano pour automatiser ce processus en utilisant Mailgun. Vous pouvez obtenir le code complet ici. Vous aurez besoin d’un compte Mailgun, mais il existe un abonnement gratuit qui inclut l’accès à toutes les API de Mailgun. Vous pouvez l’utiliser pour envoyer jusqu’à 200 emails par jour, ce qui vous permet de tester la solution et de voir si elle vous convient.

Pour envoyer une notification après le déploiement, ajoutez le code suivant à votre fichier deploy.rb :

set :mailgun_api_key, 'key-12345678901234567890123456789012' # votre clé API Mailgun
set :mailgun_api_key, 'key-12345678901234567890123456789012' # votre clé API Mailgun
set :mailgun_domain, 'example.com' # votre domaine d'email Mailgun
set :mailgun_from, 'deployment@example.com' # l'expéditeur apparent de l'email
set :mailgun_recipients, [ 'you@example.com', 'otherguy@example.com' ] # les destinataires de l'email
# créer un déclencheur après le déploiement
after :deploy, 'mailgun_notify'

C’est tout. Lors d’un déploiement, le système devrait automatiquement envoyer un email utilisant les modèles texte et HTML intégrés.

Vous pouvez également envoyer des emails comprenant des variables plus complexes. Découvrez l’exemple ci-dessous, qui envoie des emails différents aux équipes de développement et des opérations. Si vous souhaitez utiliser ce code, il vous suffit de le placer dans votre fichier deploy.rb :

# lors de l'utilisation de send_email, les deux paramètres suivants sont REQUIS
set :mailgun_api_key, 'key-12345678901234567890123456789012' # votre clé API Mailgun
set :mailgun_domain, 'example.com' # votre domaine d'email Mailgun
set :mailgun_recipient_domain, 'example.com' # ajouter ceci à toute adresse email non qualifiée
set(:email_body) { abort "Veuillez définir email_body avec `-s email_body='ceci est le corps de l'email'" }
# quelques variables que nous utiliserons lors de l'appel à mailgun.send_email
set :ops_emails, [ 'alice', 'bob' ]
set :dev_emails, [ 'carl@contractors.com', 'dave' ]
# quelques tâches de base
namespace :email do
task :ops do
mailgun.send_email(
:to => ops_emails, # build_recipients est appelé automatiquement par Capistrano::Mailgun
:from => 'some_dude@example.com',
:subject => "vous venez d'être ciblé par Mailgun",
:text => email_body
)
end
task :devs do
mailgun.send_email(
:to => 'no-reply@example.com',
:from => 'no-reply@example.com',
:bcc => mailgun.build_recipients(dev_emails, 'audit.example.com'), # remarquez le domaine différent
:subject => "Équipe de développement",
:text => email_body
)
end
end

Ceci définit deux tâches pouvant être utilisées pour envoyer des emails aux opérations ou au développement. La tâche email:ops utilise une variable Capistrano email_body qui doit être définie en ligne de commande. Avec cet exemple, vous pouvez envoyer un email à l’équipe des opérations comme suit :

cap email:ops -s email_body="Vous êtes géniaux. Continuez comme ça"

Vous pouvez également tirer parti de :text_template et/ou :html_template pour des messages plus complexes. Ce qui précède n’est qu’un exemple.

Remarquez également l’utilisation de mailgun.build_recipients. La documentation complète est disponible sur GitHub.

J’espère que ce code vous aidera à réduire la complexité liée à la gestion des déploiements à grande échelle. Dites-moi ce que vous en pensez !

Fondée en avril 2010, l’entreprise Ticket Evolution crée des logiciels et des services qui gèrent l’exécution, la compensation et le règlement en temps réel des échanges de tickets pour des événements. Si vous avez déjà acheté un ticket pour un match de sport en ligne, ou appelé un courtier pour réserver des places de concert, il y a de fortes chances que notre système ait été utilisé à un moment donné. L’équipe de Ticket Evolution est fière de créer un environnement idéal pour apprendre et contribuer à des projets passionnants. Elle relève régulièrement des défis techniques complexes tout en se tenant au courant des nouvelles technologies et des principes fondamentaux de l’informatique. L’équipe est également en plein recrutement!