前の日記で予告した修正版。メール配送部分。
特定ユーザのメール全てを対象とするのは運用上苦しいので画像受け取り用の仮想的なユーザ、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 |
これなら転送した実ユーザの権限でファイルの作成ができました。
もっと簡単な方法ありません?