- PR -

sendmail で受信メールを削除する方法

投稿者投稿内容
wataru
会議室デビュー日: 2005/02/09
投稿数: 11
投稿日時: 2005-03-24 16:53
C言語プログラム(もしくはCシェルスクリプト)内で、
メールを空読みして削除したいです。

コマンドラインからは、
・mailコマンド実行
・サブコマンドdで削除
で、できましたがプログラム内からも実行できますでしょうか?

特にメール内容を見たい訳では無く、受信メール(/var/mail/ユーザ名)
でディスクを圧迫するのを避けたいだけです。(受信メールは送信時の
エラーメールのみ想定)

それとも、いくら受信しても、そのような心配は不要なのでしょうか?

kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2005-03-24 18:02
こんにちわ.
引用:

wataruさんの書き込み (2005-03-24 16:53) より:

特にメール内容を見たい訳では無く、受信メール(/var/mail/ユーザ名)
でディスクを圧迫するのを避けたいだけです。(受信メールは送信時の
エラーメールのみ想定)

それとも、いくら受信しても、そのような心配は不要なのでしょうか?


非常に疑問なのですが,それでは何のために受信しているのですか?
そもそも受信しなければ圧迫することもないと思うのですが?
単に受信したくないなら MTA を停止すればよいだけでしょうし,
特定の user account 向けのだけなら null にでも流してやれば宜しいのでは?
敢えて「program から削除する」という必要性が判りませんが...
wataru
会議室デビュー日: 2005/02/09
投稿数: 11
投稿日時: 2005-03-24 18:30
早速のお返事ありがとう御座います。

> 非常に疑問なのですが,それでは何のために受信しているのですか?
> そもそも受信しなければ圧迫することもないと思うのですが?
●受信しなくても良いです。

> 単に受信したくないなら MTA を停止すればよいだけでしょうし,
●送信は、しているので停止はできません。

> 特定の user account 向けのだけなら null にでも流してやれば宜しいのでは?
●ど、どうやるのでしょうか??

> 敢えて「program から削除する」という必要性が判りませんが...
●cronでも良いです。定期的に消せれば・・・
K
大ベテラン
会議室デビュー日: 2004/04/07
投稿数: 174
投稿日時: 2005-03-24 18:40
cronでよいのなら、問題は解決していると思いますが?
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2005-03-24 23:16
引用:

wataruさんの書き込み (2005-03-24 18:30) より:

> 非常に疑問なのですが,それでは何のために受信しているのですか?
> そもそも受信しなければ圧迫することもないと思うのですが?
●受信しなくても良いです。

> 単に受信したくないなら MTA を停止すればよいだけでしょうし,
●送信は、しているので停止はできません。


sendmail の設定が良くわかりませんが,
127.0.0.1 だけ listen させれば外部からは受け付けないで
localhost から送出できる状態になると思います.
引用:

> 敢えて「program から削除する」という必要性が判りませんが...
●cronでも良いです。定期的に消せれば・・・


moge様のご指摘通りです.
command で実現できたのですよね?
それを shell script にでもして,cron で実行させたら如何ですか?

或いは受け付けたものを alias や .forward などで null に流し込むとか.
NeXT
大ベテラン
会議室デビュー日: 2004/04/06
投稿数: 215
お住まい・勤務地: 江戸
投稿日時: 2005-03-24 23:35
sendmail を利用されているとのことですので
access ファイルで DISCARD(破棄) とする方法も利用できるかと思います。

http://www.fkimura.com/sendmail-cf0.html
http://www.sendmail.org/m4/anti_spam.html
綾瀬
ぬし
会議室デビュー日: 2002/07/31
投稿数: 393
お住まい・勤務地: どっちも3階
投稿日時: 2005-03-25 13:25
全てのメールが要らないなら、そもそもspoolさせなければ良いだけなので
/dev/null行きにして終わりで良いでしょうね。

ちなみに、エラーメールを見ないということは、送れなかった宛先等の
情報は要らないということなんでしょうか。
んーっと、spam屋さん?

-----
最近こんな発言ばかりしてる気がする…
wataru
会議室デビュー日: 2005/02/09
投稿数: 11
投稿日時: 2005-04-11 11:42

>んーっと、spam屋さん?
●えーっと、spam屋では無いです。。

>ちなみに、エラーメールを見ないということは、送れなかった宛先等の
>情報は要らないということなんでしょうか。
●上に書いてある通り、受信メール でディスクを圧迫するのを避けたいだけです。
なので、できれば、cronで
1. 現在時刻より、N時間前のメールだけ削除する。又は
2. 最新からN件だけ保持し、N件目より古いメールは削除する
としたいです。(現場のSEさんがエラーメールをみれるように。)

1.2.ができない場合、
3. cronで定期的に全メール削除


>command で実現できたのですよね?
>それを shell script にでもして,cron で実行させたら如何ですか?
●す、すいません。。

コマンドラインからは、
・mailコマンド実行
・サブコマンドdで削除
で、できましたが、shell scripでのサブコマンドdの記述の仕方が
わかりませんでした。どうやるんでしょうか?




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