メールで日記を投稿する機能を有効にするために、「urmk.nyan.co.uk」に届いたメールが、「/usr/bin/php
OPENPNE_DIR/bin/mail.php」に運ばれるようにします。
OSには、Debian 「etch」を使っています。
- 先ずは、「urmk.nyan.co.uk」という名前でメール&WebサーバのIPアドレスが引けるようにします。
nsupdate
> update delete nyan.co.uk A
> update add nyan.co.uk ttl A ip_addr
> update delete *.nyan.co.uk A
> update add *.nyan.co.uk ttl A ip_addr
>
サーバのIPアドレスが変わる度に、上記のようなコマンドが実行されるようにします。(ttlやip_addrには実際のTTLやIPアドレスの値が入るようにします。)こうすると、「nyan.co.uk」のサブドメインが何であろうと同じIPアドレスが引けるようになります。
-
Exim4が「urmk.nyan.co.uk」へ届いたメールを受け付けるよう、「/etc/exim4/update-exim4.conf.conf」を編集します。
dc_other_hostnames='nyan.co.uk:urmk.nyan.co.uk'
この例ですと、「nyan.co.uk」か「urmk.nyan.co.uk」に届いたメールを受け付けます。ワイルドカードを使って、全てのサブドメインを受け付けるようにもできるようですが、タイプミス等でサブドメインを間違った時にエラーが戻った方がよい気がするので、ドメインを限定するようにしています。
- 「/etc/exim4/conf.d」に下記のようなacceptルータと、pipeトランスポートを追加します。
#router/305_exim4-config_urmk_local
urmk_local:
debug_print = "R: urmk_local for $local_part@$domain"
driver = accept
domains = ^urmk\\.
transport = urmk_local_pipe
#transport/30_exim4-config_urmk_local_pipe
urmk_local_pipe:
debug_print = "T: urmk_local_pipe for $local_part@$domain"
driver = pipe
command = "/usr/bin/php OPENPNE_DIR/bin/mail.php"
「domains = ^urmk\\.」という部分がミソで、こうすると、「urmk.」で始まるドメインに届いたメールが対象になります。これは正規表現ですが、正規表現としてのエスケープ文字は「\」でなくて、「\\」でないといけないらしいです。
これは、「/etc/exim4/update-exim4.conf.conf」にて、「dc_use_split_config='true'」にしている場合の例です。「dc_use_split_config='false'」の場合には、「/etc/exim4/conf.d」でなくて、「/etc/exim4/exim4.conf.template」を編集することになるかと思います。(あけび猫は後者の方法は試したことがありません。)
- 「update-exim4.conf」を実行してから、「/etc/init.d/exim4
reload」を実行し、メールで日記が投稿できることを確認したら完了です。