10
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Rails・deviseの自動送信メールの日本語版を作ってみた

Posted at

はじめに

検索の仕方が悪いのかもしれないのだが、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>

検証方法

ページごとに自動送信メールと、検証方法を下記に記載する。

  • 会員登録ページ
  • 会員登録の確認メール
  • ユーザー情報編集ページ
  • パスワードの変更完了メール
  • メールアドレスの変更確認メール
  • 元メールアドレスへの変更通知メール
  • ログインページ
  • アカウントロックのお知らせメール

会員登録ページ

  1. 会員登録の仮登録を行い、「会員登録の確認メール」を送信させる

ユーザー情報編集ページ

  1. パスワード変更を行い、「パスワードの変更完了メール」を送信させる

  2. メールアドレス変更を行い、「メールアドレスの変更確認メール」を送信させる

  3. 「メールアドレスの変更確認メール」でアカウントのメールアドレスが変更完了した時に、「メールアドレスの変更確認メール」を送信させる

※「メールアドレスの変更確認メール」が送信されない場合は下記参照

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にすると、元のメールへ「メールアドレスの変更確認メール」を送信させる

  # ・・・ 省略

ログインページ

  1. ログインを設定した回数分失敗させ、「アカウントロックのお知らせメール」を送信させる

※失敗回数の設定は下記参照

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のメールが送信されるタイミングなど知るきっかけになった。

参考

Devise.rb設定ファイル項目まとめ

10
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?