• 締切済み

特定のメールアカウントにメールが送られた時にスクリプトを走らせたい

自分が管理しているサーバー上(Linux)で あるメールアカウント(メールサーバー?)にメールが送られた時に Perlスクリプトの処理を行いたいと思っています。 スクリプトの処理は メールのSubjectと送付物(テキストファイル)の中身を読み取るだけです。 よくわからないので、ネットで検索してみると Net::POP3 というモジュールを使うのかな、と思っていたのですが これは、メールボックス (SMTP サーバの中のファイル) を 自宅のPCに転送する時に使用するもののようで、 自分が行いたい事と違うのかな、と。 あるメールアカウントにメールが送られた時に Perlスクリプトを処理をさせる設定をし # ヘッダの取得 while(<>){    chomp;    last if(/^$/); # ヘッダ終了、ループを抜ける    if(/^(.*): (.*)/){ # 通常のヘッダ      ($headerType,$headerBody) = ($1,$2);      $HEADER{$headerType} = $headerBody;    }    if(/^\s+(.*)/){ # 空白やタブ開始=ヘッダの続き行      $headerBody = $1;      $HEADER{$headerType} .= $headerBody;    } } # Subject フィールドをチェック if($HEADER{'Subject'} =~ /^sc$/){ ・・・ } というような書き方で、POP3等を使用せずに メールを受け取った瞬間にそのメールの内容を読み取れると とあるサイトの文献にあったのですが、 これはどのように設定すれば可能なのでしょうか? また、これはPOPを使用しない場合と違って、どのような原理なのでしょうか?

みんなの回答

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

sendmailを使っている場合、aliases ファイルに、 aaa: "|/usr/local/bin/filter-aaa" と書いて、newaliase を実行すると、aaa に送られたメールがfilter-aaa の標準入力に渡されるようになります。詳しくは、man aliases で。 aliasesファイルの場所は設定によって違うので探してください。 postfixやqmail等他のメール転送ソフトの場合は多少違うかもしれません。

majikaru
質問者

お礼

ご返答ありがとうございます。 自分が知りたかったのはまさにこの情報でした。 貴重な情報ありがとうございました。

関連するQ&A