I installed and configured exception notifier to be notified of any unexpected errors in our production environment.

At first i tried this out in development, used gmail as my smtp server and all was working fine.

My action mailer configuration looked as follows, in environment.rb:

  # configure mailing
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    :enable_starttls_auto => true,
    :address => "smtp.gmail.com",
    :port => "587",
    :domain => "localhost",
    :authentication => :plain,
    :user_name => "<snipped>",
    :password => "<snipped>"
  }

ExceptionNotifier.exception_recipients = %w(bla@my_clients_domain.com)
ExceptionNotifier.sender_address = %("<snipped>@gmail.com")
ExceptionNotifier.email_prefix = "[My Application ERROR] "

Using this configuration worked, and i received the e-mails.
Alas, as usual, on my client’s production server the port to reach gmail was blocked, and when i asked to open it, they instead proposed to use their own smtp-server.
So i changed the configuration as follows:

  config.action_mailer.smtp_settings = {
    :address => "192.168.0.10",
    :port => "25",
    :domain => "production-domain.be",
    :authentication => nil
  }

ExceptionNotifier.exception_recipients = %w(bla@my_clients_domain.com)
ExceptionNotifier.sender_address = %("info@production-domain.com")
ExceptionNotifier.email_prefix = "[My Application ERROR] "

The first thing i did wrong was the domain-name. At first i wrote “@production-domain.be” in my action-mailer configuration, so my HELO request was blocked.
Secondly, apparently, because i wrote ExceptionNotifier.sender_address = %("info@production-domain.com") the sender address was not recognised and the mail was rejected by our own SMTP-server. This took me a while to figure out. Luckily our sys-admin noticed the difference.

The fix:

ExceptionNotifier.sender_address = %(info@production-domain.com)

And now i know for sure that if i get no mails, my application really is working :)