- 締切済み
特定のメールアカウントにメールが送られた時にスクリプトを走らせたい
自分が管理しているサーバー上(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を使用しない場合と違って、どのような原理なのでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- notnot
- ベストアンサー率47% (4900/10358)
sendmailを使っている場合、aliases ファイルに、 aaa: "|/usr/local/bin/filter-aaa" と書いて、newaliase を実行すると、aaa に送られたメールがfilter-aaa の標準入力に渡されるようになります。詳しくは、man aliases で。 aliasesファイルの場所は設定によって違うので探してください。 postfixやqmail等他のメール転送ソフトの場合は多少違うかもしれません。
お礼
ご返答ありがとうございます。 自分が知りたかったのはまさにこの情報でした。 貴重な情報ありがとうございました。