hamayuzinの日記

エンジニアとかデータサイエンティストとかやってます。あの時 あれやってたな的な備忘録にできれば。

【Rails/mail開封率】Railsでメールを送って、開封されたかどうかを判定する

メールを送信して、そのメールが開封されたか見たい場合があると思います。 めっちゃ簡単です。

方法は単純で - メールの末尾に1ピクセルの画像を設置 - この画像が読み込まれたら、開封されたとみなす - 画像読み込み時に、サーバーにIDつきで送ることで、処理を追加できる というからくり

メールの末尾に1ピクセルの画像を設置

app/views/support_mailer/hogehoge.haml

= image_tag(tracking_hogehoge_url(id: @hogehoge.id),:size => "1x1", :alt => "logo")

controllerに取得部分設置

app/controllers/hogehoges_controller.rb

  def tracking
    HogeHoge.find(params[:id]).update(opened: true)
    send_file Rails.root.join('app', 'pdfs', "hogehoge.png"), :type => 'image/gif', :disposition => 'inline'
  end

以上!