2009年11月09日

Postfixで自分宛てにメールが送信できない問題

日本にあるCentOSのレンタルサーバーにpostfixをインストールして、自分宛てにテストメールを送ると送信エラーが起きてしまう問題に遭遇した。

具体的には、test@example.comのメールアカウントから、同じアドレスtest@example.com宛てにメールをメーラーから送信する。すると、

551 User not local; please try <forward-path>

というエラーダイアログが表示されるというもの。 ずっとpostfixの設定に問題があると思っていた。しかし、中国人の同僚にも調べてもらったところ、どうもGFWに原因がありそうだと判明。下記のサイトに、その報告がある。(リンク先は中国語。)

http://www.5dmail.net/bbs/thread-168213-1-10.html

確かに同じ操作を日本にあるクライアントマシンから試すと、自分宛てのメールがエラーなしで送信できる。 実際telnet経由でメールを送信してみるとはっきり違いが分かる。

クライアントマシン(日本)→メールサーバー(日本)

日本にあるクライアントマシンから、同じく日本にあるメールサーバーにtelnet経由でメールを送信した場合。(ホスト名やIPアドレスはすべて仮のもの。)

# telnet mail.example.com 25
Trying 111.112.113.114...
Connected to mail.example.com (111.112.113.114).
Escape character is '^]'.
220 mail.example.com ESMTP unknown
EHLO 111.112.113.114
250-mail.example.com
250-PIPELINING
250-SIZE 10485760
250-VRFY
250-ETRN
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH PLAIN xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
235 2.0.0 Authentication successful
MAIL FROM: <test@example.com>
250 2.1.0 Ok
RCPT TO: <test@example.com>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Subject: Send a mail with telnet client as MUA. From: test@example.com To: test@example.com mail test . 250 2.0.0 Ok: queued as D52D2241891A QUIT 221 2.0.0 Bye Connection closed by foreign host. #

問題なくメールが送信できることが分かる。

クライアントマシン(中国)→メールサーバー(日本)

中国にあるクライアントマシンから、日本のメールサーバーにメールを送信した場合

# telnet mail.example.com 25
Trying 111.112.113.114...
Connected to mail.example.com (111.112.113.114).
Escape character is '^]'.
220 mail.example.com ESMTP unknown
EHLO 111.112.113.114
250-mail.example.com
250-PIPELINING
250-SIZE 10485760
250-VRFY
250-ETRN
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH PLAIN xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
235 2.0.0 Authentication successful
MAIL FROM:<test@example.com>
250 2.1.0 Ok
RCPT TO:<test@example.com>
551 User not local; please try <forward-path>  ← ここでエラーが返ってくる。
Connection closed by foreign host.
# 

上のようにTOアドレスを入力した後で、"551 User not local..."のエラーが返ってくる。

一方同様なことをTOとFROMのアドレスが異なっている場合はうまくいく。

# telnet mail.example.com 25
Trying 111.112.113.114...
Connected to mail.example.com (111.112.113.114).
Escape character is '^]'.
220 mail.example.com ESMTP unknown
EHLO 111.112.113.114
250-mail.example.com
250-PIPELINING
250-SIZE 10485760
250-VRFY
250-ETRN
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH PLAIN xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
235 2.0.0 Authentication successful
MAIL FROM:<test@example.com>
250 2.1.0 Ok
RCPT TO:<dummy@example.com>
250 2.1.5 Ok
DATA
...(省略)...

結局対策方法はみつかっていない。しかし、自分宛てにメールを送信することは、メールの疎通確認以外はそうそう行わないので、とりあえずこのままで行くことにした。

中国でインターネットビジネスをするときは、想定外のことがたくさん起こる。

参考リンク



posted by cpractice at 12:10| Comment(0) | TrackBack(0) | ツール | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。