postfixのパイプ処理について質問です。

何故かパイプ処理がうまくいきません。
パイプ先ファイルをユーザーとご認識しているようです。
何が原因でしょうか?
エラーメールの内容は下記です。

<"|/usr/bin/php /var/www/html/files/bin/mail.php"@example.com> (expanded from
<get@example.com>): unknown user: "|/usr/bin/php
/var/www/html/files/bin/mail.php"

どなたか、お助けくださいまし。。。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/11/09 22:48:09
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:zzz_1980 No.2

回答回数492ベストアンサー獲得回数64

ポイント60pt

バーチャルドメインのアドレスがget@example.comだとして

/usr/local/bin/pipeにパイプさせる場合には以下のように一時的に

架空のユーザに配送し

/etc/postfix/virtual

get@example.com get+example.com

それをaliasさせます.

/etc/postfix/aliases

get+example.com "|/usr/bin/php /var/www/html/files/bin/mail.php"

local_recipient_mapsではvirtual_mapsやalias_mapsが参照されるようにしてください.

http://www.kobitosan.net/postfix/ML/arc.3/msg00701.html

id:cure-tape

この方法を試しましたが、反映しません。もちろんnewaliasesやpostfix reload、postfix restartは行っています。

2008/11/09 08:22:02

その他の回答1件)

id:bmw120i No.1

回答回数24ベストアンサー獲得回数4

ポイント10pt

|の後ろにスペースが必要では?

"| /usr/bin/php /var/www/html/files/bin/mail.php"でどうですか?

id:cure-tape

スペース入れましたが、ダメでした・・・。

<"| /usr/bin/php /var/www/html/files/bin/mail.php"@example.com> (expanded from

<get@example.com>): unknown user: "| /usr/bin/php

/var/www/html/files/bin/mail.php"

となっただけですね。。

2008/11/09 00:21:23
id:zzz_1980 No.2

回答回数492ベストアンサー獲得回数64ここでベストアンサー

ポイント60pt

バーチャルドメインのアドレスがget@example.comだとして

/usr/local/bin/pipeにパイプさせる場合には以下のように一時的に

架空のユーザに配送し

/etc/postfix/virtual

get@example.com get+example.com

それをaliasさせます.

/etc/postfix/aliases

get+example.com "|/usr/bin/php /var/www/html/files/bin/mail.php"

local_recipient_mapsではvirtual_mapsやalias_mapsが参照されるようにしてください.

http://www.kobitosan.net/postfix/ML/arc.3/msg00701.html

id:cure-tape

この方法を試しましたが、反映しません。もちろんnewaliasesやpostfix reload、postfix restartは行っています。

2008/11/09 08:22:02
  • id:b-wind
    エラーメールじゃなく、エラーの元となっているパイプの設定をしているファイルを提示しないと答えられないです。
  • id:cure-tape
    ■main.cfの設定
    virtual_alias_maps = hash:/etc/aliases, pcre:/etc/postfix/virtual.regxp


    ■/etc/postfix/virtual.regexpの設定
    /^get\@example\.com$/ "|/usr/bin/php /var/www/html/files/bin/mail.php"

    になります。
  • id:zzz_1980
    「反映しません。」と書かれていることが、全く変化がない、ということであれば
    書き換えルール
    get@example.com get+example.com
    すら反映ということになりますから、alias の書き方の問題ではなく
    vertual alias 自体が有効になっていないということになりますが。
  • id:cure-tape
    ■/etc/postfix/virtual.regexpの設定
    /^get\@example\.com$/ 外部のメールアドレス
    とした場合はちゃんと転送されます。

    /^get\@example\.com$/ の転送先をphpにした場合に
    転送先ファイル名がユーザーと認識されてしまうのです。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません