3
2

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 5 years have passed since last update.

メモ:RailsのActionMailerでテキストメールを自動生成する

Last updated at Posted at 2019-02-15

この記事は

  • 技術メモです

やりたかったこと

  • RailsのActionMailerを使ってメールを送信しているサービスがあります
  • そこですでにHTMLメールを送信しているのですが、一部メーラでHTMLメールは受信できないという話がありました
  • そこで全メールについてTEXTとのマルチパートメールで送出する必要がでてきました

普通にやると

  • 既存のHTMLメールのテンプレートに加えて、TEXTメールのビューテンプレートも作成するとマルチパートで送信することが可能です
  • しかし、TEXT/HTMLのビューテンプレートを両方メンテナンスしていくのは結構きついです

actionmailer-text gem

  • actionmailer-textを使うと、自動的にHTMLメールからタグを除去していい感じにテキストメールを送出してくれます
  • こんな感じっぽく動きます
    • <br/>は改行に置換
    • リンクはリンク文字列(URL)みたいな感じに置換
    • そのほかの普通のタグは除去
    • このへんを見るとなんか一生懸命正規表現で置換してるっぽい

使い方

  • gemを入れます
Gemfile
gem 'actionmailer-text'
  • application_mailerに所定のモジュールをincludeします
application_mailer.rb
class ApplicationMailer < ActionMailer::Base
  # 追記
  include ActionMailer::Text
end
  • ちなみにdeviseを使っている場合、deviseから送られるメールはApplicationMailerを継承していないことがあるので、devise設定ファイルで指定します
config/initializers/devise.rb
config.parent_mailer = 'ApplicationMailer'
  • 以上で普通に全てのメールがTEXTとHTMLのマルチパートメールになって送信されます

終わりに

  • ガラケーとかのテキストしか受けられないメーラ爆発しろ
3
2
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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?