I know SPF is correct and working. In my case I found it is timed out when checking spf records, and lots of my clients mails was rejected. It was a problem with my slow leased line (I guess). So I disabled SPF and searched for any other solution.
My Situation:
I got around 100 email users in side the office. No one out side. We receives emails from out side, displaying it from my self. One day I found a spam message about *** has mailed to all my staff members showing it is from system admin(me).
My solution:
In postfix -(/etc/postfix/main.cf) -
mynetworks = 127.0.0.0/8,192.168.1.0/24
smtpd_sender_restrictions = permit_mynetworks check_sender_access hash:/etc/postfix/maps/reject
I created a reject map and included my own domain to be rejected.
I permitted the LAN side (mynetworks) before reject map.
Now no one can send mail to us using my domain name from out side.
Reject map :
a file with any name. one record for one line. syntax should be as ,
abc.com REJECT error_message
ubsdsoc.com REJECT Service unavailable
socsadomer.com REJECT Service unavailable
When my staff member going out side, They uses the webmail system which is hosted in my LAN. so no probs
good luck