2007年4月19日木曜日

メール受信時の環境変数RAILS_ENVの設定

サーバー側でメールを受信した際にアプリケーションを実行するプログラムを作っていると仮定します。

※問合せ管理用のWebシステムがあり、その中の一つのインターフェイスとして当プログラムが存在しているような場合です。

その際に、webアプリケーションではwebrick起動の際にdevelopmentもしくはproductionをRAILS_ENVに設定しますが、メール受信の際にはwebrickを介さずにscript/runnerでプログラムを起動するため、メールを受信したユーザーの環境変数でプログラムが実行されます。

通常はRAILS_ENVの環境変数が設定されていないので、アプリケーションを起動する際に環境変数を設定しなければなりません。

いかはpostfixでの環境変数の設定方法を例にした記述方法です。

ユーザー自身のホームディレクトリに移動し".forward"ファイルを編集します。


vi .forward

"|export RAILS_ENV=production && /usr/local/bin/ruby プログラムのパス/script/runner \"Mailman.receive(STDIN.read)\""


このexport RAILS_ENV=production &&で環境変数を設定することによりプログラムがproductionで実行されます。

qmailの場合は.qmailファイルに書くだけでよいと思います。

※試したことはありませんが、おそらくそんなに変わらないでしょう。

SevenAgent,Inc

0 件のコメント: