I have Rails app on Heroku. It has a custom domain, and I've tried to set up email sending through Mailgun. I've installed Mailgun as an add-on through Heroku, and I've gone through the steps Mailgun gives to "verify" my custom domain. If I run Mailgun's "Check DNS Records Now" everything comes back green and the status is "Active." I can even send messages from my custom domain with the curl
call they provide. However, when I try to send an email from my Rails app using ActionMailer
I get: Net::SMTPFatalError (554 Sandbox subdomains are for test purposes only. Please add your own domain or add the address to authorized recipients in domain settings.
Why does it think I'm using a "Sandbox subdomain"? Here's what I have in environments/production.rb
:
# Mailgun
ActionMailer::Base.smtp_settings = {
port: ENV['MAILGUN_SMTP_PORT'],
address: ENV['MAILGUN_SMTP_SERVER'],
user_name: ENV['MAILGUN_SMTP_LOGIN'],
password: ENV['MAILGUN_SMTP_PASSWORD'],
domain: 'my-custom-domain.com',
authentication: :plain,
}
ActionMailer::Base.delivery_method = :smtp
# Devise recoverable
config.action_mailer.default_url_options = { host: 'my-custom-domain.com' }
For development I'm using Gmail so I know it's reading the right config file. And all the env vars are set correctly. The from is set correctly as well, I see it my logs (do-not-reply@my-custom-domain.com) What did I miss? Is there something that could still be propagating even through the status is active?
Thanks!