I'm trying to send email from PHP using mail()
. I have complete access to both servers. No unusual iptables
rules on either (nothing blocking a default install of sendmail
)
I installed sendmail
on the one server a couple of years ago (Ubuntu 10.10) and that sends mail from PHP just fine. The new server (Ubuntu 10.04, set up this week) will not send mail - or it's trying, but every recipient is refusing to receive.
I've checked out the sendmail
logs on the new server and it's showing all of the MX servers of the recipient domains are Connection refused
...
There's no differences in the set up of these servers. They've got the default sendmail
install. A standard LAMP stack. They're on different IPs entirely, but they operate under the same domain (although, obviously, different machines on the domain).
The only thing I can think is that the reverse DNS that is set up for the new server is not being accepted by the spam filter on the recipient MX servers. Is that possible? I've already put in a request to get the reverse DNS changed to something more suitable for the domain of the new server.
The older server is behind a NAT router, so the IP address that email appears to come from when sending from the old server resolves to a domain name that 'correctly' represents the server... but the new server's IP is attached directly to the server, but the current rDNS resolves to a completely different domain.
Is there anything else I could be missing?
UPDATE:
A sample /var/log/mail.log
row:
Jan 11 12:16:03 ernesto sm-mta[1177]: q071CKnQ002371:
to=<xxx@xxx.xxx>, ctladdr=<www-data@my.server.com> (33/33), delay=4+11:03:43,
xdelay=00:00:00, mailer=esmtp, pri=58080351, relay=aspmx3.googlemail.com.,
dsn=4.0.0, stat=Deferred: Connection refused by aspmx3.googlemail.com.