Emails remain in Exim queue

Line Yoble

Verified User
Joined
Feb 4, 2009
Messages
38
Hello,

Yesterday, I have custombuild a few programs (new versions were available for Dovecot, suPHP, phpMyAdmin, roundcube and a very few others, but nothing for exim nor iptables).

Starting this morning (I manage a mailing list and send nearly 20000 emails each day to my subscribers), all outside emails remain in the queue.
By 'outside emails', I mean emails sent to other domain email servers : emails sent to domains on my own server are well sent and received.

With DA, I have looked at the status of these mails and none are frozen.
The error message for these emails looks like this one :
2009-06-13 11:56:35 maibox@domain R=lookuphost T=remote_smtp defer (110): Connection timed out

I have checked my exim.conf file and the SMTP port is the one I have decided (not 25).
I have checked my iptables parameters (I didn't modify anything yesterday) and all seems OK for this SMTP port (tcp INPUT and OUTPUT are allowed).

I can telnet the port from inside (via SSH) or outside the server.

I restarted exim. I rebooted the server.
Nothing changes : the emails are always in the queue.

Any ideas ?
If yes (hope so !), please give me near-newbie explanations : I'm far from being a Linux administration expert.

Thanks.

Line
 
Last edited:
I'd check and try to send an email by hand using telnet to port 25. There are instructions elsewhere in these forums.

Jeff
 
Hello jlasman,

Your suggestion was a good one.
I didn't exactly follow it, but instead, I added the 25 port to my exim.conf file and opened it for input and output in iptables.
And now, messages are sent.

So, as I wrote previously, my non standard port was set in the exim.conf file and the port was also opened in iptables.
What are the reasons why exim couldn't send messages through this port ? It worked fine before I update some server softwares.

Thanks.

Line
 
Exim must receive email on port 25; if it doesn't, then it can't communicate with the world.

I'm not sure what you mean then, where you added port 25 to your exim.conf file. Do you mean you had removed it? If you don't accept email on port 25 then certain recieving mail servers won't accept email from you because they'll check first to see if the user really exists, and they can't do that if they can't communicate on port 25.

I don't know why the email was remaining the queue, but if you check the logs for that period you'll mostly see some good clues.

Jeff
 
jlasman, I'm sure you are partly wrong.
The 'daemon_smtp_service' parameter in the exim.conf is here to indicate the port number choosen (see here)

The line
daemon_smtp_service = 25
is the default, but you can replace 25 by any other free port or a list of ports (like "25 : 587").

My configuration with only one port, not the 25, worked fine until I update a few softwares on my server.
It is a proof this can work : emails sent by script on the server and emails sent from outside by Outlook via this SMTP server were well sent to their recipient.

Regards.

Line.
 
You can certainly set it to anything you want.

But since my email server, and all the others out there on the 'net, who communicate with others, will attempt to connect to you on port 25 (and never on any other), then you'll never get any mail.
My configuration with only one port, not the 25, worked fine until I update a few softwares on my server.
It is a proof this can work : emails sent by script on the server and emails sent from outside by Outlook via this SMTP server were well sent to their recipient.
Certainly emails sent by your server, and emails sent by your Outlook can be sent out through your server, but if anyone in the outside world wants to send you an email through your server, they can't.

If you're using external MX for all domains, then this shouldn't be a problem.

I wouldn't have any idea why those emails weren't going out without either looking at your server (for which I charge) or possibliy (but not definitely) by seeing exactly what happened when you tried my test (which I don't think you ever did).

My guess is that you were blocking outgoing traffic from your server to port 25 on other servers; of course you can't send email if you do that. No matter what you think you had set before, the fact is that you must be able to send email to port 25 on other servers to send email to the outside world, and you must be able to receive email on port 25 to receive email from the outside world, because that's the port that email servers use to communicate with each other.

Jeff
 
Back
Top