Reputation: 35
I'm working on adjusting the url appearing in a mailer created with,
<%= controller_url %>
but when I change the default with the following command
config.action_mailer.default_url_options = { :host => "example.com", :protocol => 'https', :subdomain => "www"}
the url remains unchanged as
http://localhost:8000/controller
What are some possible causes for this not working? I looked pretty thoroughly through my project folder for places where the host or subdomain might be defined, but found nothing.
EDIT: It seems I needed to restart my server after making the changes.
Upvotes: 1
Views: 1349
Reputation: 7777
I don't know how you trying but I can show my files to compare with yours.
So my development file is /config/environments/development.rb
config.consider_all_requests_local = true
config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
and my production file is /config/environments/production.rb
config.action_mailer.raise_delivery_errors = true
config.action_mailer.default_url_options = { :host => "https://example.com" } #=> Or https://www.example.com
config.action_mailer.perform_deliveries = true
ActionMailer::Base.smtp_settings = {
:user_name => ENV['USERNAME'],
:password => ENV['PASSWORD'],
:domain => 'example.com',
:address => 'smtp.example.net',
:port => 321,
:authentication => :plain,
:enable_starttls_auto => true
}
config.action_mailer.delivery_method = :smtp
and it's working perfectly.
Remember these:
You can check the logs while sending mail what's happening and for production run follow this command rails server -e production
Upvotes: 2