dポイントプレゼントキャンペーン実施中!

Solaris10で構築したサーバにて、ユーザー宛のメールを受信したら
Perlで記述したスクリプトを実行したい為、下に記載の手順1及び2の
方法で受信メールを渡すパイプを記述したのですがスクリプトが実行されませんでした。
手順1,2共に他のメールアドレスへ転送させた場合、メールの転送は正常に行われました。
メールを受信したらPerlスクリプトを実行するには、どのように設定すればよいのでしょうか?
main.cfやmaster.cfに更なる設定の記述が必要なのでしょうか?
主な環境は下記の様になっているのですが不足がありましたら御指摘下さい。
申し訳ありませんがよろしくお願いします。

【手順1】~/.forwardによるスクリプト起動
    (1)~/.forwardに、下記の様な記述をしましたがスクリプト起動せず。
(.forwardの記述)
       (パターン1) \username,"|/home/username/test.pl"
       (パターン2) "|/home/username/test.pl"
       (パターン3) |"/home/username/test.pl"
       (パターン4) "|/usr/local/bin/perl /home/username/test.pl"

       ※下記のような転送は処理されました
        \username,username@test.ne.jp

【手順2】main.cf修正によるスクリプト起動
    (1)/usr/local/etc/postfix/main.cfに下記行を作成
      alias_maps = hash:/usr/local/etc/postfix/aliases,hash:/usr/local/etc/postfix/usr_alias

      (usr_aliasの記述) username: :include:/home/username/include
      (includeの記述) |"/home/username/test.pl"
              他に上記.forwardの記述の4パターンを試しましたが全てスクリプト起動せずでした。

【サーバ環境】
OS:Solaris10(Sparc)
MTA:postfix-2.5.3

【test.plの内容】
#!/usr/local/bin/perl
open(DATA_FILE, "> test_log.txt");
print DATA_FILE "Test_OK!!!\n";
close(DATA_FILE);

    ※備考
      ・保存場所:/home/username/test.pl
      ・パーミション:test.plと/home/username共に777
(オーナはusername)

【main.cfについて】
念のために
allow_mail_to_files = alias,forward,include
allow_mail_to_commands = alias,forward,include
の記述を追加しています。

A 回答 (1件)

転送の方法はそれであっています。



>全てスクリプト起動せずでした。
起動できないと判断したのはどういう事から?
その判断の仕方が間違っている可能性もあります。
    • good
    • 0
この回答へのお礼

>起動できないと判断したのはどういう事から?
>その判断の仕方が間違っている可能性もあります。

テストスクリプトでファイルが作成されないために
起動していないと判断していました。
ご指摘の通り、誤った判断をしていました。
syslogを見るとテストスクリプトにメールが渡されていることが確認出来ました。
とあるホームページでpostfixとsendmailで
パイプ使用時にカレントディレクトリが異なるとの書き込みを見て
open(DATA_FILE, "> test_log.txt");を
open(DATA_FILE, "> /home/username/test_log.txt");
とフルパスで指定したところファイルが作成されました。
本当に助かりました。ありがとうございます。

お礼日時:2009/03/03 20:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!