Linux – Make exim deliver deliver msgs immediately

eximgentoolinux

I do this testing process with "telnet localhost 25", I send a message and it is placed to queue… I feel kindda frustrated as I've searched through many, many, many lines of exim specifications… And I simply don't know how you make exim deliver msgs instantly without placing them to queue?

Yet another reason to feel frustration. If I use these options queue_smtp_domains… Well, I probably don't get this either, but I place them inside exim.conf… I tried different places inside exim.conf, all of them output error restarting exim.

It is actually not a difficult question, it is a question of someone who just doesn't why all of this stuff around exim should be so complicated? And please how do I deliver messages instantly without placing them to queue? Thanks

Best Answer

Queuing always happens and that is by design.

Email deliveries can get all kinds of errors causing the sending server to have to retry the delivery. Exim opts for safety by always writing incoming messages to disk before acknowledging it has received the message and then a separate delivery process takes care of trying the actual delivery. That way even if the server crashes at any point in time no message can ever be lost.

However there are configuration options that affect whether a delivery process will be immediately started for a new incoming message or if the incoming message will only be placed on the queue waiting for a regular queue runner to do the delivery at a later time. These queue runners typically run ever 5 or 15 minutes. For a busy server you can get better overall performance by letting queue handlers deliver emails, because they can then deliver batches of several emails to the same destination at a time.

To trigger an immediate delivery process for new messages should should leave all queue-related settings empty. Check your settings by running something like this:

exim -bP | grep queue

Make sure you have these settings as follows:

queue_domains = 
no_queue_only
queue_smtp_domains =