More from: fetchmail

またやっちゃった・・・orz

先週サーバーにfetchmailを使ってメールサーバからメールを取り込むように設定した。
今朝になってそのサーバーからスプールが満杯で配信出来ないと警告のメールが来たので調べてみると、取り込んだメールをメールサーバ側に残すようにしていたために同じメールを何度も取り込んでしまい、その結果スプールが満杯になっていた。
あれ?何で何回も同じメールを取り込むかなぁ?と思って調べてみると、.fetchmailrcファイルにはkeepオプションを記述してあるのに、実際の取り込み時にはallオプションを付けていたorz
これじゃメールサーバに残したメールを毎回取り込んでしまうのも当たり前だ・・・
早速allオプションを外したので、今後は一度取り込んだメールは取り込まなくなる筈。
滅多にやらない設定なので油断したなぁ・・・

←クリックしてくれると嬉しいです。

fetchmailで意味の無い設定をしてしまった(汗)

新規のメールユーザーが増えたのでサーバにユーザーを追加して受信用のデーモン代わりのfetchmailの設定も追加した。
当初は本来のサーバにメールを残すためにkeepオプションを付けて.fetchmailrcを書いた。
で、実際に受信動作をさせてみると取得済みのメールを何度も取得してしまい、メールボックス内に同じメールが複数取り込まれてしまう。
しかもユーザーのホームディレクトリに作られるはずの.fetchids(取得済みのメッセージIDを記録するファイル)ファイルが出来ていない。
おかしいな?と思って調べて見ると、keepオプションを付けているにもかかわらず、受信時にはa(All)オプションを付けて”fetchmail -a”としていた(汗)。
このaオプションは取得済みでも全て取得してしまうので、同じメールを何度も取り込んでしまっていたと言う訳だ。

焦って作業してはいけないということだね(爆)。

←クリックしてくれると嬉しいです。

今回は2千通弱だった

時々頼まれてサーバ上に残してあるメールを削除しているが、今日は約2ヶ月振りにやることになった。
いつもは先方から依頼されて実行するのだが、今回はこちらから削除が必要かどうかを尋ねたところ、
「是非やって欲しい!」
と言われた。
それだけならいつものように
fetchmail -Fv
で取得済みのメールを削除するのだけれど、今回は
「古いのだけを消して貰えないか?」
と言われてしまった。
ところが-Fvオプションを付けてfetchmailを実行すると、サーバ上にあるメールのほぼ全てを削除してしまうので、それは出来ないと答えた。
まぁそれでも良いとのことだったので早速実行して2千通弱のメールをサーバ上から削除した。
ヘッダー形式がRFCに則っていない数通が取得されずにサーバ上に残ってしまったが、全てSPAMだったのでnPopを使って削除した(先に「ほぼ全て」と書いたのはこのようなメールが残るため)。

後から考えたら.fetchidsファイルを加工してから実行すればサーバ上にメールを残すことが出来るかな?と思ったが、.fetchidsに書かれていないメールは再取得されるだけなので、やはり選択的にメールを削除するのは困難だということに気付いた。

うーん、なんか良い方法は無いかなぁ?

←クリックしてくれると嬉しいです。

久々にメールボムを喰らった・・・・・・・

「同じメールが何通も繰り返し届くんだけど、なんかおかしくない?」
という問い合わせが来た。
調べてみると3MB~10MB弱のメールが数通届いていて、それをfetchmailで代行受信しようとしてタイムアウトを起こしていた。
問題のアカウントはfetchmailのオプションでタイムアウト時間(-t)を指定していなかったので、デフォルトの300秒では全てを受信できなかったようだ。
タイムアウトを起こすのでサーバ側のメールを削除しないものだから、何度も同じメールを受信してしまっていた。
早速サーバ側に残っている大きなサイズのメールを削除し、fetchmailのタイムアウト時間も延ばしておいたから、しばらくは大丈夫かな?
それにしても以前から無駄に大きなファイルを添付してくる業者だったけど、また業務妨害をしてくるなんてなぁ、、、、、いっそのこと受信拒否をかけてやろうか?(爆)

←クリックしてくれると嬉しいです。

fetchmail でのサーバ上のメールの削除

4月にもやったけど、今日もメールサーバ上に溜めてあるメールの削除を頼まれた。
1アカウントを複数のPCで使うために普段の受信時にはサーバ上にメールを残すようにしてあるが、大量に溜ると受信時のレスポンスが悪くなってしまうので、ユーザーが我慢できなくなったら削除を依頼してくる。
なにせ前回実施したのが4月の末なので、詳細な手順を忘れている(爆)。
なので、この時の為にと思って当時このブログに手順を書いておいたので、今回はそれを参考にした。
「-Fもしくは–flushオプションだったのね」

今回は約4800通のメールが上記の手順で削除された。

←クリックしてくれると嬉しいです。

-Fもしくは–flushオプションだったのね

一個前の記事「fetchmailで取得済みのメールを削除するには?」に書いたことは、-Fもしくは–flushオプションを付けてfetchmailを起動することで実現出来た。
man fetchmailでオプションを調べたときにこのオプションにも気付いてはいたんだけど、-kもしくは–nokeepと同じだと思っていた。
Manpageをよく読むと
-k or –nokeep
「取得したメッセージをリモートのメールサーバから削除します。」
-F or –flush
「新しいメッセージを取得する前に、古い (以前に取得した) メッセージをメールサーバから削除します。」
となっており、この二つの意味は違うことに気付いた(良く嫁!<自分)
試しに
fetchmail -Fv
を実行したところ、数千通ものメールがサーバから削除されていく様子を見ることが出来、終了後にホームディレクトリにあった「.fetchids」ファイルも消えていた。
うーん、最初にManpageを見たときに気付いていれば悩まずに済んだのになぁ(汗)。

#「.fetchids」ファイルは取得済みでサーバに残してあるメールのエントリを記録しているファイル。

←クリックしてくれると嬉しいです。

fetchmailで取得済みのメールを削除するには?

いやまぁタイトルの件が判らなくてサーバと格闘中。
受信するクライアントPCが複数台ある関係で”keep”オプションを.fetchmailrcに書いてあるユーザーがいるが、サーバ内に数千通溜まってしまって、受信にえらく時間が掛かってしまうので消してくれといわれて消そうとしてる。
単純に
fetchmail -avK (Kはnokeepと同じ)
とすると、過去に受信したメールを再取得してしまい、数千通を再受信するので少々困る。
いつもはnPopというソフトで古いメールを消しているが、今日に限ってエラーを起こしてしまい作業が出来ない。
うーん、fetchmailで取得済みのメールをサーバから削除する手段があると思うんだけどなぁ、、、、、、

解決策はこちら「-Fもしくは–flushオプションだったのね」

←クリックしてくれると嬉しいです。