以前、メール受信時に perl スクリプトを起動して自動処理させる方法とかメール受信時に PHP スクリプトを起動して自動処理させる方法なんかを書きましたが、今回は、具体的に特定のレンタルサーバー(さくらのレンタルサーバ)で、メール受信時にスクリプトを起動させる方法を書いてみようと思います。
自分のアカウントのメールアドレスを確認する
さくらのレンタルサーバのサービスで、普通にメールアカウントを追加しても、メールサーバーとWebサーバーが分かれているため、そのままではメール受信時にWebサーバー上のスクリプトを起動させることができません。
しかし、さくらのレンタルサーバでは、申込時には通知されませんが、Webサーバーアカウントに対して、ひとつメールアドレスが発行されています。
このアドレスを使用して、受信時にスクリプトを起動させることができます。
というわけで、そのWebサーバーアカウントに割り当てられた、自分のメールアドレスがどんなアドレスなのか確認する方法を説明します。
まず、コントロールパネルにログインします。
「サーバ情報の表示」⇒「サーバに関する情報」と進むと、以下のような画面が表示されるかと思います。
一部画像を修正してありますが、こんな感じの画面が表示されます。
今回必要となる情報は「ホスト名」の部分です。
「www.****sakura.ne.jp」(****は数字)と表示されているかと思います。
これが本来の Webサーバーのホスト名になります。
このホスト名の前に、自分のサーバーアカウント名(FTP や SSH でログインする際に使用するユーザー名)と @(アットマーク)をつけたものが、あなたの Webサーバーのメールアカウントになります。
例えば、Webサーバーのホスト名が「www.9999sakura.ne.jp」で、サーバーアカウント名が「abetatsuya」なら、メールアドレスは「abetatsuya@www.9999sakura.ne.jp」になります。
Webサーバーのメールアドレスに転送するためのメールアカウントの作成
上記で確認したメールアドレスを、直接スクリプト同様のメールアドレスとしてもいいのですが、Web上に公開しているサービスで、メールから起動するスクリプトを使うような場合は、このアドレスを公開するのはあまりお勧めできません。
別にスクリプト起動専用のメールアドレスを作成して、そのアドレスから、上記の Webサーバーのメールアドレスに転送するようにしておくのが無難かと思います。
というわけで、再びさくらのレンタルサーバのコントロールパネルに入り、「メールアドレスの管理」から一つメールアカウントを作成し、そのアカウントから「xxxxx@www.****sakura.ne.jp」に転送するように設定しておきましょう。
スクリプトのパーミッションの変更
実際にメール受信時に起動されるスクリプトのパーミッションを変更しておきましょう。
オーナーに実行権限が必要なので、「700」とか「755」とかにしとけば良いかと。
.forward の設定
SSH でログインし、vi 等で ~/.forward を以下のように編集します。
| /home/userame/dirname/scriptname
「|」(縦棒)を書いて、半角スペースを入れて、起動するスクリプトをフルパスで書けばOKです。
以上で設定は完了です。
コントロールパネルで作成したメールアドレス宛にメールを送れば、用意したスクリプトが起動されるはずです。