Redmineでもletter_openerを使って調整したメールを確認してみよう。
これはなに?
- Redmineでは、メール本文のヘッダやフッタのカスタマイズができます
- このカスタマイズが問題ないかどうか、letter_openerというgemを使って確認する方法をご紹介します
どういう人向けの記事?
このgemは、Railsでは非常に利用されているgemです。
どちらかというとRubyやRails専門ではないけれど、Redmineを運用したり、必要に応じてカスタマイズしたい人向けになります。
-
developmentモード で利用が前提のgemのため、開発環境で検証する方法を理解している方向けになります
- カスタマイズの際に、まずdevelopmentモードで機能を追加調整する方針をとっている方
- その上で本番に適用する、という流れを実施できる方
どういうシーンに使うと便利?
- Redmineでメール部分のカスタマイズをしている方向け
- 管理画面からのヘッダ / フッタ調整だけでなく、内部のメール用のテンプレートをカスタマイズしたい場合
- プラグインでメールをカスタマイズしたり通知を追加したりする場合
想定通りの文言が当てはまってメールが生成されているかを確認しやすくなります。
やらないこと
- Qiita上にもletter_openerの記事はたくさんありますので、詳細には触れません
letter_openerの設定
公式のREADMEに記載がある通り進めればOKです。
RedmineもRailsアプリケーションなので、Gemfileとdevelopment.rbの設定のみで利用できるようになります。
まずはgemの追加
- Redmineのソースをダウンロード(clone) します
- Redmine直下のGemfileに、以下を追記します
gem "letter_opener", :group => :development
追加したら、この追加gemを取得するため、bundle install
を実行します。すでにRedmineに必要なgemが入っており、あとからその環境に追加する場合でも、同じくbundle install (bundle) であれば、追加で入ります。
# オプション無しだとdevelopmentモードのgemを取得します
bundle install
設定ファイルの調整
Redmine公式のメール設定を確認
Redmineの公式サイトでの、メール送信設定は以下に記載があります。
- https://redmine.org/projects/redmine/wiki/EmailConfiguration (Email Configuration)
基本は、config/configuration.yml.example
を元に config/configuration.yml
ファイルを作成し、設定をしていきます。
developmentモードでも実際にsmtpを使ってメール送信を試すことができますが、デフォルトでは送信はされず、ログに送信メッセージが出力されます。
letter_openerの設定を追加する
letter_openerのREADMEに沿って設定する場合
developmentモードではメール送信をせず、letter_openerで確認する場合は、config/environments/development.rb
に追記します。
config.action_mailer.delivery_method = :letter_opener
config.action_mailer.perform_deliveries = true
Redmineにも config/environments/development.rb
があるので、上記の通りの追記で利用が可能です。
Redmineのconfig/configuration.ymlを使う場合
Redmine公式のメール設定にも記載がある通り、こちらでも送信設定を調整することができます。
delivery_methodをletter_openerに設定となります。
development:
email_delivery:
delivery_method: :letter_opener
perform_deliveries: true
メールを送って確認してみる
developmentモードでチケットを作成、終了してみた例です。
- メール送信対象のものは、tmp/letter_opener/ 以下に書き出されます
- 実際の送信内容と同じく、メールのテンプレートに変数が展開された形で書き出しになります
カスタマイズしたメールの確認
Redmineに慣れていない場合は、ユーザの方が直にメールに返信してしまう、ということもありがちです。
運用の初めのころは、そういったことも配慮して「このメールには返信しないでくださいね!」的なメッセージを追加していました。
Redmineの管理画面では、メール本文の上部と下部(ヘッダ / フッタ)に簡単にメッセージを追加できますので、試しに設定して、想定通りになっているか確認してみます。
Redmineの管理画面
結果はこのような感じ。
簡単ですが、十分に確認ができますね!
letter_opener_webも使う場合
letter_openerは、送信メールをファイルに書き出してくれるgemです。
さて、letter_openerはファイルシステムに書き出すため、ローカル開発環境やターミナルでの確認はできますが、開発環境がサーバにある場合は、ちょっと確認がしづらいですね。
こちらもRails開発ではポピュラーですが、letter_opener_webというgemを追加すると、Railsアプリケーションに同居する形で、ブラウザを通してletter_openerで書き出したメールを確認することができます。
追加するものは?
Gemfileに以下を追加します。
# developmentモードでのみ利用します
group :development do
gem 'letter_opener_web', '~> 1.0'
end
- gem "letter_opener" 単体を先に追加していれば、置き換えをします
- bundle installの際に、依存関係でletter_openerも入ります
- 上記の通り、letter_openerの設定が必要です
delivery_method = :letter_opener
ルーティングを追加
letter_opener_webのREADMEに記載のあるとおり、ルーティングを追加します。
- https://github.com/fgrehm/letter_opener_web#usage
- こうすることで、http://localhost:3000/letter_opener にアクセスすると、tmp/letter_opener のディレクトリが参照できます
- Redmineへは、
config/routes.rb
の末尾(最後のendの手前)に追加で大丈夫です
# 設定例
redmine $ svn diff config/routes.rb
Index: config/routes.rb
===================================================================
--- config/routes.rb (revision 19511)
+++ config/routes.rb (working copy)
@@ -374,4 +374,6 @@
end
end
end
+
+ mount LetterOpenerWeb::Engine, at: "/letter_opener" if Rails.env.development?
end
-
mount LetterOpenerWeb::Engine, at: "/letter_opener" if Rails.env.development?
を追加して再起動します
ブラウザから確認してみる
ふたたびメール送信対象の操作をしてみます。
こちらはチケット変更の例。
ブラウザでアクセスすると、新しいメールから降順に一覧が表示されます。
また、右側には最新のメールが表示されます。
キャプチャの左隅の、tmp/letter_opener/ 側の件数と一致します。
letter_opener_webの画面から、不要になったメールを削除することも可能です。
まとめ
以上、簡単な例でした。
一度通知が出てしまうと、相手のもとに届いてしまったメールは取り消せません。必要以上の情報が盛り込まれていないか?宛先は適切か?など、心配なことがありますね。
Redmineに限らず、慎重さが必要なメールに関しては、こういったツールでチェックができるというのは、とても助かりますね。
実運用の際の、なにかにお役に立てば幸いです。
Author And Source
この問題について(Redmineでもletter_openerを使って調整したメールを確認してみよう。), 我々は、より多くの情報をここで見つけました https://qiita.com/akiko-pusu/items/357a5fd55cf1241c8abc著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .