はじめに
検索の仕方が悪いのかもしれないのだが、deviseの自動送信メールの日本語訳の定型文が見つからなかった。
なので、自分のポートフォリオで使った定型文を記事にしようと思います。
参考になるという方がいらっしゃれば幸いです。
前提
- 署名に記載するURL・問い合わせメールアドレスは環境変数(dotenv-railsのGem)を利用。
- メールの件名は、「devise-i18n」「devise-i18n-views」のGemを使って日本語訳されているものとする。
- 翻訳文は直訳ではなく、日本で一般的に使われているような文面で作成しました。間違い・不足がないように心がけましたが、心優しい方は、間違い・不足の部分を発見されたらお気軽にご指摘くださると幸いです。
- 後でI18n対応というものを知ったので、この記事では本文のI18n対応はしてません。翻訳文のみ直接テンプレートファイルに記載してます。多言語対応したいという時は、下記を参照すると良いと思います。
バージョン情報
- ruby 2.6.3
- rails 6.0.2
翻訳
deviseにプリセットされるファイルは下記の5つです。
- 会員登録の確認メール:(
confirmation_instructions.html.erb
) - 元メールアドレスへの変更通知メール:(
email_changed.html.erb
) - パスワードの変更完了メール:(
password_change.html.erb
) - メールアドレスの変更確認メール:(
reset_password_instructions.html.erb
) - アカウントロックのお知らせメール:(
unlock_instructions.html.erb
)
こちらの翻訳文を下記に記載します。
会員登録の確認メール
app/views/devise/mailer/confirmation_instructions.html.erb
<p>※このメールは自動送信メールです。</p>
<p><%= @email %> 様</p>
<p>「<%= ENV['APP_NAME'] %>」事務局でございます。</p>
<p>この度は「<%= ENV['APP_NAME'] %>」にご登録いただきありがとうございます。</p>
<p>下記のリンクからアカウントメールの確認をお願いいたします。</p>
<p><%= link_to 'アカウントメールの確認はこちら', confirmation_url(@resource, confirmation_token: @token) %></p>
<p>※このメールは返信しても届きません。お問い合わせはアプリを起動して「お問い合わせ」からお願いいたします。</p>
<p>
覚えがないのにこのメールが届いたという方<br>
ご迷惑をおかけし申し訳ありません。大変お手数ですが下記メールアドレスまでご連絡をお願いいたします。<br>
</p>
<p><%= ENV['MAIL_BCC'] %></p>
<p>――――――――――――――――――――――――――――――</p>
<%= ENV['APP_NAME'] %><br>
URL : <%= ENV['WEB_PROTOCOL'] %>://<%= ENV['WEB_HOST'] %><br>
Mail : <%= ENV['MAIL_BCC'] %><br>
<p>――――――――――――――――――――――――――――――</p>
元メールアドレスへの変更通知メール
app/views/devise/mailer/email_changed.html.erb
<p>※このメールは自動送信メールです。</p>
<p><%= @email %> 様</p>
<p>「<%= ENV['APP_NAME'] %>」事務局でございます。</p>
<% if @resource.try(:unconfirmed_email?) %>
<p>ご登録のメールアドレスが<%= @resource.unconfirmed_email %>に変更されたことをお知らせします。</p>
<% else %>
<p>ご登録のメールアドレスが<%= @resource.email %>に変更されたことをお知らせします。</p>
<% end %>
<p>
覚えがないのにこのメールが届いたという方<br>
ご迷惑をおかけし申し訳ありません。大変お手数ですが下記メールアドレスまでご連絡をお願いいたします。<br>
</p>
<p><%= ENV['MAIL_BCC'] %></p>
<p>――――――――――――――――――――――――――――――</p>
<%= ENV['APP_NAME'] %><br>
URL : <%= ENV['WEB_PROTOCOL'] %>://<%= ENV['WEB_HOST'] %><br>
Mail : <%= ENV['MAIL_BCC'] %><br>
<p>――――――――――――――――――――――――――――――</p>
パスワードの変更完了メール
app/views/devise/mailer/password_change.html.erb
<p>※このメールは自動送信メールです。</p>
<p><%= @resource.email %> 様</p>
<p>「<%= ENV['APP_NAME'] %>」事務局でございます。</p>
<p>パスワードが変更されたことをお知らせいたします。</p>
<p>今後ともよろしくお願いいたします。</p>
<p>
覚えがないのにこのメールが届いたという方<br>
ご迷惑をおかけし申し訳ありません。大変お手数ですが下記メールアドレスまでご連絡をお願いいたします。<br>
</p>
<p><%= ENV['MAIL_BCC'] %></p>
<p>――――――――――――――――――――――――――――――</p>
<%= ENV['APP_NAME'] %><br>
URL : <%= ENV['WEB_PROTOCOL'] %>://<%= ENV['WEB_HOST'] %><br>
Mail : <%= ENV['MAIL_BCC'] %><br>
<p>――――――――――――――――――――――――――――――</p>
パスワードの変更確認メール
app/views/devise/mailer/reset_password_instructions.html.erb
<p>※このメールは自動送信メールです。</p>
<p><%= @resource.email %> 様</p>
<p>「<%= ENV['APP_NAME'] %>」事務局でございます。</p>
<p>パスワードが変更されたことをお知らせいたします。</p>
<p>今後ともよろしくお願いいたします。</p>
<p>
覚えがないのにこのメールが届いたという方<br>
ご迷惑をおかけし申し訳ありません。大変お手数ですが下記メールアドレスまでご連絡をお願いいたします。<br>
</p>
<p><%= ENV['MAIL_BCC'] %></p>
<p>――――――――――――――――――――――――――――――</p>
<%= ENV['APP_NAME'] %><br>
URL : <%= ENV['WEB_PROTOCOL'] %>://<%= ENV['WEB_HOST'] %><br>
Mail : <%= ENV['MAIL_BCC'] %><br>
<p>――――――――――――――――――――――――――――――</p>
アカウントロックのお知らせメール
app/views/devise/mailer/unlock_instructions.html.erb
<p>※このメールは自動送信メールです。</p>
<p><%= @resource.email %>様</p>
<p>「<%= ENV['APP_NAME'] %>」事務局でございます。</p>
<p>サインインの失敗回数が上限に達し、アカウントがロックされました。</p>
<p>下記のリンクをクリックすると、アカウントのロックが解除されます。</p>
<p><%= link_to 'アカウントをアンロックする', unlock_url(@resource, unlock_token: @token) %></p>
<p>
覚えがないのにこのメールが届いたという方<br>
ご迷惑をおかけし申し訳ありません。大変お手数ですが下記メールアドレスまでご連絡をお願いいたします。<br>
</p>
<p><%= ENV['MAIL_BCC'] %></p>
<p>――――――――――――――――――――――――――――――</p>
<%= ENV['APP_NAME'] %><br>
URL : <%= ENV['WEB_PROTOCOL'] %>://<%= ENV['WEB_HOST'] %><br>
Mail : <%= ENV['MAIL_BCC'] %><br>
<p>――――――――――――――――――――――――――――――</p>
検証方法
ページごとに自動送信メールと、検証方法を下記に記載する。
- 会員登録ページ
- 会員登録の確認メール
- ユーザー情報編集ページ
- パスワードの変更完了メール
- メールアドレスの変更確認メール
- 元メールアドレスへの変更通知メール
- ログインページ
- アカウントロックのお知らせメール
会員登録ページ
- 会員登録の仮登録を行い、「会員登録の確認メール」を送信させる
ユーザー情報編集ページ
-
パスワード変更を行い、「パスワードの変更完了メール」を送信させる
-
メールアドレス変更を行い、「メールアドレスの変更確認メール」を送信させる
-
「メールアドレスの変更確認メール」でアカウントのメールアドレスが変更完了した時に、「メールアドレスの変更確認メール」を送信させる
※「メールアドレスの変更確認メール」が送信されない場合は下記参照
config/initializers/devise.rb
# ・・・ 省略
# Send a notification to the original email when the user's email is changed.
config.send_email_changed_notification = true # <= trueにすると、元のメールへ「メールアドレスの変更確認メール」を送信させる
# ・・・ 省略
ログインページ
- ログインを設定した回数分失敗させ、「アカウントロックのお知らせメール」を送信させる
※失敗回数の設定は下記参照
config/initializers/devise.rb
# ・・・ 省略
# Number of authentication tries before locking an account if lock_strategy
# is failed attempts.
config.maximum_attempts = 20 #<= 20回失敗するとアカウントロックするという意味
# ・・・ 省略
※アカウントロックお知らせメールが送信されない場合は下記参照
config/initializers/devise.rb
# ・・・ 省略
# Defines which strategy will be used to unlock an account.
# :email = Sends an unlock link to the user email
# :time = Re-enables login after a certain amount of time (see :unlock_in below)
# :both = Enables both strategies
# :none = No unlock strategy. You should handle unlocking by yourself.
config.unlock_strategy = :email # <= 「:email」にすると、「アカウントロックのお知らせメール」でアカウントを復旧できる
# ・・・ 省略
課題・わからなかったところ
- I18n対応をすると、さらに良いのではないかと思った。次回挑戦する。
さいごに
Deviseのメールが送信されるタイミングなど知るきっかけになった。