LoginSignup
1
1

More than 5 years have passed since last update.

Rails Mailerが送信したメールをスマホで見れない

Posted at

Content-Type: text/html で送信したメールの本文が「認識できないメール形式のため表示できません」で内容が見れない(少なくとも、私が持っているauのXperia IS11Sでは見れませんでした)。

結論から言うと、htmlフォーマット用のview(.html.erb)に対応したtextフォーマット用のview(.text.erb)を、中身が空で良いのでダミーとして作成しておくと、なぜか解決されることがわかりました。

例えば、mailer classを

app/mailers/message.rb
class Message < ActionMailer::Base
  default from: "xxx@yyy.zzz"

  def summer_greeting address,name
    @name = name

    mail(to: address, subject: '暑中見舞い')
  end
end

htmlフォーマット用のviewを

app/views/message/summer_greeting.html.erb
<p><%= @name %>さん、</p>
<p>今日も暑いですね。水分をこまめに摂って熱中症にならないよう気をつけて下さい。</p>

とした場合、$ touch app/views/message/summer_greeting.text.erbでダミーファイルを作成すればOK。メール送信の時のログを見てみると Content-Type が multipart/alternative となっており、 text/plain と text/html の両方が送信されていることがわかる。スマホはこの形式だと、ちゃんと html の方を表示してくれる。何でだろう。よくわからないが、これで html のメール本文を表示できるようになったので良しとする。

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