FC2ブログ

Postfixで「fatal: could not open ...Permission denied」

やりたかったことは、「UNIXアカウントを作ること無く、テンポラリの宛先に送信されたメールを受信したい」ってことでした。

いわゆる携帯電話からの画像投稿ですと、何かしらの手段で送信元+αを識別する必要がある訳で。送信元アドレスってのはある種手っ取り早いんですけど、そうすると+αを識別することができない訳で。

で、


  1. 送信先アドレスにユーザIDや他の識別IDを埋め込んだ文字列でもって、「asfdasfas1111@example.com」なんて言ったアドレスを作る。
  2. そのアドレスで受けたら、ローカル部分を変換して識別情報を取り出す。
  3. 識別情報に従って処理。

みたいな実装にしようと思ったのです。でも、その都度、UNIXアカウントを生成するなんてのは非現実的。その辺をpostfixで上手く設定できないかなーと思ったら。

[postfix-jp: 2231] alias_maps の regexp 指定について

なるほど、alias_mapsで正規表現を使えば、ってことで、早速チャレンジ。ちなみに、処理を行うために、パイプでPHPへ渡す方法も上のリンク先に記載されてます。で、受け取り側のPHPスクリプトでは、以下に書かれているように、STDINで受け取れると。その後はもう、切った貼ったで如何様にでもメールをお料理できる訳です。

パイプからのデータを PHP で受け取る

が、/etc/postfix/main.cfに設定を書いてみると、以下のような警告がmaillogに。。

「fatal: could not open [正規表現ルックアップテーブルファイルパス] Permission denied」

あれ、オーナーもパーミッションも大丈夫なのに。。

しばらく、悩んでいたらば、こちらでピンと来ました。

Postfix main.cf ファイルフォーマット

queue_directory (デフォルト: "postconf -d" の出力を参照)
Postfix トップレベルキューディレクトリの場所。これは chroot されて 走っている Postfix デーモンプロセスのルートディレクトリです。


Postfix デーモンプロセスを chroot させて 動かす

で、main.cfを見てみると「queue_directory = /var/spool/postfix」あれ、デフォルトでchrootされてるんだーと。ちょっと、master.cfはまだ見てませんが。正規表現ルックアップテーブファイルを/var/spool/postfix以下に置いたらすんなり動きました。

よかったよかった。
スポンサーサイト




実験@2007/07/25 21:28   | 0 comments | 0 trackbacks |

コメント

コメントの投稿


秘密にする

«  | HOME |  »

いろいろ作ったり

プロフィール

icot

Author:icot
総合電気メーカで働く会社員でしたがいい年にも関わらずコンサルに転職。お酒、ジョギング、音楽、本、料理をこよなく愛してます。ここでは、日々感じた事を書き連ねるとともに、いろいろ実験してみたりしてます。
icotfeels[at]gmail.com

これまでに感じたこと