Ubuntu12.04LTSのIPv6設定のせいでmailmanからメールが送信されない

 

envelope photo
Photo by ePublicist

あまり送信頻度の少ないメーリングリスト(mailman)にて,久しぶりに送信を受けたら下記のようなエラー多発で送れなくなっていました.

mail.log

Dec 13 14:34:49 postfix/smtpd[24731]: NOQUEUE: reject: RCPT from unknown[::1]: 554 5.7.1 <********>: Relay access denied; from=<********> to=<********> proto=ESMTP helo=<********>

調べたところ,Ubuntuを12.04にアップグレードすると /etc/hosts に下記のようなIPv6用の設定が付加され,この::1をpostfixが知らないためにリレーを拒否する,というのが根本の問題のようです.

/etc/hosts

::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

参考:[SOLVED] Mailman “Relay access denied” since upgrade from 10.04 to 12.04

解決策としては /etc/hosts の上記の部分をコメントアウトしてしまうか,postfixのmain.cfのmynetworksの設定を下記のように修正して自分のネットワークであることをpostfixに認識させます.

main.cf

mynetworks = 127.0.0.0/8, [::1]/128

先のことを考えると後者のほうがベターかもしれませんね.設定変更後もmail.logには ::1 が誰だか分からんというログが残りますが,

mail.log

Dec 13 15:07:22 ur postfix/smtpd[25657]: connect from unknown[::1]
Dec 13 15:07:22 ur postfix/smtpd[25657]: 2C62C5E3731: client=unknown[::1]

きちんとリレーされて送信はされるようになりました.