ふと、Postfixのメールログを見ていたら、
to=<xxxX@example.jp>, relay=local, delay=1608, delays=1608/0.02/0/0.01, dsn=5.1.1, status=bounced (unknown user: "xxxx")
あれ?設定を調べると/etc/postfix/virtualには
xxxX@example.jp xxxX
と書いてある。何で?
で、調べるとPostfixはQ 2.16. アルファベットの大文字を含むメール ボックスにメールを送れません。という糞仕様らしい。この糞仕様については[postfix-jp: 265] Postfixでは、なぜ小文字のメールアドレスしか使えないのですかとかで無駄に熱い議論してたりする。RFCがどうとかではなく、現実に大文字小文字を区別するシステムがあるなかで、それを区別できないのは糞仕様以外の何物でもない。
postfix-2.3.3の src/local/recipient.cの
276 /*
277 * Set up the recipient-specific attributes. If this is forwarded mail,
278 * leave the delivered attribute alone, so that the forwarded message
279 * will show the correct forwarding recipient.
280 */
281 if (state.msg_attr.delivered == 0)
282 state.msg_attr.delivered = state.msg_attr.rcpt.address;
283 state.msg_attr.local = mystrdup(state.msg_attr.rcpt.address);
284 lowercase(state.msg_attr.local);
285 if ((state.msg_attr.domain = split_at_right(state.msg_attr.local, '@')) == 0)
286 msg_warn("no @ in recipient address: %s", state.msg_attr.local);
277 * Set up the recipient-specific attributes. If this is forwarded mail,
278 * leave the delivered attribute alone, so that the forwarded message
279 * will show the correct forwarding recipient.
280 */
281 if (state.msg_attr.delivered == 0)
282 state.msg_attr.delivered = state.msg_attr.rcpt.address;
283 state.msg_attr.local = mystrdup(state.msg_attr.rcpt.address);
284 lowercase(state.msg_attr.local);
285 if ((state.msg_attr.domain = split_at_right(state.msg_attr.local, '@')) == 0)
286 msg_warn("no @ in recipient address: %s", state.msg_attr.local);
284のlowercaseで小文字にしてるみたいだから、この行をコメント。
コメントする