4

これはよくある状況だと思います...私は、新しいパスワードフォームをトリガーするリンクをユーザーに送信するRailsアプリのパスワード回復システムに取り組んでいます。かなり標準的なもの。

私の開発サーバーでは、メール送信ソフトウェアを有効にしたり構成したりしていません (sendmail、SMTP 設定など) 。ローカル メール サーバーを有効にしていないため、発生するエラーを抑制しなければなりませんconfig/environments/development.rbconfig.action_mailer.raise_delivery_errors = falseこれはすべて問題ありません。

ただし、実際にメールを送信せずに、制作中にメールの内容を表示したいと考えています。テストを通じて、送信された (または偽の送信された) メールの内容が正しいことを確認することで、これを行うことができることを私は知っています。やみくもにアサーションを作成するのではなく、一時的に本番環境でビューなどを再ルーティングして、電子メールの HTTP 提供バージョンを表示する方法はありますか?

4

1 に答える 1

1

「password_reminder」メソッドを使用して UserMailer をセットアップしている場合は、create_password_reminder代わりに呼び出すdeliver_password_reminderことができ、実際に送信せずにメッセージを作成します。次に、出力をログ ファイルに送信できます。

あなたが持っている場所:

UserMailer.deliver_password_reminder

次のように置き換えることができます。

logger.info UserMailer.create_password_reminder.encoded

または、ファイルに送信したい場合は、それも可能です。

そうは言っても、実稼働環境は実際にはこの種の場所ではありません。私のメーラーには完全なテスト カバレッジがあるので、これを行う必要はありませんでした。代わりにそのオプションを検討しますが、あなたの完全な状況がわからないため、あなたが求めていた答えを出しました. ハッピーコーディング:)

于 2010-01-30T17:25:46.993 に答える