In a couple of examples, I've got two email addresses I'm sending to, let's say "email@example.com" and "firstname.lastname@example.org" (two different recipients, on two different domains). In this case, the sending side is Exchange 2007, which then goes through a content filtering system (think MessageLabs-esque).
In the first example, I try to send an email, and after 2 days I get a rejection saying that
Diagnostic-Code: smtp;550 4.4.7 QUEUE.Expired; message expired
In the second example, I try to send an email, and after 6 days I get a rejection with the following diagnostic code:
Diagnostic-Code: smtp; 5.4.7 - Delivery expired (message too old) '[Errno 61] Connection refused' (delivery attempts: 0)
My question is essentially this: regardless of the specific message returned, what things, on a large scale, account for (a) when a message is rejected - i.e. how long it tries before failing, (b) and what role does the sending vs. receiving end play in determining these delays/timeouts/failures?
I'm guessing that if there's a problem sending, that the sending server's retry policy applies, whereas if SMTP connects, answers, but it doesn't get received that in that sort of situation the receiving server plays a larger role.