メーラー内でのアプリケーションのホスト情報

メーラー内でのアプリケーションのホスト情報

メーラーの中でアプリケーションのホスト情報を使いたい場合は、以下のように設定する。

[config/environments/development.rb]

Rails.application.configure do
  config.action_mailer.default_url_options = { host: "localhost", port: 3000 }
end

上記の設定をする場合と設定をしない場合で、以下のように変わります。

[設定をした場合]

[app/mailers/user_mailer.rb]

class UserMailer < ApplicationMailer

  def reset_password_email(user)
    @user = User.find user.id
    @url  = edit_password_reset_url(@user.reset_password_token)
    mail(:to => user.email,
         :subject => "パスワード再発行のお知らせ")
  end
end
[app/views/user_mailer/reset_password_email.html.slim]
p = "#{@user.name}"

p パスワード再発行の依頼を受け付けました。
p こちらのリンクからパスワードの再発行を行ってください。
p = @url

以下のようにメールが届く
Image from Gyazo

[設定をしない場合]

[app/mailers/user_mailer.rb]

class UserMailer < ApplicationMailer

  def reset_password_email(user)
    @user = User.find user.id
    @url  = edit_password_reset_url(@user.reset_password_token)
    mail(:to => user.email,
         :subject => "パスワード再発行のお知らせ")
  end
end
[app/views/user_mailer/reset_password_email.html.slim]
p = "#{@user.name}"

p パスワード再発行の依頼を受け付けました。
p こちらのリンクからパスワードの再発行を行ってください。
p = @url

以下のようにメールが届く
Image from Gyazo

※ 届いたメール本文のURLを確認すると、ポート番号が入っているかどうかの違いが分かる!!

参考記事

Railsメール送信機能(〜 ActionMailer基礎 〜) - o6ga2wa8のブログ