0

私は、安らかな認証プラグインを使用するレールアプリに取り組んできました。新しいユーザーは、電子メールの確認を通じてアカウントを有効にする必要があります。これは数時間前まで機能していましたが、アプリケーションが突然電子メールの配信に失敗し始めました。代わりに、次のエラー メッセージが表示されます。

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

古いリビジョンに戻し、actionmailer で新しいアプリを作成し、レールを再インストールし、すべてのプラグインと gem を再インストールしましたが、エラーは解決しません。誰もこのエラーを見たことがありますか? perform_delivery_SMTP メソッドを UserMailer モデルに追加する必要があるように思えますが、その方法と理由は? ありがとう。

4

2 に答える 2

3

メーラーはどこで設定しますか?

あなたの配送方法はこのように設定されていると思います

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、これは存在します。

于 2009-06-30T23:02:50.663 に答える
0

ActionMailer がローカル サーバー (開発モード) で正常に動作し、プロダクション モードでは動作しないことに苦労している人は、次のリンクを検討する必要があります。

http://filiptepper.com/2009/02/11/hint-fixing-smtp_tlsrb-for-ruby-187/

それは私の問題を解決しました。他の人にも役立つかもしれません。基本的な問題は、「Net::SMTP の check_auth_args が、Ruby 1.8.7 (開発用に使用) と Ruby 1.8.6 (ステージング) で異なる引数を取る」ことです。そして最悪なのは、production.log ファイルにエラーが残らないことです。それが本当に問題であることを確認するために、ActionMailer を実行してスクリプト/コンソールから電子メールを送信する必要がありましたが、引数の数が間違っているというエラーが発生しました…</p>

于 2009-10-03T12:54:07.863 に答える