2010-10-31 19 views
6

Ecco le mie impostazioni smtp per Google Apps in setup_mail.rb.Rails 3: Impostazioni SMTP per Google Apps/Heroku

:address    => "smtp.gmail.com", 
    :port     => 587,     
    :domain    => 'mysite.co', 
    :user_name   => '[email protected]',  
    :password    => 'password',  
    :authentication  => 'plain',    
    :enable_starttls_auto => true 

miei ceppi di sviluppo mostrano in dettaglio le e-mail vengono generati ed inviati all'indirizzo di posta elettronica a destra ... ma non sono in arrivo. Posso solo pensare che ci deve essere qualcosa di sbagliato con le impostazioni sopra. Riesci a vedere qual è il problema?

Una volta risolto questo problema, avrei problemi a farlo funzionare su Heroku?


Nota: quanto sopra sta registrando un avvertimento deprecazione: Rails3

DEPRECATION WARNING: Giving a hash to body is deprecated, please use instance va 
riables instead. (called from process at C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gem 
s/actionmailer-3.0.0/lib/action_mailer/old_api.rb:77) 

risposta

2

Si è scoperto che il problema era altrove: un vecchio tutorial AuthLogic mi aveva indirizzato nella giusta direzione sull'invio dei codici di attivazione, ma la direzione sbagliata sull'invio delle e-mail stesse. Rails stava generando l'e-mail ma non lo stava inviando perché il codice del mail_helper non stava andando alla fase finale.

Se stai leggendo questo in retrospettiva, quello che ho imparato: assicurarsi che le Rails 3.0 user_mailer ha (o simile):

mail(:to => "#{user.login} <#{user.email}>", :subject => "Registered") 
0

Non ho usato, ma mi ricordo che reading inviati messaggi di posta elettronica in fase di sviluppo vengono inviati al mittente. Il tuo avviso di ritiro è perché stai definendo le variabili per il modello di email nel formato hash precedente. Rails 3 funziona differently. Nella mia esperienza di distribuzione di heroku funziona perfettamente, ma è necessario definire mx records.

+0

Ciao Marco. Puoi essere più specifico? Come si risolve effettivamente la deprecazione? Le e-mail inviate vengono reindirizzate al mittente nell'ambiente di sviluppo solo se si specifica un intercettore. – sscirrus

+0

Inoltre, ho aggiornato i miei record MX a Google Apps. Ho un certo numero di nuove e-mail sotto il mio nome di dominio che funzionano correttamente quando invio/rispondo a e-mail manualmente - la domanda è ora come faccio a ottenere Rails per inviare anche queste e-mail :) – sscirrus

5

Penso che se si utilizza rotaie 3, l'approccio corretto per l'installazione mail sarebbe seguire questo railscasts tutorial sul mailer di azione.

5

nel controller utente non dimenticare di aggiungere il .deliver

UserMailer.registration_confirmation(@user).deliver 

che è quello che mi ha sconcertato