sendmailのキューの処理方法と対処方法について

このQ&Aのポイント
  • 古いメールサーバを廃棄する前に、キューにたまったメールの処理方法について知りたいです。
  • /var/spool/mqueueディレクトリには、様々な種類のファイルが存在します。これらのファイルの性質や、手順1を実行した後の対処方法について教えてください。
  • mailqコマンドでメールキューがなくなった後も、/var/spool/mqueueディレクトリに残るファイルについてもご教授いただければ幸いです。
回答を見る
  • ベストアンサー

sendmailのキュー

古いメールサーバを廃棄します。 その前にキューにたまったメールの処理をしたいと思います。 キューの消し方は、mailqコマンドでメッセージIDを調べ、 【手順1】 $ rm /var/spool/mqueue/dfJAA00**** $ rm /var/spool/mqueue/qfJAA00**** などとすればよいと聞きました。→d***とq***を消す。 しかし、/var/spool/mqueueをみると、頭文字がdやqのメッセージ ばかりではなく、頭文字が大文字のQや大文字のT、小文字のt、 小文字のxなどのファイルがあります。 これらのファイルは、どのような性質のファイルなのでしょうか? 【手順1】を実行すれば、自動的に消えてくれるようなファイル なのでしょうか? mailqコマンドで、メールキューがなくなった後も、これらのファイルが残っていた場合の対処方法などもご教授いただければ幸いです。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

df* データ qf* キュー制御ファイル及びヘッダ tf* qfの書き換えの為の一時ファイル xf* トランスクリプト・ファイル lf* ロックファイル(v5.62で廃止) nf* ID生成ファイル(v5.62で廃止) ぶっちゃけ、サーバー廃止するなら $ rm /var/spool/mqueue/* でOK。

その他の回答 (1)

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.2

書き忘れ。 「頭が大文字」なのは「頭が小文字の同名ファイルが既存」の場合に作られるだけ。余り気にしなくて良い。

関連するQ&A

  • sendmailのキューと/vvar/spool/mqueueの数が異なる

    Sendmail初心者です。よろしくお願いします。 数件なのですが/var/spool/mqueue以下にメールが滞留しています。 このメールは一週間以上経過しています。 (どこからもクレームもありませんし、今のところ大きな問題はありません。) ただ、mailqでは滞留メールは表示されません。 sendmail -q -vコマンドにも反応しません。。。 (mailqで滞留メールがないので、当然かもしれませんが。。。) ちゃんとPostmasterのアドレスは設定されていますし、QUEUERETURN'に関しても設定しております。 define(`confTO_QUEUERETURN', `4h')dnl define(`confTO_QUEUERETURN_URGENT', `90m')dnl define(`confTO_QUEUEWARN', `3h')dnl にもかかわらず、なぜ/var/spool/mqueueにメールが存在し続けるのかが分かりません。また、なぜmailqにも表示されないのでしょうか? 本来、正常なメールならば未送信レポートを返して、キューから削除され、 spamなどの宛先不明メールならば、一定期間がすぎたら自動でキューから削除されると思います。 よろしくお願いします。

  • sendmailにおいての/var/spool/mqueueディレクトリに関して

    Sendmailを使用して、メールシステムを作っています。 mailqとうっても、キューにはメールがない旨、表示されるのですが、/var/spool/mqueueディレクトリには、多くのファイルが存在し、/varの領域を圧迫しています。手動で、これらのファイルを削除してもいいものなのでしょうか? よろしくお願いいたします。

  • メールのキューの削除

    /var/spool/mqueueにファイルが沢山溜まっています。 rmで単に削除しても大丈夫でしょうか? findの exec?パラメータを使って、1ヶ月前までのメールスプールを削除する描き方も知りたいです。

  • sendmailの動作に関して

    現在、AIX5.1、sendmail8.11.6p2でメールシステムを 構築しています。 今まで普通に動いていたのですが、ここ最近、/var/spool/mqueueがいっぱいになって、メールが送受信できない事態が起こっています。 ログを見ると、ある人からメールが届くのですが、何らかの理由で受信できない場合、Mailer daemonが返信しようとします。しかし、data Format errorのため送信できないようです。このため、定期的にMailer daemonがメールを送信をしようと試み、そのたびに、失敗しています。同時に、新しいメッセージIDが付いたメールが/var/spool/mqueueに溜まっていってしまいます。 ログはこんな感じです。定期的に以下のような内容が出力されます(メッセージIDは異なる) Sep 20 09:38:55 dns1 sendmail[114638]: j8K0aDb114638: to=<foo@hogehoge.co.jp>, delay=00:00:02, xdelay=00:00:00, mailer=smtp, pri=4622146, r elay=***.*****co.jp. [123.456.789.1011], dsn=5.6.0, stat=Data format error Sep 20 09:38:55 dns1 sendmail[114638]: j8K0aDb114638: j8K0aDc114638: return to sender: Data format error Sep 20 09:39:06 dns1 sendmail[114638]: j8K0aDb114638: Losing ./qfj8K0aDb114638: savemail panic Sep 20 09:39:06 dns1 sendmail[114638]: j8K0aDb114638: SYSERR(root): savemail: cannot save rejected email anywhere: No such file or directory このように、メールが返信できないと、次々に新しいメッセージIDをもったキューを作り出すのは、仕様なのでしょうか?それとも、バグなのでしょうか? また、Mailqを見ても、キューはないのに、/var/spool/mqueueにはメッセージがたくさん残っているように見えるのですが、これは、正常なsendmailの動作の結果できたごみファイルで、できるのが普通なのでしょうか?

  • sendmailのメールキューの削除の仕方

    『No.153471 質問:ループしている?メール接続を消す方法 』 でも同じような質問をしているのですが、 現在sendmailの設定を行っています。 AというサーバからBというdns兼Aのメールサーバの中継の設定を行ってメールを 送信しようとしています。当初sendmailの設定が上手くいかず、そのときのエラー メールが今でもループしています。mailコマンドで、あるわけもないアカウントに 送信もしました。とりあえず、/var/spool/mqueue/の内容は消しました。 このような、行き場所のないメールキューをクリアする方法はないでしょうか。

  • メールのキューの考え方や使い方

    mailqを実行するとmailコマンドのように何か変化したり、メールが勝手に送信されるということはないでしょうか? mailqコマンドについて、というよりメールのスプールの概念がよくわかっていません。mailqと共に知っておくべき事象がありましたら教えてください。 このメールキューの設定方法も知りたいです。おそらくsendmailかなと思いますが良い書籍も紹介して欲しいです。

  • sendmailの送信

    SSD/LINUXというメーカーのLinuxのOSです。  rootで送受信はうまく行っています。一般のユーザで は受信はうまく行えますが、送信する際: Linux[377]$ can not chdir(/var/spool/mqueue/): Permission denied Program mode requires special privileges, e.g., root or TrustedUser. のようなメッセージが出て、できませんでした。  アドバイスをよろしくお願いします。

  • メールキューに入っているメールを取り出したい

    postfixでメールサービスしています。(マシンはMacOSX 10.4.11 ) あるユーザ宛のメールを自動転送設定しているのですが、転送先サーバが受信拒否しており、メールキューに溜まったまま保留状態になっています。 もちろん、メール送信の再試行やコマンドでmailq等、いくつか試してみましたが、送信されません。 (なお、その他のユーザのメール送受信等は問題なく行われています) このメールキューに溜まった状態のメールを読み出す、任意のユーザに転送しなおす、もしくはプレーンテキストでもいいので、メール内容だけでも確認したいのですが、何か方法はありませんか? どなたかご教授ください、よろしくお願いいたします。

  • Perl:あるファイル名が指定のリスト(テキストファイル)になければ、そのファイルを消去するというのを作りたいのですが。

    RHL9.0を使ってます。/var/spool/mail/以下に次のようなファイルがあったとします。 taro hanako daisuke yukie また、/home/admin/user-name.txtというファイルには次のように書かれています。 taro hanako … このとき、perlを用いて/var/spool/mailディレクトリからuser-name.txtに名前のない人のファイルを消去するというスクリプトを作りたいのですが。おそらくif 文を使うと思うのですがどうすればよいでしょう。$userという変数にuser-name.txtの一つ一つを代入してWhile文でまわすことはできてます。後は「$userという名前のファイルが/var/spool/mail以下になかったらsystem("rm /var/spool/mail/$user");を実行する。」とするだけです。 ちなみに、userdelを-rコマンドをつけずに消去された人たちのものが実際存在する人たちのものと混在しているため消したいと言うのが動機です。

  • Sendmail8.11.2について

    Sendmail8.11.2について教えて下さい。 ledhat Linux7.1 にSendmail8.11.2をインスートルしてCFファイルを設定後、mailコマンドにて一般ユーザ同士及びrootから一般ユーザ宛のメールのやり取りはうまく出来るのですがroot宛にメールを送信しようとするとログファイル(/var/log/maillog)に以下のようなエラーが出力されます。 vod sendmail[24661]: f99ClRw24661: from=vod, size=29, class=0, nrcpts=1, msgid=<200110091247.f99 ClRw24661@vod.f-road.ne.jp>, relay=vod@localhost vod procmail[24662]: Insufficient privileges to deliver to "root" vod sendmail[24661]: f99ClRw24661: to=root, ctladdr=vod (501/500), delay=00:00:00, xdelay=00:00: 00, mailer=local, pri=30029, dsn=5.0.0, stat=Insufficient permission なにかのパーミッションでエラーになっているように思われるのですが。なにが悪いのでしょうか。 ちなみにCFのWIDE CFを使用し以下の項目のみを設定しています。 OS_TYPE=linux-redhat MX_SENDMAIL=yes MY_DOMAIN='ドメイン名' OFFICIAL_NAME='オフィシャル名' FROM_ADDRESS='$m' DIRECT_DELIVER_DOMAINS=all QUEUE_DIR='/var/spool/mqueue' その他はデフォルトとなっています。 御存知の方、御教示をお願いします。