Sorry if this is a long one, but here it goes. I have Exchange 2007 that was running on Server 2003 x64. Powershell got removed, and since my option at that point wasn't simply to reinstall powershell; I moved the database over to a new Server 2008 machine and synced IIS across. After a long weekend of working out the bugs and getting our BES 10 to work with it again, I finally got everything working. That is until I noticed we were getting more delivery failed notifications than usual.
I started sending test emails to my outside accounts and noticed Yahoo shows Received-SPF: fail (domain of mydomain.org does not designate xx.xxx.xxx.xx as permitted sender). The ip address it showed was from my SonicWall public IP. Most people would say I'm OK since this didn't have an error code, but other sites like Hotmail are flagging my emails as spam. Now is when it gets into the crazy workings of our setup, I hop you can bear with me.
So, I have a public IP set up for our Exchange server, It is registered with our ISP as mail.mydomain.org. That IP is NATed to our internal Exchange IP address in our SonicWall. Our internal domain lets say is mydomain.local, not .org. So the Exchange server is Exchange.mydomain.local. I have a DNS pointer to exchange.mydomain.local with the internal IP, and a MX record for exchange.mydomain.local. In our Exchange Management Console, every place that asked for FQDN for ehlo or helo response I put exchange.mydomain.local. I noticed the txt files we had for spf info in our DNS server were outdated from our last mail server (which was called mail.mydomain.org) so I changed it to reflect the new server.
So my big problem is when I check the header info from my test emails, no matter what I change it is still showing that Public IP address from our Sonicwall. Is this a routing issue within our SonicWall? Or is there somewhere else I should be looking? Any help is greatly appreciated!!! Thanks!