メールの添付画像をDBに格納(メール配送部分)

前の日記で予告した修正版。メール配送部分。


特定ユーザのメール全てを対象とするのは運用上苦しいので画像受け取り用の仮想的なユーザ、imageを作ることにする。

方法1

/etc/aliasesに以下のように書けば仮想的なユーザ、image宛のメールを直接プログラムに渡せる。(変更後はnewaliasesコマンド必須)

image: “| /home/mikeda/bin/mailparse.php


ただこの方法だとスクリプトの実行ユーザがよくわからん人になってしまうので画像ファイルやログの出力ディレクトリのパーミッション管理が苦しい。
(デフォルトではmailnullというユーザ、グループ。sendmail.cfで変更可能だがいじりたくない。)

というわけで方法2

/etc/aliasesで仮想ユーザ宛のメールを実ユーザ宛に転送

image:		mikeda

実ユーザの.procmail.rcで仮想ユーザ宛のメールを処理

SHELL=/bin/bash
PATH=/usr/bin:/bin
DROPPRIVS=yes
MAILDIR=$HOME/Maildir
DEFAULT=$MAILDIR/
LOGFILE=$MAILDIR/procmail.log

:0
 ^To.*image@
$HOME/bin/mailparse.php
:0 $DEFAULT


これなら転送した実ユーザの権限でファイルの作成ができました。
もっと簡単な方法ありません?