sugimotoです。
インターネット向けのシステムでは、ユーザーからのメールを受信して自動的に処理をすることがあります。
- メール投稿された記事をブログにアップする
- 空メール送信による自動登録
postfix をメールサーバーにメール受信によるスクリプト実行の設定をする方法をメモしておきます。
1. postfixの設定
メール受信をするための細かい設定は省略しますが、スクリプト自動起動のため、alias の設定をします。
/etc/postfix/main.cf に以下の行を確認します。default で書いているので、そのままでいいですね。
alias_database = hash:/etc/aliases
受信するメールアドレスを正規表現で設定したい場合、正規表現アドレスを設定するファイルも追加しておきます。
alias_database = hash:/etc/aliases, regexp:/etc/aliases.regexp
2. aliasの設定
スクリプトを起動するメールアドレスを設定するために alias ファイルに設定を追加します。
groove@xxxxxx.xxx 宛てメールを受信したときに groove.php を実行する
[/etc/aliases] groove: "| /usr/bin/php /var/lib/groove.php"
open-xxxxx@xxxxxx.xxx 宛てメールを受信したときに open.php を実行する
この場合、正規表現設定用のファイル /etc/aliases.regexp に正規表現で設定します。
[/etc/aliases.regexp] /^open-/: "| /usr/bin/php /var/lib/open.php"
簡単です。。
3. postfixの設定
設定が終わったのでさっそくメールを送ると、以下のエラーで失敗してしまいました。
Command died with status 1: " /usr/bin/php /var/lib/groove.php". Command output: No log handling enabled - turning on stderr logging /usr/share/snmp/mibs/SNMP-COMMUNITY-MIB.txt: Permission denied /usr/share/snmp/mibs/NET-SNMP-TC.txt: Permission denied /usr/share/snmp/mibs/SNMPv2-TC.txt: Permission denied /usr/share/snmp/mibs/SNMPv2-SMI.txt: Permission denied /usr/share/snmp/mibs/SNMP-NOTIFICATION-MIB.txt: Permission denied /usr/share/snmp/mibs/SNMPv2-CONF.txt: Permission denied /usr/share/snmp/mibs/LM-SENSORS-MIB.txt: Permission denied ...中略・・・ /usr/share/snmp/mibs/TRANSPORT-ADDRESS-MIB.txt: Permission denied /usr/share/snmp/mibs/IF-MIB.txt: Permission denied /usr/share/snmp/mibs/IPV6-UDP-MIB.txt: Permission denied Cannot find module (IP-MIB): At line 0 in (none) Cannot find module (IF-MIB): At line 0 in (none) Cannot find module (TCP-MIB): At line 0 in (none) Cannot find module (UDP-MIB): At line 0 in (none) Cannot find module (HOST-RESOURCES-MIB): At line 0 in (none) Cannot find module (SNMPv2-MIB): At line 0 in (none) Cannot find module (SNMPv2-SMI): At line 0 in (none) Cannot find module (NOTIFICATION-LOG-MIB): At line 0 in (none) Cannot find module (DISMAN-EVENT-MIB): At line 0 in (none) Cannot find mod
しばらく途方にくれていましたが、Googleで検索したところ、 selinux がONになっていたことが原因ということ。
[/etc/selinux/config] SELINUX=disabled < < enforcingから変更
以上、で成功しました。
zeera document search
zeera document searchで社内文書検索