私は実際に電子メールを送信することなく、メーラーの景色を見てすることはできますか?
-
24-09-2019 - |
質問
私は、これは一般的な状況かもしれないと思う...私は新しいパスワードのフォームをトリガするために、ユーザーにリンクを送信Railsのアプリのためのパスワード回復システムに取り組んでいます。かなり標準のもの。
私の開発サーバ上で私はローカルのメールサーバーを持っていないので、任意のメール送信ソフトウェアは、私が発生するすべてのエラーを抑制するためconfig/environments/development.rb
を持ってconfig.action_mailer.raise_delivery_errors = false
では(sendmailの、SMTP設定など)を有効または構成されていません有効。これは、すべて良いと罰金です。
しかし、私は実際にメールを送信することなく、生産の間、電子メールのコンテンツを視聴したいと思います。私はそれが送信(または擬似的な送信された)メールが正しいコンテンツを持っていると主張し、テストを通じてこれを行うの種類に可能だということを知っています。電子メールのHTTP-務めたバージョンを表示するだけで、一時的に生産にリルートビューか何か、どのような方法には、盲目的にアサーションを作るのではなく、ありますか?
解決
あなたは「password_reminder」方式でUserMailerを設定している場合は、代わりにcreate_password_reminder
のdeliver_password_reminder
を呼び出すことができ、それが実際に送信せずにメッセージを作成します。その後、ログファイルに出力を送ることができます:
UserMailer.deliver_password_reminder
あなたはと置き換えることができます
logger.info UserMailer.create_password_reminder.encoded
またはファイルに送信したい場合、あなたは同様にそれを行うことができます。
ということでは言っても、本番環境では、実際にこの種のもののための場所ではありません。私のメーラーは、完全なテストカバレッジを持っているので、私は、これを行う必要があったことがありません。私が代わりにそのオプションに見えると思いますが、私はあなたの完全な状況を知らないので、あなたが求めて答えを与えました。ハッピーコーディング:)