OneDay

40歳からプログラマとして生活しています。

Rails Devise メール送信者名の設定

Deviseで本人認証やパスワード設定にメール設定するときにGmailを用いる場合の基本設定

#config/environments/development.rb
Rails.application.configure do
  config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    :address => "smtp.gmail.com",
    :port => 587,
    :user_name => "Gmailのアドレス",
    :password => "2段階認証で得たパスワード",
    :authentication => :plain,
    :enable_starttls_auto => true
  }
end
#config/initializers/devise.rb
Devise.setup do |config|
    config.mailer_sender = 'Gmailのアドレス'
end

Google2段階認証については、Sign in - Google Accountsのアプリ パスワードから、アプリ固有のパスワードを生成してそのパスワードを貼り付ける。


development.rbはGmailログイン時のアドレスになる。

#config/environments/development.rb
:user_name => "user.name@example.com",

とし、以下の文脈で共通して用いる。


まず、devise.rbを

#config/initializers/devise.rb
config.mailer_sender ='user.name@example.com'

とした場合、Devise本人確認等にRailsアプリから発信されるメール送信者名は"user.name"となる。


Gmailエイリアス(service@examaple.com)を用いている場合

#config/initializers/devise.rb
config.mailer_sender ='service@example.com'

とすれば、Railsアプリから発信されるメール送信者名は"service"となる。


送信者名をserviceなど@マーク以前の文字ではなく会社名などにしたい場合

#config/initializers/devise.rb
 config.mailer_sender = '"Company_Name" <service@example.com>'

とすれば、Railsアプリから発信されるメール送信者名は"Company_Name"となる。



送信onlyのメールも設定できる。

#config/initializers/devise.rb
 config.mailer_sender = '"Company_Name" <no_reply@example.com>'

Devise認証時にメール発信され、Gmailのuser.name@example.comからメールが送信される。送信者名にはCompany_name が表示されるし、受取人が返信すると宛先は"no_reply@example.com"となる。

送信メッセージのソースはこうなる。

Return-Path: <user.name@example.com>
From: "Company_Name" <user.name@example.com>
X-Google-Original-From: "Company_Name" <no_reply@example.com>
Reply-To: "Company_Name" <no_reply@example.com>

Return-PathとReply-Toの違いは下記url参照
http://wa3.i-3-i.info/word11110.html