モーグルとカバとパウダーの日記

モーグルやカバ(EXカービング)山スキー(BC)などがメインの日記でした。今は仕事のコンピュータ系のネタが主になっています。以前はスパム対策関連が多かったのですが最近はディープラーニング関連が多めです。

postfixでドット(ピリオド)で終わるユーザ名の問題

sendmailからpostfixの移行で、最後にドットが付くユーザ名のアカウントが、うまくメールが受信できなくなる、ということが起きました。

postfixでは、「foo..bar@sample.jp」や「foo.@sample.jp」というような、途中にドットが2つ以上続くようなアドレスや、最後にドットが付くようなアドレスは、RFC822に違反するために、「"foo..bar"@sample.jp」や「"foo."@sample.jp」という形に変換されます。
そのため、この条件に該当する該当するユーザ名があると、うまくメールが受信できなくなります。


さんざんいろいろと情報漁ったのですが見つからず、でもUさんが解決法を発見。

virtualで使っているアカウント名だったので、virtualの設定ファイル内に、

foo.@sample.jp
"foo."@sample.jp

と、quoteしたものとしないものと、両方書いておくと無事受信してくれるようになりました。
quoteしたものだけでは受信できるようにならない、というところがミソです。


その他に、サーバでquoteするのをやめさせるオプション

雑多な Postfix 設定パラメータの設定例

resolve_dequoted_address = no

があるのですが、これをやっても、受信時の問題の解決は出来ませんでした。


以前はこのせいで、DoCoMo(i-mode)のこれに該当するユーザ宛にメールが送られなかったりしたようなのですが、現在は問題なく送れるようになっていました。


No.15802 携帯メールに送信後、携帯メールアドレスのユーザー名の部分が変化してしまう。

[postfix-jp:01414] ユーザ名にピリオドが入る場合

[postfix-jp:01947] 連続ドット


(追記)

RFCを読まなかった携帯キャリアの罪 - Webビジネスコンサルタントのネタ帳
こちらでもとりあげられていた。
ちなみに sendmailqmail ではこの制限のチェックがなく送れるはず。