Automatische E-Mails versenden mit Mandrill

Hallo und Herzlich Willkommen. In diesem Tutorial werden wir zusammen eine kleine Ruby On Rails Applikation erstellen, mit der wir Usern automatische E-Mails zusenden können. Dazu verwenden wir den Service von Mandrill.

Dauer: 16:40 min

Mandrill ist ein Produkt von Mailchimp und Mailchimp ist einer der besten wenn nicht sogar der beste Anbieter wenn es um den Einsatz von beispielsweise Newsletter Kampagnen geht. Zu den Einzelheiten von Mandrill kommen wir später noch, doch starten wir zuerst einmal mit einer neuen Ruby On Rails Applikation.

rails new meineMailApp
cd meineMailApp
rails server

Damit testen wir den Server und wie wir sehen die App läuft. Nun möchte ich, dass unsere Seite ein Feld für den Namen und ein Feld für die E-Mailadresse bereitstellt. Wir können dies recht schnell über Scaffolding lösen.

rails g scaffold user name:string email:string

Danach noch die Daten in der Datenbank migrieren und schon können wir User erstellen.

rake db:migrate

Rails liefert bereits intern einen hauseigenen Mailer mit. Wir können also über den Befehl rails g mailer uns die Möglichkeiten anzeigen lassen. Und den Mailer generieren wir mit

rails g mailer user_mailer signup_confirmation

Wenn wir uns nun den Programmcode genauer ansehen. app/controllers/user_controller.rb dann sehen wir im Bereich der Create Aktion findet die ganze Magie statt. Sobald also ein neuer Nutzer seine Eingabe bestätigt befinden wir uns hier. Dies bedeutet, dass wir genau in diesem Bereich die E-Mail anstoßen müssen. Kommentieren wir uns diesen Bereich einmal, damit wir später sofort wissen wo wir unsere Methode einfügen müssen.

#send email
UserMailer.signup_confirmation(@user).deliver

Per Default ignoriert Rails alle Fehler die durch das Versenden von Nachrichten entstehen, was nicht wirklich sehr hilfreich für uns ist. Wir stellen es daher auf true und erhalten im Falle von Fehlern auch eine Meldung.

config/environments/development.rb

config.action_mailer.raise_delivery_errors = true

 

class UserMailer < ApplicationMailer

  def signup_confirmation(user)
    @greeting = "Hi"
    @user = user

    mail to: user.email
  end
end

Spätestens jetzt solltest du dir einen kostenlosen Mandrill Account erstellen. Mit dem Free Account kannst du bis zu 2000 E-Mails im Monat versenden, dass sollte fürs erste ausreichen. Über das Settings Menü kannst du nun einen neuen API-KEY generieren.

config/environments/development.rb

Hier hatten wir vorhin schon die Fehlerausgabe beim Versand von Mails aktiviert. Zusätzlich konfigurieren wir hier jetzt die Einstellungen für die Verwendung von Mandrill.

# set delivery method to :smtp, :sendmail or :test
config.action_mailer.delivery_method = :smtp

# mandrill settings
config.action_mailer.smtp_settings = {
  :port => '587',
  :address => 'smtp.mandrillapp.com',
  :user_name => "deineMailadresse",
  :password => "deinAPI-KEY",
  :authentication => :plain,
}

 

Linkliste

www.mandrill.com