Wie binde ich meinen Rails-Mailer mit dem smtpapi-ruby-Juwel an Sendgrid? Ich habe ihre limited documentation verfolgt, aber meine E-Mails nicht durchlaufen, ich habe überprüft, dass meine SendGrid-Implementierung funktioniert gut, wenn Sie nur eine einfache E-Mail senden, so dass es nicht ist. Das ist, was ich habe:Rails Mailer mit SendGrid-Vorlage
user_controller.rb
def create
@user = User.new(user_params)
respond_to do |format|
if @user.save
format.html { redirect_to @user, notice: 'User was successfully created.' }
format.json { render :show, status: :created, location: @user }
header = Smtpapi::Header.new
header.add_to(@user.email)
header.add_substitution('user', [@user.name])
header.add_substitution('body', "You've registered! This is from the controller.")
header.add_filter('templates', 'enable', 1)
header.add_filter('templates', 'template_id', 'xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx')
header.to_json
UserNotifier.welcome(header).deliver
else
format.html { render :new }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
Mailer/user_notifier.rb
class UserNotifier < ApplicationMailer
default from: "[email protected]"
def welcome(header)
headers['X-SMTPAPI'] = hdr.to_json
mail(subject: "Welcome to the site!")
end
end
views/user_notifier/welcome.html.erb
<html>
<body>
Hi -user-<br />
Thanks so much for joining us!
<p>-body-</p>
Thanks,<br />
The Microblog Team
</body>
</html>
Ich sehe nicht, dass im SendGrid-Aktivitätsprotokoll irgendetwas passiert ist, daher wird es nicht einmal dorthin gesendet, zumindest ist das meine Vermutung.
Was mache ich falsch?
Ok, das macht Sinn, aber jetzt bekomme ich 'undefined lokale Variable oder Methode' Header‘für #' –
Godzilla74
Ihre 'ApplicationMailer' inheriths von 'ActionMailer :: Base'? Wenn nicht, können Sie versuchen, Folgendes zu verwenden: 'class UserNotifier
Aguardientico
Hatte die Zeile in' headers ['X-SMTPAPI'] = hdr.to_json' zu ändern, dann würde es reichen ... immer noch nicht obwohl durch. – Godzilla74