概要
メールを送信するときに差出人名を表示させたいことがあると思います。検索すると、Action Mailerでfromフィールドに差出人名を表示したいに書いている通り、fromに差出人名を文字列で入れれば反映されるのですが、SendGridのAPI経由で送る場合はこの方法では反映されないです。というわけでどうすれば良いのかというのをメモ。
対応
SendGridでは専用のメールアドレス設定用クラス(Email)が用意されていて、Send sender name with email SendGrid - Railsにある通り、アドレスと差出人名を設定する仕様になっています。
実装サンプル
ActionMailerでのSendGrid・API使用について、Rails: SendGrid(Web API)とAction Mailerでメールを送信するの記事がわかりやすくまとまっているのでこちらを元にします。
設定箇所はlib/mail/send_grid.rb
のfromの部分になります。下記のような形で2つ目の引数に、差出人名を設定します。(差出人名は固定の前提)
send_grid.rb
from = SendGrid::Email.new(email: mail.from.first, name: '山田太郎')