In addition to what's been said about PTR/A lookups (if these don't match, mail will often go straight to /dev/null), there's this bit about HELO/EHLO names:
Code:
RFC 5321, section 4.1.4:
"An SMTP server MAY verify that the domain name argument in the EHLO command actually corresponds to the IP address of the client. However, if the verification fails, the server MUST NOT refuse to accept a message on that basis."
While this "MUST NOT" end up in /dev/null (assuming the receiving server is RFC compliant), it certainly may be tagged as spam based on this check alone.
Personally I find that insane but I've seen it happen.
To the OP:
Check that the HELO/EHLO reported by your mail server matches the forward (A) and reverse (PTR) records of its IP address, like so:
server.domain.tld > IP address (A record)
IP address > server.domain.tld (PTR record)
HELO/EHLO: server.domain.tld (placebo to please google's, hotmail's and other's asinine anti-spam configs)
For Postfix, the EHLO is set with the myhostname directive:
Code:
myhostname = server.domain.tld
SPF/DKIM... yeah I use them, but they don't really have a lot of impact on whether your mail will be classified as spam or not.
IF you use them, make sure you got them right, or else they'll really hurt you. Badly. With a vengeance.
Other than that, well don't get blacklisted (which very rarely happens by accident) and don't hang around in bad neighborhoods (Linode's IP blocks have excellent reputation, for which I congratulate them).