Question

Je travaille sur une application de rails qui utilise le plug-in d'authentification reposant. Il a besoin d'un nouvel utilisateur d'activer leur compte grâce à la vérification e-mail. Cela a travaillé jusqu'à il y a quelques heures, lorsque l'application a soudainement commencé à échouer sur la livraison de courrier électronique. Au lieu de cela, je suis accueilli avec le message d'erreur suivant:

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

Je suis revins à une ancienne révision, créé de nouvelles applications avec actionmailer, réinstallées rails, réinstallées tous les plugins et les pierres précieuses, mais l'erreur persiste. Quelqu'un at-il jamais vu cette erreur avant? Il semblerait que je dois ajouter la méthode perform_delivery_SMTP au modèle UserMailer, mais comment et pourquoi? Merci.

Était-ce utile?

La solution

Si vous configurez votre logiciel de messagerie?

Je suppose que votre mode de livraison est défini comme celui-ci

ActionMailer::Base.delivery_method 'SMTP'

Utilisez :smtp au lieu de 'SMTP'

ActionMailer suppose que vous utiliserez :sendmail, ou :test deliver!

Il utilise que dans la méthode comme si delivery_method

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

ce qui signifie que lorsque est réglé sur perform_delivery_SMTP « SMTP », il essaiera d'appeler perform_delivery_smtp, qui n'existe pas comme vous avez découvert. Lorsque vous utilisez le symbole qu'il appelle <=> <=>, qui n'existe.

Autres conseils

Ceux qui ont lutté avec le travail ActionMailer bien sur serveur local (mode de développement) et ne fonctionne pas en mode de production devrait envisager lien suivant:

http://filiptepper.com/ 2009/02/11 / indice de fixation-smtp_tlsrb-à-ruby-187 /

Il a résolu mon problème, pourrait être utile pour les autres aussi. Fondamentalement, le problème est que « dans check_auth_args Net :: SMTP prend des arguments en Ruby 1.8.7 (que je me sers pour le développement) et Ruby 1.8.6 (mise en scène) ». Et la pire chose est qu'il ne laisse pas d'erreur dans le fichier production.log. Pour vérifier qu'il était vraiment le problème que je devais courir ActionMailer pour envoyer des courriels à partir du script / console où il a soulevé l'erreur de nombre incorrect d'arguments ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top