Email

Verwendung von Mailgun mit Capistrano-Rezepten

Mailgun wurde als Lösung für die Hürden bei der E-Mail-Entwicklung geschaffen. Deshalb freut es uns immer sehr, wenn Entwicklungsteams unsere Plattform mit ihren eigenen Tools noch einen Schritt weiterbringen. Wenn Sie eine interessante Bibliothek, ein Modul oder Ähnliches für die Nutzung mit Mailgun entwickelt haben, würden wir gerne davon erfahren und es auf unserem Blog vorstellen.
Bild für Verwendung von Mailgun mit Capistrano-Rezepten

Mailgun wurde als Lösung für die Hürden bei der E-Mail-Entwicklung geschaffen. Deshalb freut es uns immer sehr, wenn Entwicklungsteams unsere Plattform mit ihren eigenen Tools noch einen Schritt weiterbringen. Wenn Sie eine interessante Bibliothek, ein Modul oder Ähnliches für die Nutzung mit Mailgun entwickelt haben, würden wir gerne davon erfahren und es auf unserem Blog vorstellen.

Der folgende Beitrag wurde von Spike Grobstein verfasst, Sr. DevOps Engineer bei Ticket Evolution mit über zehn Jahren Erfahrung mit Linux, spezialisiert auf Automatisierung und Deployment.

**********

Nach einem erfolgreichen Deployment manuell E-Mails zu versenden, ist lästig. Daher habe ich beschlossen, ein Capistrano-Rezept zu schreiben, um diesen Prozess mit Mailgun zu automatisieren. Sie finden den vollständigen Code hier. Sie benötigen ein Mailgun-Konto. Es gibt jedoch ein kostenloses Abonnement, das den Zugriff auf alle Mailgun-APIs beinhaltet und mit dem Sie bis zu 200 E-Mails pro Tag versenden, um alles zu testen und sich selbst zu überzeugen.

Um nach dem Deployment eine Benachrichtigung zu senden, fügen Sie Folgendes zu Ihrer Datei deploy.rb hinzu:

set :mailgun_api_key, 'key-12345678901234567890123456789012' # Ihr Mailgun-API-Schlüssel
set :mailgun_api_key, 'key-12345678901234567890123456789012' # Ihr Mailgun-API-Schlüssel
set :mailgun_domain, 'example.com' # Ihre Mailgun-E-Mail-Domain
set :mailgun_from, 'deployment@example.com' # von wem die E-Mail scheinbar stammt
set :mailgun_recipients, [ 'you@example.com', 'otherguy@example.com' ] # wer die E-Mail erhält
# einen After-Deploy-Hook erstellen
after :deploy, 'mailgun_notify'

Das war’s. Wenn Sie ein Deployment durchführen, sollte automatisch eine E-Mail über die integrierten Text- und HTML-Vorlagen gesendet werden.

Versenden Sie auch E-Mails, die komplexere Variablen enthalten. Sehen Sie sich das folgende Beispiel an, das unterschiedliche E-Mails an die Dev- und Ops-Teams sendet. Wenn Sie diesen Code verwenden möchten, fügen Sie ihn einfach in Ihre Datei deploy.rb ein:

# Bei der Verwendung von send_email sind die folgenden zwei Einstellungen ERFORDERLICH
set :mailgun_api_key, 'key-12345678901234567890123456789012' # Ihr Mailgun-API-Schlüssel
set :mailgun_domain, 'example.com' # Ihre Mailgun-E-Mail-Domain
set :mailgun_recipient_domain, 'example.com' # Dies an alle nicht qualifizierten E-Mail-Adressen anhängen
set(:email_body) { abort "Bitte legen Sie email_body mit `-s email_body='Dies ist der Text der E-Mail'\" fest }
# einige Variablen, die wir beim Aufruf von mailgun.send_email verwenden werden
set :ops_emails, [ 'alice', 'bob' ]
set :dev_emails, [ 'carl@contractors.com', 'dave' ]
# einige grundlegende Aufgaben
namespace :email do
task :ops do
mailgun.send_email(
:to => ops_emails, # build_recipients wird automatisch von Capistrano::Mailgun aufgerufen
:from => 'some_dude@example.com',
:subject => 'Sie wurden soeben mit Mailgun benachrichtigt',
: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'), # Beachten Sie die andere Domain
:subject => 'Ihr seid nur das Entwicklungsteam',
:text => email_body
)
end
end

Dies definiert zwei Aufgaben, die zum Versenden von E-Mails an Ops- oder Dev-Teams verwendet werden. Die Aufgabe email:ops verwendet eine Capistrano-Variable email_body , die über die Befehlszeile festgelegt werden sollte. Mit diesem Beispiel könnten Sie eine E-Mail wie die folgende an die Ops-Teams senden:

cap email:ops -s email_body="Ihr seid großartig. Weiter so"

Nutzen Sie für komplexere Nachrichten auch :text_template und/oder :html_template. Das Obige ist nur ein Beispiel.

Beachten Sie auch die Verwendung von mailgun.build_recipients. Die vollständige Dokumentation ist auf Github verfügbar.

Ich hoffe, dass dieser Code dazu beiträgt, die Verwaltung großer Deployments etwas weniger komplex zu gestalten. Lassen Sie mich wissen, was Sie davon halten.

Ticket Evolution wurde im April 2010 gegründet und entwickelt Software und Dienste, die die Ausführung, das Clearing und die Abrechnung von Event-Ticket-Transaktionen in Echtzeit abwickeln. Wenn Sie jemals ein Ticket für ein Sportspiel online gekauft oder eine Agentur für Konzertkarten angerufen haben, ist die Wahrscheinlichkeit groß, dass unser System irgendwo dazwischen zum Einsatz kam. Das Team von Ticket Evolution ist stolz darauf, ein großartiges Umfeld zu schaffen, in dem man lernen und an spannenden Projekten mitwirken kann. Sie lösen regelmäßig komplexe technische Herausforderungen und bleiben sowohl bei neuen Technologien als auch in der bewährten Informatik auf dem neuesten Stand. Außerdem suchen sie Verstärkung!