Postfix で Illegal address syntax from unknown のエラーが出る場合の対応方法


[初回公開] 2013年01月28日

メールサーバの Postfix を利用する中でログに「Illegal address syntax from unknown」と出てメールの送信ができない原因と対応について紹介する。

Postfix で Illegal address syntax from unknown のエラーが出る場合の対応方法




1.Illegal address syntax from unknown とは


Illegal address syntax from unknown を日本語に訳すと「アドレス構文が不正」となり、送信先となるメールアドレスが Postfix から送信を許可する形式になっていないことを示している。
ログには下記のように表示される。

Jan 29 10:22:26 *** postfix/smtpd[3487]: connect from unknown[***]
Jan 29 10:22:26 *** postfix/smtpd[3487]: warning: Illegal address syntax from unknown[***] in MAIL command: <***@***>
Jan 29 10:22:26 *** postfix/smtpd[3487]: disconnect from unknown[***]




このエラーが出る場合の原因は 2 点あり、送信先のメールアドレスの @ 以下がホスト名ではなく IP アドレスの場合と、送信先のメールアドレスの先頭文字が -(ハイフン)の時である。
各対応方法は次の通りである。

2.ログにエラーが出た時の環境状況


ログに Illegal address syntax from unknown が出た場合の状況として、開発環境としてローカルネットワーク内に Postfix を立て、Postfix が起動している同 OS 内にユーザ(以下、A)を作成し、Aのメールボックス(/var/spool/mail/A)に届いたメールが保存される状況である。



ローカルネットワークのため OS のホスト名には正式なドメインではなく localhost.localdomain を設定している。

メール送信は別途同じネットワーク内にいる OS にメーラーから行い、SMTP の認証はアカウントAで行い、送信先は「A@ Postfix のサーバ IP」としており、操作としてはAが自身のメールアドレス宛にメールを送る形となる。

3.Illegal address syntax from unknown の対応(1)


送信先のメールアドレスの @ 以下がホスト名ではなく IP アドレスで Illegal address syntax from unknown が出る場合は、Postfix の設定ファイル(/etc/postfix/main.cf)に次の一行を追加するとメール送信できるようになる。

resolve_numeric_domain = yes


Postfix はデフォルトで @ 以降が IP アドレスの場合はメール送信するのを禁止しており、resolve_numeric_domain を有効にすることで、@ 以下が IP アドレスでもメール送信させる設定となっている。

4.Illegal address syntax from unknown の対応(2)


送信先のメールアドレスの先頭文字が -(ハイフン)で Illegal address syntax from unknown が出る場合は、Postfix の設定ファイル(/etc/postfix/main.cf)に次の一行を追加するとメール送信できるようになる。
main.cf に設定を入れた後は Postfix を再起動することで設定が正式に有効化される。

allow_min_user = yes


Postfix はデフォルトでハイフンで始まるメールアドレスの場合はメール送信するのを禁止しており、allow_min_user を有効にすることで、メールアドレスの先頭がハイフンでもメール送信させる設定となっている。
main.cf に設定を入れた後は Postfix を再起動することで設定が正式に有効化される。



特に 2 つ目のメールアドレスの先頭が -(ハイフン)の対応は携帯キャリアのメールアドレスやフリーメールアドレスの作成時にハイフンやピリオドといった記号文字が使われることが多くなっているので遭遇する確率が増えてきている。

関連記事