2016-07-30 16 views
1

Ich versuche herauszufinden, wie Transaktions-E-Mail von meiner Rails 4 App senden.Rails 4 - Postmark Integration

Ich habe Tutorials für den Poststempel Edelstein gefunden, aber ich kämpfe, um die Lücken zwischen dem zu schließen, was in den Tutorials angenommen wird (wo die vorgeschlagenen Schritte zu tun!) Und was ich weiß.

ich installiert haben beide den Rubin und die Schienen Edelsteine ​​in meinem gemfile:

gem 'postmark-rails', '~> 0.13.0' 
gem 'postmark' 

ich den Stempel config meine config/application.rb hinzugefügt haben:

config.action_mailer.delivery_method = :postmark 
    config.action_mailer.postmark_settings = { :api_token => ENV['POSTMARKKEY'] } 

Ich will versuchen, E-Mail-Vorlagen im Poststempel zu erstellen und zu verwenden.

Die Anweisungen in dem Stempel gem docs sagen, dass ich zu müssen:

Create an instance of Postmark::ApiClient to start sending emails. 

your_api_token = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' 
client = Postmark::ApiClient.new(your_api_token) 

Ich weiß nicht, wie Sie diesen Schritt zu tun? Wo schreibe ich die zweite Zeile? Ich habe mein API-Token in meiner Konfiguration gespeichert. Ich weiß nicht, wie man eine Instanz des Poststempel-API-Clients erstellt.

Kann mir jemand auf die nächsten Schritte (oder ein ausführlicheres Tutorial) hinweisen?

Antwort

3

Nachdem Sie die Edelsteine ​​installiert haben, müssen Sie einen Mailer erstellen. Ich nehme an, dass Sie die API-Schlüssel usw. bereits in der richtigen Weise konfiguriert haben, so dass ich mich darauf konzentrieren werde, eine vorbereitete/statische E-Mail zu versenden.

Lässt app/mailers/postmark_mailer.rb Datei mit dem folgenden Inhalt erstellen.

class PostmarkMailer < ActionMailer::Base 
    default :from => "[email protected]>" 
    def invite(current_user) 
    @user = current_user 
    mail(
     :subject => 'Subject', 
     :to  => @user.email, 
     :return => '[email protected]', 
     :track_opens => 'true' 
    ) 
    end 
end 

Wir können dann diese Mailer in der Datei app/views/postmark_mailer/template invite.html.erb ist das folgende Markup Lassen Sie verwenden Sie den Start.

Sie können es wie jede andere .html.erb Vorlage mit Tags, HTML und ähnlichem schreiben.

Um diese E-Mail tatsächlich zu versenden, müssen Sie wie folgt eine Aktion in Ihren Controller eingeben.

PostmarkMailer.invite(current_user) 

Alternativ, wenn Sie diese E-Mail wollen beim Besuch Homepage gesendet werden, wäre es die meisten aussehen wahrscheinlich wie folgt aus:

app/controllers/home_controller.rb mit Inhalt

class HomeController < ApplicationController 

    # GET/
    def index 
    PostmarkMailer.invite(current_user) 
    end 
end 

und entsprechende Route

config/routes.rb mit Inhalt

root :to => 'home#index' 

Ich hoffe, dies beantwortet Ihre Frage.