This is a very good tutorial/details on configuring the mail server for better inboxing.
There are few more parts related to installation that everyone needs to know, as shown below.
1) Be sure that the 'epel' yum repository is installed. (Redhat/CentOS/Scientific Linux)
Install/upgrade all "email related" packages via ssh/terminal access:
yum install postfix dovecot sendmail opendkim squirrelmail php-imap perl-LockFile-Simple ntp
Note:
There are other packages included in the yum install, as it's designed for a web site with reliable email services, which is the reason why squirrelmail is included (useful for testing emails).
2) Add ntp time-date (very important to maintain the date-time stamp when dealing with emails)
ntpdate ntp.pool.org
service ntpd start
chkconfig ntpd on
3) Switch sendmail to postfix (for older Linux versions. Newer Linux versions use postfix by default)
rpm -e sendmail sendmail-cf sendmail-devel
alternatives --config mta (select Postfix)
4)Follow OP's Postfix configuration (see post #1 above).
5) SPF and DKIM (VERY IMPORTANT - with some improvements, similar to OP's)
Let first generate the keys for DKIM :
cd /etc/opendkim/keys
openssl genrsa -out private.key 1024
openssl rsa -in private.key -out public.key -pubout -outform PEM
chmod 400 *
cat public.key
Now lets find out our outgoing ip:
ip ro ge 8.8.8.8
On terminal the above will return
8.8.8.8 via 144.115.112.129 dev eth0 src 144.115.112.163
cache mtu 1500 advmss 1460 hoplimit 64
On first line last IP (144.115.112.163) is the outgoing IP.
Now login to the site where the domain's DNS is managed and add next line
for SPF (will allow the mx and the 'A' record to send mail's),
don't forget to replace 144.115.112.163 with the actual outgoing ip :
domain.net TXT 'v=spf1 mx A ip4:144.115.112.163 ~all'
As for the additional IPs, add ip4:ipaddress in there.
And for DKIM record we create a TXT type mail._domainkey.domain.net named record.
mail._domainkey.domain.net TXT 'k=rsa; t=y; p=MIGfMA0....DAQAB'
MIGfMA0....DAQAB should be replaced by the content of public.key file without the first
and last line (----BEGIN etc and ------END etc lines) and without the line breaks.
Now open /etc/opendkim.conf and change/edit the following lines :
Mode s
Domain *
Selector mail
KeyFile /etc/opendkim/keys/private.key
SubDomains yes
DNSTimeout 5
And edit /etc/postfix/main.cf file and remove the comment sign ('#') from the begining of next lines:
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
Then start opendkim and reload postfix config
service opendkim restart
service postfix reload
6) Enable services
chkconfig postfix on
chkconfig dovecot on
chkconfig opendkim on
service postfix restart
service dovecot restart
service opendkim restart
Note: I prefer opendkim over dkim-milter.
7)Test emails via Squirrelmail or pop/imap via Dovecot or via telent (see OP's details)
As for the whitelisting, your list is OK. You may want to follow the excellent instructions on whitelisting
your domain name for email services, focusing on ISPs part only:
http://scoutwilkins.com/email-whitelist-instructions/ (bookmark it, as the author maintains that valuable information there)
Rep+ given - because you have opened everyone's eyes.
To others, please do not bash on this thread, as I believe that this important thread will allow for us
to improve this thread to help us for getting our emails to have higher inboxing rate.
Hope it helps.