OpenPneでメール投稿対応。つまりはregexpなパイプ渡し

複数ドメインを管理しちゃってるサーバーでOpenPneを使ってる時に
携帯からのメール投稿対応しようとすると必要になるであろう作業。

うちのサーバーは過去の日記をみて頂ければわかりますが、PostfixMySQLでのバーチャル
ドメインメールボックスを使っています。

そこにregexpテーブルを追加します。


# ローカルまたはリモートアドレスにエイリアスするオプションの検索テーブルを指定する。
virtual_alias_maps = regexp:/etc/postfix/virtual.regs,mysql:/etc/postfix/mysql_virtual_ali
as_maps.cf

これで、メールが届いたときに初めに/etc/postfix/virtual.regsを正規表現に対応したマッピングテーブルとして見に行く設定になります。

では実際にregexpテーブルを書きましょう。


/^(p[0-9]+-[0-9a-f]{12})@example\.com$/  openpneuser
/^(t[0-9]+-[0-9a-f]{12})@example\.com$/  openpneuser
/^(b[0-9]+-[0-9a-f]{12})@example\.com$/  openpneuser
..続く

postmap /etc/postfix/virtual.regsを実行。
こんな感じで、メール投稿用メールアドレス宛てにメールが来たらopenpneuserというユーザーに渡します。
ここは環境によって適宜変えてください。

で、次にtransportに渡されますので、


openpneuser@example.com            local

postmap /etc/postfix/transportを実行。
これでローカルのエイリアスに飛ばすことが出来ますので次に


openpneuser: "|/usr/bin/php /home/OpenPNE2/bin/mail.php"

postalias /etc/aliasesを実行。
最後にPostfixをreloadして完了。

これでメール投稿等ができるようになると思います。