メールキュー(mailq)とは

我が家のサーバでは、近頃のウィルスメール、迷惑メールの蔓延を考慮してメールサーバは建てないこととしていたけれど、スペック CPU Intel486DX4-75MHz Memory 20MB HDD 4GB のノートパソコン Think Pad 345cs が遊んでいるので、勉強を兼ねてこれに構築してみることにした。MTA(メール配送システム Mail Transfer Agent)は qmail にしてみた。

サーバ構築の解説サイトは多いけれども、プラットホーム、アプリケーションのバージョンなどの違いから微妙に解説が生きていたり死んでいたりで中々難しい。細かい構築の手順はいつかまとめるとして、今回ちょっとはまってしまったことがあった。

それはいよいよ qmail サーバができあがってテストしている時に、自宅メールサーバのメールアカウントを自宅ウェブサーバ(ウェブサーバは sendmail。CGI で sendmail 機能だけが使えるようにしてあります)のメール送信 CGI から cc にて送信してみたことから始まった。送信先に指定した、わたしが利用している ISP のメールアカウントにはいつも通り問題なく送信できたが、自宅メールサーバのメールアカウントへのメールはいつまで経っても送信されないらしく、/var/log の maillog に、
Nov 22 14:52:00 ryokucchi sm-mta[11588]: iAM5ofG2011583: to=, ctladdr= (65534/65534), delay=00:01:18, xdelay=00:01:16, mailer=esmtp, pri=60553, relay=mail.ryos.info. [218.212.33.226], dsn=4.0.0, stat=Deferred: Operation timed out with mail.ryos.info.
とログされていた。

これは始め5分間隔位で繰り返され、後に30分おきに延々と繰り返されだした。『いや〜、困ったな。どうにかとめられないものか』
ログの中にある "Operation timed out" という語句をネットで検索してみたけれど、これといったサイトは検索できない。要するに送信できずに、いつまでも自宅ウェブサーバ機内に残っているらしい。ということは、メールサーバ構築時に LAN 内のクライアント Windows 機の outlook に設定した時に、
受信メール(POP3) ryos.info
送信メール(SMTP) ryos.info
としたら、全く送信できず
受信メール(POP3) 192.168.0.*
送信メール(SMTP) 192.168.0.*
としたら直ぐに送信できたことと同じ原因ではないかと思った。
つまり cc に指定したメールアドレスが、**@ryos.info だったからではと。もしかしたら **@192.168.0.* としたらすんなり送信されたかもしれない。

で結局ネットの検索であるサイトを発見することができた。
http://warp.syns.net/2/1/
このページの一番下に、
-----------------------------------
Sendmail基本環境
Sendmailはmbox形式ですので、メールはファイル形式で保存されます。メールを確認する場合はmailコマンドを実行してください。一覧する場合はmailxコマンドを実行してください。キューを確認する場合はmailqコマンドを実行してください。基本的な設定は以下にまとめました。

受信メールの確認 /bin/mail
受信メールの一覧 /bin/mailx
メールの送信操作 /usr/lib/sendmail
ログファイルの場所 /var/log/syslog
送信未完メールキューの保存場所 /var/spool/mqueue/
キューの内容確認 /usr/lib/sendmail -bp ; mailq
送信未完メールの再処理 /usr/lib/sendmail -q
aliasファイルの場所 /etc/aliases
aliasファイルの更新操作 /usr/lib/sendmail -bi ; newaliases
-----------------------------------
※ サイトの作者はプロフィールらしき情報はなく、『Site Master : sconv』 とだけあって連絡用のメールアドレスがあるだけで、どこの誰だか全く分かりません。

メールキュー(mailq)という言葉も初めて知りました。メールキューとは取り込まれたメールを管理する場所だそうです。この定義からいうと、上の『送信未完メールキューの保存場所』と『キューの内容確認』という書き方はそれぞれ『送信未完メールの保存場所』『送信未完メールのメールキュー』とか『メールキューのメールの内容確認』とした方がいいのかもしれませんね。(^^;)

いずれにしても自宅ウェブサーバの /var/spool/mqueue/ に送信未完メールがあるということだ。早速 /usr/lib/sendmail -bp ; mailq と打って見ると、メール送信 CGI から cc にて送信メールに間違いない内容だ。で、/var/spool/mqueue/ を実際に見てみると、ありましたありました。m(^^)m

ログインして root になって削除しました。あ〜よかった。(^^;) m(^^)m

PageTop