DreamHostでメールをコマンドに転送する方法

DreamHostで借りているサーバでOpenPNEを使ってSNSを運営している。
携帯からメールで写真や日記をアップロードするためには、特定のメールアドレスに届いたメールをコマンド
"|/usr/local/bin/php $HOME/OpenPNE/bin/mail.php"
に転送しないといけない。
コントロールパネルの「Forward-Only Email」のところにコマンドを入れてみたけど、「@を含んだアドレスを入れろ」と拒否されてしまった。
そこでサポートに質問したら、すぐ返事が返ってきた。

残念ながら、それはできません。
一番いいのは、メールを
(ユーザー名)@(ホスト名).dreamhost.com
に転送して、procmailを設定してメールをスクリプトに渡すことです。
ごめん!

直接コントロールパネルでコマンドを指定できないけど、代わりの方法を教えてもらったので、やってみた。

  1. DreamHostのコントロールパネルで、catch-all@(ドメイン名)宛てのメールを(ユーザー名)@(ホスト名).dreamhost.comに転送設定する。
    ユーザー名、ホスト名はDreamHostTelnetでログインするときのもの。
  2. DreamHostTelnetでログインして、ホームディレクトリに.forward.postfixを作成する。
  3. .forward.postfixに次の内容を追加して保存する。
    "|/usr/bin/procmail -t"
  4. ホームディレクトリの.procmailrcの一番最後に次の内容を追加して保存する。
    |/usr/local/bin/php $HOME/OpenPNE/bin/mail.php

これで、メールがコマンドに転送されて、携帯から写真をアップロードできるようになった。
めでたしめでたし。



と思いきや、携帯からメールでアップロードした写真が横向きに表示されるという問題が発覚。なぜだ…。