2010-11-08 12 views
5

Sto cercando di far funzionare SendGrid sul mio Rails 3 app con Devise, in modo da elaborare in grado di inviare messaggi di posta elettronica di registrazione ecc ..Rails 3 - configurazione SendGrid per sostenere elaborare

ho aggiunto il seguente, 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" 
} 

Non dovrebbe essere sufficiente per Rails + Devise per inviare e-mail di registrazione? O ho bisogno di qualcos'altro o di una gemma di qualche tipo?

I registri mostrano che l'e-mail è stata generata ma non vedo nulla nel registro in cui la MAIL sia stata inviata correttamente o in errore. E il mio account sendgrid dice ancora email 0/200 inviate.

C'è un modo migliore in Rails per vedere cosa succede quando cerca di inviare l'e-mail?

Grazie

risposta

2

È possibile cancellare l'impostazione che si ha.

heroku addons:create sendgrid:free 

Questo è l'unico codice di codice necessario per ottenere l'email configurata con heroku.

Assicurarsi di avere la configurazione host link che credo avete fatto perché causerebbe il crash, ma se non si dispone di:

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

In realtà questo ultimo pegno è diverso su Rails3 in modo da guardare fuori per che :)

La riga "config" deve essere aggiunta al file "production.rb".

+1

la cosa è che non voglio installarlo con Heroku, ma piuttosto usare direttamente sendgrig perché ne ho bisogno per funzionare localmente. – AnApprentice

+0

deve sempre essere speciale :). Mi dispiace troppe variabili che non ho passato di recente personalmente. – s84

+0

L'unica cosa che riesco a trovare è su "default_url_options" come URL di sendgrid "smtp.sendgrid.net" – s84

0

Sto cercando la stessa risposta io stesso. In intializers/devise.rb ho letto:

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

Mi chiedo se Devise deve essere detto di usare ActionMailer.

+0

Non era quello. Ho usato una query JSON per verificare le credenziali di sendgrid. https://sendgrid.com/api/[email protected]&api_key=keyhere&[email protected]&toname=Destination&subject=Example%20Subject&text=testingtextbody&[email protected] uk E quello ha funzionato bene. Sembra che io possa ricevere una email da Devise quando uso la route forgotpassword, ma non quando uso il modulo di registrazione –

+1

OK, il mio problema non è mai stato che le email non venivano inviate da heroku a sendgrid, il mio era che non avevo imposta le opzioni del modello Devise per includere: confirmable (ma ho avuto: recuperabile, ed è per questo che funzionano le mie e-mail di recupero). –