初めてのシステムと日記

システムも日記も初めてです。

メール受信でPHPを起動

Postfixにて、メール受信をトリガーにしてPHPを起動させる設定についてです。
よくある、空メールを送信して登録画面のURLを発行するなどのあれの設定です。


エイリアスを有効にする
メール受信をトリガーとしてプログラムを起動させる、
また今回はやりませんがローカルパート(@の左側)に送信されたメールを転送するなどをするため、
エイリアスを有効にします。

/etc/postfix/main.cf に以下の設定がコメントアウトされてると思うので、
コメントアウトを削除して有効にします。

/etc/postfix/main.cf
    #alias有効
    alias_maps = hash:/etc/postfix/aliases
    alias_database = hash:/etc/postfix/aliase


■バーチャルエイリアスの設定
Postfixで複数のドメインを使う場合、バーチャルエイリアスの設定が必要になります。
まず、/etc/postfix/main.cfでバーチャルエイリアスを有効にし、
バーチャルエイリアスの設定ファイル(今回は/etc/postfix/virtual)にてバーチャルエイリアスのユーザーリストを作成します。

/etc/postfix/main.cf
    #virtual_domain指定
    virtual_alias_domains = example.com
    virtual_alias_maps = hash:/etc/postfix/virtual
/etc/postfix/virtual
    #virtual_aliases設定
    register@example.com  register-example
    delete@example.com  delete-example


■トリガーの設定
上記設定にてregister@example.comを受信したらregister-exampleが、
delete@example.comを受信したらdelete-exampleが呼ばれるようになりました。
最後の/etc/postfix/aliasesに実行するプログラムを設定します。

/etc/postfix/aliases
    #トリガー設定
    register-example: | "/usr/bin/php /path/to/register.php"
    delete-example: | "/usr/bin/php /path/to/delete.php"

パイプで実行するプログラムを繋ぎダブルコーテーションで囲みます。

また、他のメールに転送する場合は転送先のメールアドレスを指定します。

    send: hoge@example.com,fuga@example.com