Mit meiner Rails Site, wenn ich versuche, Mail über GMail zu senden, funktioniert es perfekt. Aber wenn ich versuche, es durch MandrillApp zu schicken, gibt es die folgende Fehlermeldung (RController.create ist, wo der Befehl liefern genannt wird):Rails Mailer Net :: SMTPServerBusy
Net::SMTPServerBusy in RController#create
454 4.7.1 <[email protected]>: Relay access denied
Hier ist meine config/Umgebungen/development.rb Datei:
# ActionMailer Config
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.default :charset => "utf-8"
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
# config.action_mailer.smtp_settings = {
# :address => "smtp.gmail.com",
# :port => 587,
# :domain => 'gmail.com',
# :user_name => '[email protected]',
# :password => 'password',
# :authentication => 'plain',
# :enable_starttls_auto => true }
config.action_mailer.smtp_settings = {
:address => "smtp.mandrillapp.com",
:port => 587,
:user_name => ENV["EMAIL"],
:password => ENV["PASSWORD"]
}
Wie oben erwähnt, funktioniert der Code nicht - ich bekomme keine E-Mail und keine Fehler. Wenn ich von GMail zum Senden wechsle, erhalte ich fast sofort eine E-Mail. Ich habe noch nie zuvor mit Mandrill gearbeitet, daher wäre jede Hilfe hilfreich.
Danke das hat für mich funktioniert. Sie sollten Ihre eigene Antwort akzeptieren. Ich musste die 'ENV' und die' '' 'wie' 'EMAIL'' loswerden. – LearningRoR
Können Sie Ihre Lösung klären? Ich habe gerade diese Zeile in meinem smtp_settings -: password => ENV ['MANDRILL_API_KEY']. Wie soll diese Zeile laut Ihrer Lösung lauten? – ajporterfield
Wenn Sie MANDRILL_API_KEY nicht als Umgebungsvariable, sondern als Programmvariable definieren, brauchen Sie nur: 'password => MANDRILL_API_KEY' anstelle von' password => ENV ['MANDRILL_API_KEY'] '. Eine Umgebungsvariable ist sicherer, da Ihr API-Schlüssel auf Ihrem Computer/Server statt auf Ihrer Site gespeichert wird (im Prinzip könnte jemand Ihren Code bekommen und Ihren Schlüssel immer noch nicht bekommen), aber eine normale Variable ist einfacher zu implementieren - hängt davon ab, wie besorgt Sie mit Sicherheit sind (obwohl Sie eigentlich eine Umgebungsvariable machen sollten). – camdroid