Ich habe eine Schiene 4 App. Ich habe ActionMailer eingerichtet und kann Bestellbestätigungs-E-Mails über localhost und gmail versenden.Sendgrid auf Schienen eingerichtet 4
Ich installierte Sendgrid auf Heroku und folgte den Einrichtungsanweisungen. Ich erhalte eine Net::SMTPSyntaxError (501 Syntax error
meine environment.rb (ich habe sendgrid user/pwd in application.yml)
ActionMailer::Base.smtp_settings = {
:address => 'smtp.sendgrid.net',
:port => '587',
:authentication => :plain,
:user_name => ENV['SENDGRID_USERNAME'],
:password => ENV['SENDGRID_PASSWORD'],
:domain => 'heroku.com',
:enable_starttls_auto => true
}
in production.rb - die einzige actionamailer Einstellung Ich habe dies. Ich habe dies als Platzhalter, um später die echte Domain einzutragen. Ich verwende derzeit herokuapp.com.
config.action_mailer.default_url_options = { host: 'localhost:3000' }
in meinem orders_controller in der Reihenfolge create-Methode, rufe ich die unten.
AutoNotifier.orderconf_email(current_user, @order).deliver
auto_notifier.rb
class AutoNotifier < ActionMailer::Base
default from: "Test Email"
def orderconf_email(current_user, order)
@buyer = current_user
@order = order
mail(to: @buyer.email, subject: 'Thank you for your order.')
end
end
Was bin ich? Es funktioniert auf localhost mit gmail, so dass ich etwas in den sendgrid-Einstellungen oder in der default_url in production.rb-Datei fehlt.
Welchen Stack verwenden Sie in der Produktion? Hast du ENVs in heroku config? Weil Heroku ENVs nur auf Bamboo Stack automatisch hinzufügt, müssen Sie sie auf Cedar manuell hinzufügen, wie ich weiß. –
Ich bin auf Cedar. Ja, ich sehe den sendgrid user/pwd, wenn ich heroku config starte. – Moosa
Versuchen Sie den Host in production.rb zu Ihrem blabla-bla.herokuapp.com zu wechseln. Tatsächlich habe ich keine config.action_mailer ... Zeile in production.rb, und Sendgrid funktioniert ok. –