Update: It's definitely my ISP blocking port 25. I told Exim to listen on a non-standard port, and then checked from a remote computer to that port, and it went through just fine.
So, I guess I have a new question. Is there a good way to get around this?
I no I can't specify a port in the MX record (why didn't anyone think of this when they were coming up with DNS?), but a service that can forward mail to a server on a non-standard port would work.
I've seen no-ip.com has such a service called Reflector. It's not very expensive, but if there are any other, cheaper methods, I'd love to hear about them.
I'm still baffled as to why it just today stopped working, though.
I hate asking this, but I've already Googled everything I can think to no avail, but this seems like such a simple thing, so I don't know why I can't figure it out. But, here it goes anyway.
I have a home server set up with Apache for HTTP and Exim for SMTP. I need to be able to accept mail straight to my home computer. Up until today, I had no problems. I don't believe I changed anything on my end, but suddenly, I'm not getting any email.
I checked MX setting in DNS, and they're fine. I checked the port forwarding on my router, and it looks fine (and external connections to Apache are still coming through).
So, I check that Exim is working properly. From localhost, I can telnet into Exim, and it works fine. Additionally, I can telnet into Exim from other computers on the network, and it works fine. However, if I try to telnet from outside, I get
Unable to connect to remote host: Connection timed out.
So, I tried to do
dpkg-reconfigure exim4-config (I'm on Ubuntu 12.10, by the way), and make sure that everything's set up properly there. No problems. I look in my config and find this:
# listen on all all interfaces? .ifdef MAIN_LOCAL_INTERFACES local_interfaces = MAIN_LOCAL_INTERFACES .endif
Some googling leads me to believe that
local_interfaces controls what exim will listen to. So I try to change this according to the exim documentation, and make it this:
# listen on all all interfaces? #.ifdef MAIN_LOCAL_INTERFACES #local_interfaces = MAIN_LOCAL_INTERFACES #.endif local_interfaces = <; ::0 ; 0.0.0.0
I restart exim, and nothing changes.
So, that's where I'm at now. It's kind of important that I get this fixed soon, so any ideas what else I might check would be appreciated.
P.S. Since commenting won't give my proper formatting, I'm replying here:
lsof -i:25: I'm not really sure what I'm looking for, but here's the output:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME exim4 12386 Debian-exim 3u IPv6 24476126 0t0 TCP *:smtp (LISTEN) exim4 12386 Debian-exim 4u IPv4 24476127 0t0 TCP *:smtp (LISTEN)
P.P.S. According to this page, my ISP blocks port 25 inbound (and outbound). But that page was written several months ago, and the problem just appeared today (or maybe yesterday), so is there any way I can check to see if that's the problem?