LoginSignup
1
0

More than 3 years have passed since last update.

deviseメール認証時、認証メールに画像を挿入する --備忘録--

Last updated at Posted at 2021-01-16

前提

deviceのログイン機能
【Rails】deviseを導入してみる

メールの認証機能
【devise】メール認証のサインアップ・イン・アウト機能
devise でメール認証を実装したい【Rails】

上記2つの機能を実装済みです。

mailerをオーバーライドし、メソッドを作成

「app/controllers/users」に「mailer.rb」を作成します。
deviceのmailerを継承します。

mailer.rb
class Users::Mailer < Devise::Mailer
end

「config/initializers/devise.rb」の設定をします

devise.rb
config.mailer = 'Users::Mailer'

挿入したい画像を「/app/assets/images/mailer/」に入れる。
先ほど作成した「mailer.rb」にHTML形式のメールにで挿入する為のメソッドを追記する。

mailer.rb
class Users::Mailer < Devise::Mailer
  before_action :add_image

  private

  def add_image
    images = ['***.png', '***.jpg']

    images.each do |img|
      attachments.inline[img] = File.read("#{Rails.root}/app/assets/images/mailer/" + img)
    end
  end
end

HTMLの編集

[/app/views/users/mailer/confirmation_instructions.html.erb」のファイルを修正する

confirmation_instructions.html.erb
<p>Welcome <%= @email %>!</p>

<p>会員登録ありがとうございます。</p>
<%= image_tag attachments['***.png'].url, alt: "***" %>
<%= image_tag attachments['***.jpg'].url, alt: "***" %>
<p><%= link_to 'アカウント有効化', confirmation_url(@resource, confirmation_token: @token) %></p>

こちらで会員登録した際に画像が挿入されています。

以上。ここまで読んでいただきありがとうございます。

参考

Rails Devise でパスワードリセットなどのメールテンプレート(Mailer ビュー)をカスタマイズ

Deviseの認証メールをカスタマイズする方法

HTMLメールで画像を載せる [rails][初心者]

本番環境
【Rails】メール送信設定 〜gmail利用〜

1
0
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
1
0