This is a problem I'm sure is easy
to fix, but I've been banging my head on it all day.
I'm developing a new
web site for a client. The
web site resides at (this is an example) website.com. I have a PHP form script
to email visitors' requests
to [email protected].
When I coded this on a staging server on a different domain, all worked fine. When I moved it
to website.com, the mail messages never arrived. The
web server is on a virtual host with a major ISP.
Here's what I've learned since then: My client's mail server is Microsoft Exchange on a box physically in their office. Whenever someone on the outside world emails
[email protected], the mail arrives. But if the
web server sends
to the same email address, it fails every time. This is not a PHP problem. I secure shell in
to the
web server and have tested this both with sendmail and the UNIX mail
application. I've also tested it by emailing various email accounts from the shell. I can email myself, for example, just nobody at the website.com domain.
In short, when I'm logged in
to website.com, mail
to [email protected],
[email protected],
[email protected] all fail. All other addresses work fine. What I've discovered is those dropped emails are routed
to the
web server's "catchall" account where they sit in its inbox.
I've done an MX lookup on website.com. The MX record points
to mailsec.website.com. I can telnet
to mailsec.website.com port 25 and see the SMTP server.
It appears
to me that website.com isn't doing an MX lookup when it's sending mail
to [email protected]. My theory is that it recognizes the domain as local, sees that there's no "requests" user account
to deliver it
to, and drops the mail into the catchall account. What I want is
to force sendmail
to do the MX lookup and send the message on
to the Exchange server. I'm at wit's end here. I can't figure out
how to do this.
For that matter, I may be way off base here and have misdiagnosed this entirely. Internet mail and MX has always seemed a black art
to me, and my ignorance is certainly showing in this question.