I have a reverse DNS and SPF records correctly setup for my mail server. Sending webmail from it works perfect.
The problem is when Thunderbird sends out emails, it is using the client's IP address for the hostname. I have SMTP authentication and specified my mail server's as the outgoing SMTP. Mail is being sent, but it is not "signing" the email with the mail server's IP address.. it is using the client's.
Is there any way to fix this?
This is the spam error I get when sending from Thunderbird:
Spam: Reverse DNS Lookup, SPF_SoftFail
First possibility: Thunderbird is sending "direct to MX" instead of using your server. Configure thunderbird to use your server for SMTP.
Second possibility: Thunderbird is using your server, but not authenticating, and sending to an address hosted on that server. Because the address is hosted on the server, the mail is being accepted despite lack of authentication (please tell me you do not have an open relay).. Configure SMTP AUTH.
Third possibility: Thunderbird is authenticating, and sending through your server, to an address that is hosted on that server. Despite this, your server is not differentiating between authenticated mail, and mail from external sources, and as a result is filtering the former incorrectly. Fix that.
When you use the webmail, if the webmail is hosted on the same machine as the mail server, the mail server likely sees the sender address as being localhost, and treats it as trusted. (speculation, since you give very little info regarding your setup.)
I was getting a similar problem with "554 Your access to this mail system has been rejected due to the sending MTA's poor reputation" messages...
It turns out the previous setting was showing the client IP address which does not have a properly configured Reverse-DNS.
I changed How Thunderbird Connects to the Internet (Tools>Options>Advanced>Network & Disk Space>Settings> and select "No Proxy") and the problem now appears solved.
See also http://forums.mozillazine.org/viewtopic.php?f=39&t=2928185
Hope it works.