-
Notifications
You must be signed in to change notification settings - Fork 5.5k
How To: Set :host and :port for all devise mailer urls
If you find yourself needing to set a :host and :port for your mailer url's (e.g. when sending a reset password link) follow the instructions for overriding the devise mailer here and then follow these steps:
Create a file in app/concerns called default_url_options.rb. Depending on your version of Rails you might need to add a setting to your environment that loads files from this folder automatically.
In this file put something like the following:
`module DefaultUrlOptions
def default_url_options { :host => host, :port => port } end
private
def host # Your logic for figuring out what the hostname should be end
def port # Your logic for figuring out what the port should be end
end`
Next, just include this module in your devise mailer:
`class UserMailer < Devise::Mailer
include DefaultUrlOptions
end`
It's worthwhile noting that you'll need to be able to figure out the host and port in the above example without having access to any request object as mailers and background jobs run outside the context of the request.