views:

93

answers:

1

So I have been asked to help maintain a website that uses Ruby on Rails. Now, let me just say I've been programming Ruby for awhile but I am still new to Rails. The first problem brought to my attention is how the activation email takes about six hours to arrive. It would be one thing if the email was not being sent due to errors but it is being send correctly, just slow. Also the server this is running on is also its own SMTP. I checked how the email was being formatted before calling the setup_email method and everything looks okay. I even dug into the ActionMailer lib and read through the files there and didn't see anything out of the ordinary. So what is most likely causing the email to take six hours to deliver?

Edit: I tried Roadmaster's idea and noticed something odd indeed. While normal email sending seems to have normal delays as recorded in the logs (ex. "delay=0.99, delays=0.08/0.01/0.19/0.7"), I've noticed multiple email attempts to send email to [email protected]. All of which get differed since it can't find such a host. But the delays associated with them are much larger (ex. "delay=239853, delays=239818/0.02/35/0"). Now this sounds to me more like a problem in Rails code somewhere rather than a sendmail config problem, but I just started maintaining this site. Where would be a likely place to start looking?

+1  A: 

Can you access the server's mail logs? they might be in /var/log if it's a Unix server. You might find a clue as to what's happening. Here's what I'd do:

  1. find the SMTP server log (sendmail, exim, postfix, whatever).
  2. Use tail -f whatever.log to keep an eye on the log. Leave this running in a terminal.
  3. Go into your app and do whichever steps you need to trigger sending of an activation e-mail.
  4. Check the window where you're watching the log to see what happens.

ActionMailer per se shouldn't introduce that big of a delay (though it's no speed demon while delivering mail, it should still handle everything within less than 1-2 seconds), so it might be some other part of your stack, or even a problem/filter/greylist on the recipient's end.

Roadmaster
Thanks a lot! Tried this and found the problem. I edited the question to reflect this. Any ideas now on further solving the problem?
grg-n-sox