导轨的ActionMailer与宁静的认证插件不会传递邮件
-
21-08-2019 - |
题
我一直在使用的宁静的认证插件一个Rails应用程序。它需要一个新的用户通过电子邮件验证,激活他们的帐户。这一直工作,直到几个小时前,当应用程序突然开始失败的电子邮件传送。代替我迎接以下错误消息:
undefined method `perform_delivery_SMTP' for #<UserMailer:0x28ec7ac>
我已经恢复到旧版本,创建新的应用程序使用的ActionMailer,重新安装护栏,重新安装所有的插件和宝石,但错误依然存在。有没有人见过这个错误之前?这似乎是我需要的perform_delivery_SMTP方法添加到UserMailer模式,而是如何和为什么?感谢。
解决方案
你在哪里配置您的邮件?
我猜测,您的递送方法被设置这样
ActionMailer::Base.delivery_method 'SMTP'
使用的 :smtp
强>而不是 'SMTP'
的ActionMailer假定将使用:smtp
,:sendmail
或:test
它使用在像这样的方法deliver!
__send__("perform_delivery_#{delivery_method}", mail) if perform_deliveries
这意味着当delivery_method
设置为“SMTP”,它会尝试打电话perform_delivery_SMTP
,它不存在,你发现了。当使用符号:smtp
它调用perform_delivery_smtp
,其确实存在。
其他提示
这些谁一直在努力与工作的ActionMailer本地服务器(开发模式)罚款,而不是在生产模式下工作应考虑以下链接:
http://filiptepper.com/ 2009/02/11 /提示的固定-smtp_tlsrb换红宝石-187 /
这解决了我的问题,可能是别人也有帮助。基本问题是,“check_auth_args中的Net :: SMTP采取不同论点的Ruby 1.8.7(我使用它的发展)和红宝石1.8.6(分期)”。而最糟糕的是,它不会在production.log文件留下一个错误。为了验证它确实是我不得不跑的ActionMailer从脚本/控制台发送电子邮件的地方提出了错误的参数数目......
的错误的问题