大学からyahoo.co.jpへのメールが迷惑メール扱いされる件について

気づかなかった学生さんへの連絡に差し支えが出ていたので、研究室のサーバにDomainKeys (dkfilter)を入れた。しかし、mailmanとの組み合わせが難しく、手動でmailmanPythonスクリプト修正それでもGmailではhardfailするという不思議Yahoo!メールではpassするのに…dkfilterはもうobsoleteらしい。dkimproxyにしたら直った。dkimproxyでも、--signature domainkeysオプションをつければ、DomainKey-Signatureをつけられる。ちなみにpostfixが2.3より古いので、dkim-milterは使えない。

あと、Gmailから来るメールは、DomainKey-Signature行にq=dnsが抜けていてハマった(DomainKeysではRFC違反)。こちらもdkfilterのPerlスクリプトを手動で修正。dkimproxyにすればDomainKeysではなくDKIMのほうをチェックするのでOK。ちなみに、GmailDKIMに対応しているようだが、Yahoo!メールは対応していない。

そういえば、以前にHotMailでも迷惑メール扱いされて、そのときにSender ID (SPF)を入れたのだった。むー。

追記:あと、postfix + dkfilterだと内→外と外→内のSMTPポートをわけろ、とあるのだが、ユーザ全員のメーラ設定を変更してもらうのは無理なので、気合いとiptablesで外→内はポート転送した。/etc/init.d/postfixのstartあたりに

iptables -t nat -j DNAT -A PREROUTING -p tcp -d サーバのIPアドレス --dport 25 -s '!' ローカルネットワークのアドレス/255.255.255.0 --to-destination サーバのIPアドレス:26

のような感じで仕込む(stopのほうは-Aのかわりに-D)。面倒な…

追記2:自分の管理下にない某迷惑メールフィルター装置が「CC:」や「cc:」を「Cc:」に書き換えるので、dkimproxy.inで署名の検証がfailする…。Thunderbirdは「CC:」で送るので起きやすい。