[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[linux-users:72102] Re: 受信メールを自動的に読む方法


さかいさん、こんにちは。

>転送とか受信するのではなく,パイプで標準入力に流し込まれるだけです.
>
>>> メールをプログラム内で読むためにはどのようにすれば
>>> よろしいのでしょうか?
>
>たとえば,.forward に,
>
>"| cat > a.txt"
>
>などとしておけば,メールを受信したときに,a.txt というファイルに
>メールがコピーされます.

.forward からパイプでプログラムに流し込むしくみや方法について
だいたい理解できました。
どうもありがとうございました。

それでもう少し分からないところがありますので、もしご存知でしたら
教えて頂けないでしょうか。

実際に行いたいことは、メールの中にファイル名を記述しておきます。
メールが届いたら、リアルタイムで、あるプロセスがそのファイルを
読みに行く、ということを行いたいのです。

それで、処理の内容として考えたことは
1.メールを受信したら、.forward ファイルによって、メールを読む
  プロセス(A)が起動する
2.メールを読むプロセス(A)は、メールの中身のエラーチェック後、
  メールに書かれたファイル名を読むための別プロセス(B)に
  メッセージを送る(メッセージキューによるプロセス間通信を行う)
3.メールを読むプロセス(A)はメッセージを送るとexitする

上記の処理を行うとして、疑問点は以下のとおりです。
Q1. .forward ファイルの中に "| プログラム名"という記述をしておくと
   して、プログラム内では標準入力からメールの最後をなんというコードで
   認識したらよろしいのでしょうか?(何をもってメールのEOFとみなすか?)

Q2.仮に同時刻に、同じユーザ宛てに複数のメールが届いたとすると
   .forward によって起動されるメールを読むプロセス(A)は複数と
   考えてよろしいでしょうか?
   つまり、1プロセスにつき1件のメールを処理する、と考えて
   問題ないでしょうか?

Q3.他に何かよい方法ありますか?
   例えばシェルだけで可能とか・・。(シェルについてあまり詳しくないので
   よく分からないのです)

以上、よろしくお願いいたします。

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
Follow-Ups: References: