When users sign up to my site, the connection from my server to our 3rd-party SMTP provider is very bad and the app takes from a few seconds to a few minutes to connect. While it is trying to connect and send, users are forced to wait there and sometimes they would just give up and leave the site.

This is horrible user experience. What is a good way to make this seem instantaneous (having to host our own mailserver is not an option at this point)? Some way to execute this in the background? Maybe using some type of queuing mechanism?

I'm using the LNAMP stack on a CentOS 5 x64 machine. App is using CodeIgniter.

EDIT:

It seems using a local mailserver to use as a relay is a common solution. But how does one log or track whether or not email was delivered correctly by using this method? 

Sidenote: Some ESPs provide a REST API for email delivery (ours do too). We currently use SMTP and not their REST API. 


Question: Grinding sound during cold start?
Answer: If it's a manual transmission, possibly the starter motor is slow to disengage and is grinding against the flywheel as the engine is firing up.  The low oil is very suspicious though and doesn't go along with that.  Could just be a coincidence.  Or, could be pointing to something far worse.  However, engine related startup scary noises are normally more of a rattling sound than a grind...