又、外部からのメールの受信もできない。
という問題が発生しました。
+------------+ +------------+
| localhost | | 他のホスト |
+------------+ +------------+
| |
------------ ------------
|qmail-inject| |qmail-smtpd | rcpthosts
------------ ------------
| |
+------------+
|qmail-queue |
+------------+
|
+------------+
locals | qmail-send |
+------------+
| |
+------------+ +------------+
|qmail-lspawn| |qmail-rspawn|smtprouts
+------------+ +------------+
| |
------------ ------------
|qmail-local | |qmail-remote|
------------ ------------
| |
+------------+ +------------+
| localhost | | 他のホスト |
+------------+ +------------+
原因究明の為、yahooへtelnetで接続してみる。$nslookup
>set type=mx
>yahoo.co.jp
mx1.mail.yahoo.co.jp .... ...
>exit
$telnet mx1.mail.yahoo.co.jp 25 #yahooのメールサーバーの25番ポートに接続
telnet: connect to address 124.83.171.181:No route to host なぜか? 「No route to host」
pingを打ってみるとちゃんと返ってくる。 $ping xxx.xxx.xxx.xxx 64 bytes from 124.83.171.181: icmp_seq=0 ttl=49 time=21.6 ms ... 調べてみると接続プロバイダのso-netでsmtpの25番ポートを ブロックしているようです。 そうえいば、以前そんな連絡があったような記憶が甦ってきました。 メール送信の25番ポートブロック対策としては so-netのsmtpサーバーを中継しないと送信できないので smtproutesに中継サーバーを追加したら送信できました。 smtproutes :mail.xxx.so-net.ne.jp #全ての宛先のメールを中継サーバーへ送る 次は受信ですが外部からのメールの受信ができません。 http://www.grc.com/intro.htmの ShieldsUPで調べた結果、SMTPポートが閉じていたので SMTPの25番ポートを開ける。
#iptables -A INPUT -p tcp --dport 25 -j ACCEPT tcpdで使用するhosts.allowに以下の行を追加しました。 #ローカルネットワークのホストから転送できるようにRELAYCLIENTを宣言
tcp-env:192.168.1. :setenv = RELAYCLIENT
#リモートホストからSMTP接続できるように許可
tcp-env:ALL これでようやくメールの受信はできるようになりましたが、 なぜかこれまで使用していたfetchmailで取ってきていたso-netのメールが 以下のようなエラーが出て取ってこれなくなってしまいました。 reading message user_name@pop.wj9.so-net.ne.jp:1 of 1 (1433 octets) .fetchmail: SMTP error: 553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1) fetchmail: can't even send to user_name! rcpthostsには以下のエントリーがあり問題無いと思っているのですが. . . wj9.so-net.ne.jp
.wj9.so-net.ne.jp
tcp-env:127.0.0.1. :setenv = RELAYCLIENT
を追加hosts.allowに追加したら解決。 queueに入れるだけかと思っていたので消していたのですが fetchmailはqmail-smtpdに渡すということですね。

