2010-11-08 3 views
5

Ich versuche sendgrid läuft auf meinem Rails 3 App mit Devise zu bekommen, so entwickeln können .. Anmeldung E-Mails usw. auszusendenRails 3 - sendgrid Setup unterstützen entwickeln

Ich habe die folgende, config/setup_mail. rb:

ActionMailer::Base.smtp_settings = { 
    :address => "smtp.sendgrid.net", 
    :port => '25', 
    :domain => "XXXXXXXXX.com", 
    :authentication => :plain, 
    :user_name => "[email protected]", 
    :password => "XXXXXXXXXX" 
} 

Sollte das nicht genug sein, damit Rails + Devise Registrierungs-E-Mails versenden kann? Oder brauche ich etwas anderes oder ein Juwel?

Die Protokolle zeigen an, dass die E-Mail generiert wird, aber ich sehe nichts im Protokoll darüber, dass MAIL erfolgreich gesendet wurde oder fehlgeschlagen ist. Und mein sendgrid-Account sagt immer noch 0/200 E-Mails gesendet.

Gibt es einen besseren Weg in Rails zu sehen, was passiert, wenn es versucht, die E-Mail zu senden?

Danke

Antwort

2

Sie können das Setup löschen, das Sie haben.

heroku addons:create sendgrid:free 

Das sind die einzigen Codeteile, die Sie benötigen, um eine E-Mail mit heroku zu konfigurieren.

Achten Sie darauf, Ihren Host-Link-Setup haben, die ich glaube, Sie haben, weil sie es zum Absturz bringen, aber wenn Sie nicht haben:

config.action_mailer.default_url_options = { :host => 'myapp.heroku.com' } 

Eigentlich ist diese letzte lien ist anders auf rails3 so achten Sie auf dass :)

Die "config" Zeile muss zu Ihrer "production.rb" Datei hinzugefügt werden.

+1

die Sache ist, ich möchte es nicht mit Heroku einrichten, sondern verwenden Sie sendgrig direkt mich selbst, wie ich es brauche, um lokal zu arbeiten. – AnApprentice

+0

immer etwas Besonderes sein :). Entschuldige einfach zu viele Variablen, die ich persönlich in letzter Zeit nicht mehr gesehen habe. – s84

+0

Die einzige Sache, die ich finden kann, ist auf Ihre 'default_url_options' setzen Sie es als sendgrid url' smtp.sendgrid.net' – s84

0

Ich suche selbst die gleiche Antwort. In Initialisierer/devise.rb lese ich:

# Configure the class responsible to send e-mails. 
    # config.mailer = "Devise::Mailer" 

Ich frage mich, ob Devise gesagt werden muss Action verwenden.

+0

Das war es nicht. Ich habe eine JSON-Abfrage verwendet, um die sendgrid-Anmeldeinformationen zu überprüfen. https://sendgrid.com/api/[email protected]&api_key=keyhere&[email protected]&toname=Destination&subject=Example%20Subject&text=testingtextbody&[email protected] uk Und das hat gut funktioniert. Es scheint, dass ich eine E-Mail von Devise bekommen kann, wenn ich die Passwort-Route benutze, aber nicht, wenn ich das Anmeldeformular verwende. –

+1

OK, mein Problem war niemals, dass E-Mails nicht von heroku an sendgrid gesendet wurden Legen Sie die Optionen des Devise-Modells so fest, dass sie bestätigbar sind (aber ich hatte: wiederherstellbar, weshalb meine Wiederherstellungs-E-Mails funktionierten). –