Railsアプリで画像添付メール経由で画像を受け取りたい。(ガラケーとか)
/etc/aliases:
foo: "| cat $1 > /tmp/foo"
これだとファイルのownerがnobodyとかになっちゃうので.forwardを使う。
/home/unk/.forward:
"| cat $1 > /tmp/foo"
Railsでメールを受け取る
Railsでメールを受け取りたい。railsをCLIから呼び出すにはrails runnerを使う。しかし、railsコマンドはRAILS_ROOT外ではrails new用の動きをするので困る。
しかし、その為にあるのかも知れないscript/rails
を使えばOK。
rvm経由で呼び出すと相当長くなる。
"| BUNDLE_GEMFILE=/var/www/foo/current/Gemfile /home/unk/.rvm/bin/rvm ruby-1.9.2p290@foo exec bundle exec /var/www/foo/current/script/rails runner 'PictureMailer.receive(STDIN.read)' -e production"
しかしまだ画像ファイルが600で作成されるという問題が残る。下記の様にchmodするようにしてもいいけど、umaskを変更する方がいいかも。
mod_passenger利用時の注意点 - komagata
"| umask 0022; BUNDLE_GEMFILE=/var/www/foo/current/Gemfile /home/unk/.rvm/bin/rvm ruby-1.9.2p290@foo exec bundle exec /var/www/foo/current/script/rails runner 'PictureMailer.receive(STDIN.read)' -e production"
umaskは子プロセスに引き継がれるのでPaperclip経由で出来るファイルもこれで644になる。