• 締切済み

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

自分が管理しているサーバー上(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を使用しない場合と違って、どのような原理なのでしょうか?

  • Perl
  • 回答数1
  • ありがとう数1

みんなの回答

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

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

majikaru
質問者

お礼

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

関連するQ&A

  • メールの件名のデコード

    お世話になります。 メールの件名が「登録」のもののみ、以降の処理をしようとしています。 $n_msg = $pop3->numMsg(); $header_list = $pop3->getParsedHeaders($n_msg); $subject = mb_decode_mimeheader($header_list['Subject']); print "$subject<br>"; としても「??」と表示され、 「登録」に戻りません。 if($subject <> "登録") なら、対象外とするという処理に したいのですが、どうすればいいでしょうか? ちなみに、、 $header_list['Subject']は、 =?iso-2022-jp?B?GyRCRVBPPxsoQg==?= です。 よろしくお願いします。

    • 締切済み
    • PHP
  • メール転送時にSubject変更

    全然分かってないのですが、例えば .forward などを編集する事で、メール転送時にSubjectに特定の文字を付加する事は可能でしょうか? というのも部署内で共通に使用するメールアドレスをメンバーに転送する予定なのですが、初心者ばかりなのでヘッダーの to で確認してもらうのが難しそうなんですね。何か簡単に対処できればと思ったのですが… 少し調べまして、Perlのスクリプトを仕込めば実現可能だというのは分かったのですが、もう少しお手軽にできる方法があればと思って質問しました。 回答お待ちしてます!

  • スクリプト用のヘッダー?

    sub enterin { &header; print <<EOM; --------------------------- とかで header を使いまわししていますが ある1つのページだけでSSL時に利用する<script>を使います。 その時だけヘッダーに<script>を書かなければいけないのです。  header に<script>を書いてしまうと全ページに<script>のSSLが 適用されるのでSSL以外のhtmlページだと困ります。。。 ある1つのページのみに<script>を使う為の  headerの<script>表記はどう組み合わせれば良いでしょう?

    • ベストアンサー
    • CGI
  • perlスクリプト

    perlの勉強をしているものです。人様の作ったスクリプトを解析しています。以下のスクリプトについて質問があります。 while(chomp($in = <STDIN>)){ last if ($in eq "\cD"); print "$in"; } このスクリプトに出てきている、"\cD"の意味と、ifの前に出てきているlastの働きが分かりません。またこのスクリプトは全体としてどのような仕事をするのでしょうか?? 分かる方いらっしゃいましたら、ご教授いただけると幸いです。よろしくお願いします。

  • FTPアカウントを発行できるスクリプト探してます

    よくレンタルサーバとかで、複数のFTPアカウントを発行できるシステムがありますが、そのようなフリーのスクリプト(PHPかPerl)をご存知ないでしょうか? または、そのしくみについても教えていただけるとうれしいです。 どうぞよろしくお願い致しますm(__)m

    • ベストアンサー
    • Perl
  • 複数のメールアカウント毎にのOutlookデータファイルの振り分け

    Outlook2003を使用しています。 現在複数のメールアドレス(複数のPOPサーバを使用しています。)を持っているのですが、到着したメールアドレス毎にOutlookデータファイルを変更したいのです。 IMAP4用メールアカウントとPOP用メールアカウントと違う種類のメールサーバの場合は簡単にできたのですが、POPアカウントが複数ある場合は、どのようにすればよいのでしょうか? プロファイルの変更という手もあるのですが、そうすると、一度Outlookを再起動しなければならず不便なので、できれば避けたいと思っています。 よろしくお願いします。

  • PHPスクリプトでperlスクリプト

    はじめまして。PHP初心者です。助け舟をお願いします。 PHPスクリプトで、formの表示からデータの受け取り→ファイルに書込み→終了画面の表示ができるスクリプトを書くことが出来ました。 これをphpスクリプト1とします。 POSTで受け取った変数を元に処理した変数を返すperlスクリプトがあります。 これをperlスクリプト1とします。 perlスクリプト1をphpスクリプトにすることは私には困難なため、phpスクリプト1のファイルに書き込む前に、perlスクリプト1を実行→返った変数をphpスクリプトで使用しファイルに書込み→終了画面の表示を行いたいです。 こんなことってできますか?

    • 締切済み
    • PHP
  • Rubyのスクリプト

    Rubyを使って、ディレクトリを順に処理していくスクリプトを作ろうとしています。 下記は、perlのものです。 chdir("C:/data"); opendir(DIR, "./"); @myfolderlist= grep(-d, readdir(DIR)); close(DIR); foreach $myfolder(@myfolderlist){ if(($myfolder ne ".") && ($myfolder ne ".." )){ print "$myfolder\n"; } } これに対応するような、かつRubyらしい(foreachを使う)スクリプトを作りたいと考えます。 Dir.foreach('C:/Data'){|item| item.chomp! print item,"\n" } 上記のRubyスクリプトの問題は、ディレクトリのみならず、そこに存在するファイルまで出してしまいます。 Rubyにおいて、ディレクトリ」のみを持ってくるには、どのようにすれば良いでしょうか? 宜しくお願いいたします。

  • メールアカウントとユーザーアカウントの違い

    こんばんは。 メールの仕組みがまったく理解できていない者です。 会社で、DNSサーバー移行をするので、各自アカウントを追加するように言われたのですが、会社で使用しているWebメールソフト?上でアカウントを追加するのだと思うのですが・・・管理者から送られてきたアカウント設定情報だけだと追加がうまくできないのですが・・・。 どなたか教えていただけないでしょうか? メールアカウントとユーザーアカウントって違うものなのですか? アカウント設定情報で、アカウント名の所の$マークは何の意味なんですか? よろしくお願いします。 [アカウント設定情報] POP3サーバ名 : mail.○○○○.co.jp SMTPサーバ名 : mail.○○○○.co.jp メールアドレス(ユーザーID) : 現在のものと同様 POPアカウント名 : #####$○○○○.co.jp (####の部分はメールアカウントと同様です。例. test@○○○○.co.jp → test$○○○○.co.jp) パスワード 個別に連絡します

  • 特定のアカウントだけエラーが出ます。

    WindowsLivemailを使っています。 ある時から、以下のような内容のエラーが出るようになりました。 (ただ、あるときに何かしたという記憶は思い当たりません。) 現象ですが、 何個かアカウントを持っていますが。 このアカウントだけ、1回目の「同期」で必ずエラーとなります。 もう一度(何もしないまま)「同期」を押すと受信できます。 送信ではエラーは出ません。 保存しているメール本数が多いのかなと思いましたが、 もっと多いアカウントではエラーが出ていません。 エラー内容 ***ここから XXXXXX アカウントでメッセージを送受信できません。 サーバーは接続を解除しました。サーバーまたはネットワークに問題があるか、アイドル時間が長すぎた可能性があります。 サーバー: 'pop3.live.com' Windows Live メール エラー ID: 0x800CCC0F プロトコル: POP3 ポート: 995 セキュリティ (SSL): はい         ***ここまで os:WindowsXP プロ sp3 宜しくお願いします。

専門家に質問してみよう