Domanda

Ho lavorato su un app rotaie che utilizza il plugin di autenticazione riposante. Si richiede un nuovo utente per attivare il proprio account di posta elettronica attraverso la verifica. Questo ha lavorato fino a poche ore fa, quando l'applicazione improvvisamente ha cominciato a fallire al momento della consegna e-mail. Invece mi sono salutato con il seguente messaggio di errore:

 undefined method `perform_delivery_SMTP' for #<UserMailer:0x28ec7ac>

Sono ritornato ad una vecchia versione, creato nuove applicazioni con ActionMailer, reinstallato rotaie, reinstallato tutti i plugin e le gemme, ma l'errore persiste. Qualcuno ha mai visto questo errore prima? Sembrerebbe che ho bisogno di aggiungere il metodo perform_delivery_SMTP al modello UserMailer, ma come e perché? Grazie.

È stato utile?

Soluzione

Dove si configura il programma di posta?

sto indovinando che il vostro metodo di consegna è impostata in questo modo

ActionMailer::Base.delivery_method 'SMTP'

Usa :smtp al posto di 'SMTP'

ActionMailer presuppone che si intende utilizzare :sendmail, :test o deliver!

Usa che nel metodo delivery_method in questo modo

__send__("perform_delivery_#{delivery_method}", mail) if perform_deliveries

che significa che quando perform_delivery_SMTP è impostato su 'SMTP' proverà a chiamare perform_delivery_smtp, che non esiste, come hai scoperto. Quando si utilizza il simbolo <=> chiama <=>, che non esiste.

Altri suggerimenti

Coloro che sono stati alle prese con ActionMailer lavorando bene sul server locale (modalità di sviluppo) e non funziona in modalità di produzione dovrebbe prendere in considerazione seguente link:

http://filiptepper.com/ 2009/02/11 / suggerimento truccate-smtp_tlsrb-per-ruby-187 /

E 'risolto il mio problema, potrebbe essere utile anche per gli altri. In sostanza il problema è che “check_auth_args a Net :: SMTP prende argomenti diversi in Ruby 1.8.7 (che sto usando per lo sviluppo) e in Ruby 1.8.6 (messa in scena)”. E la cosa peggiore è che non lascia un errore nel file production.log. Per verificare che è stato davvero il problema ho dovuto correre ActionMailer per inviare e-mail da script / console dove ha sollevato l'errore del numero errato di argomenti ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top