- PR -

POPサーバのメールデータを削除するシェルスクリプト

投稿者投稿内容
見習管理者
ベテラン
会議室デビュー日: 2003/06/17
投稿数: 64
投稿日時: 2004-05-07 16:20
お世話になっております。

社内のPOPサーバ(WindowsNT)の中にある、あるアカウントのメールデータを
定期的に削除したいのですが、そういった作業をシェルスクリプトを作成して
出来ないものでしょうか?

理由はそのメールアカウントを持っている人が長期間別な場所で作業することになり、
その人に来たメールを社外のメールアカウントに転送しています。
なので、その人の社内のメールボックスには溜まる一方になってしまうので
定期的に削除したいということです。

シェルスクリプトに関してはまったくといっていいほど素人なので、やり方が分かりません。
telnetを使用してPOPサーバの中身を見られる程度です。

分かる方、ご教授お願いします。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-05-07 19:32
こんばんわ.
引用:

見習管理者さんの書き込み (2004-05-07 16:20) より:

社内のPOPサーバ(WindowsNT)の中にある、あるアカウントのメールデータを
定期的に削除したいのですが、そういった作業をシェルスクリプトを作成して
出来ないものでしょうか?


月並みですが,その POP3 Server はどのようなモノをお使いで?
引用:

理由はそのメールアカウントを持っている人が長期間別な場所で作業することになり、
その人に来たメールを社外のメールアカウントに転送しています。
なので、その人の社内のメールボックスには溜まる一方になってしまうので
定期的に削除したいということです。


script の前に一点の疑問が.POP3 の前に,SMTP で配信を引き受けてるんですよね?で,それを転送していると.その MTA は転送する際に「local に残す/残さない」を選べないのでしょうか?で,どのような MTA をお使いでしょう?

目的が「メールが溜まってしまうので,溜まらないようにしたい」のであれば,まず「溜まらないようにする」を考える方が宜しいかと.
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2004-05-07 20:58
引用:

kazさんの書き込み (2004-05-07 19:32) より:
目的が「メールが溜まってしまうので,溜まらないようにしたい」のであれば,まず「溜まらないようにする」を考える方が宜しいかと.


同感です。
何か、そうできない事情があるのかもしれませんが、それにしても
「どういうやり方で転送しているのか」「使用しているのはmailbox形式か
Maildir形式か」ということが分からないことには...
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-05-07 21:37
追い討ちをかけるようでゴメンナサイ.

POP3 Server が WindowsNT とありますが,SMTP Server は Linux なのでしょうか?ここが Linux 板であることを鑑みると...
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2004-05-07 23:28
引用:

kazさんの書き込み (2004-05-07 21:37) より:
POP3 Server が WindowsNT とありますが,


おっと、見落としてました><
あんとれ
ぬし
会議室デビュー日: 2004/01/14
投稿数: 556
投稿日時: 2004-05-08 11:42
要するに、Windows NT 上に構築された POP3 サーバ上のメールを時々 Linux の端末から接続して削除したいということでよろしいでしょうか?

ということでしたら、POP3 を喋ることができるプログラムを作成するのがよいかと思います。
シェルの場合は POP3 を喋ることができないので、

Telnet か何かで POP3 サーバに接続し、STAT か何かで残っているメールの件数を取得する。
その標準出力からメールの件数を取得する。
あとは、その件数回 DELE を実行するような文字列を作成して POP3 サーバに渡す。

こんな感じでできるかと思いますが、POP3 の場合はパスワードが必要となるので、そのパスワードをスクリプト内に記述しておく必要があります。
ということで、セキュリティ上の観点から外部の端末から自動的にメールを削除するというのはあまりおすすめできません。

Windows NT 上の POP3 サーバのデータフォーマットについて分からないので、何とも言えませんが、結局のところ、そのユーザへの受信メールを格納したファイルを、定期的に削除するのが簡単かつ最良の方法かと。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-05-08 17:01
こんにちわ.

「定期的に」というのが曲者でしょうね.
「定期的に接続して,あるもの全てを削除」なのか,「定期的に接続して,選んだものだけを削除」なのかによって,処理内容が違ってくるかと.
なので,ぽんすさまとともに「そもそも溜まらないようにするには?」を考慮することをお奨めしたしだいです.

WindowsNT の IIS には POP3 の Service は含まれていませんでしたよね?
個人的にどんな POP3 をお使いなのか,ちょっと興味があったりします.
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2004-05-08 23:33
POPのコマンドを叩いて消す、というのは手ではあるんですが、
「消してよいかどうか、どうやって区別するのか?」ということが
ちょっと気になりました。で、「どういうやり方で転送しているのか」
という疑問が出てきたわけで。
「軒並みぜんぶ消してよい」とか、「既読になってるものは全部
消してよい」ということだと、わりと楽なのですが、そういう条件が
無い場合は結構つらいんじゃないかなあ、と思った次第です。

スキルアップ/キャリアアップ(JOB@IT)