引き続き、知人宅のサーバー絡みの話。

彼の家はB-Flets、プロバイダは BB.Excite。
メールも無し(別料金)な単純に500円/月で接続だけ提供してくれる ISPである。
IPアドレスはグローバルだが不定期に変わる。良くあるパターン。

で、Ubuntu8.04.3 LTSを入れてLinux RAID(ソフトウェアRAIDね)で組んだファイルサーバーを新しくした。
ファイルサーバーは必需品に格上げになったので、少しは気を遣うつもりでRAIDに障害などが起きたときにメールが来るようにしたい。

使っている人ならご存じの通り、BB.Exciteでは25番ポートは外に出ないようにブロックされている(今では超一般的)。

結論的には、Yahoo!メール(無料)のSMTPを使ってメールを送ります。
【準備】
1) Yahoo!メールのアカウントを取得
2)メール>オプション>POPアクセスとメール転送
3)「プラウザアクセスとPOPアクセス」を選んで「設定する」ボタンを押す
4)表示される情報はちゃんとメモしておくこと

【手順】
5)ずぼらな私は先人の苦労の上を歩かせてもらって楽をします。PHPmailerをダウンロード。
6)http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php4/ からダウンロードしてください。

7)私の場合、手元に使い込んだ(でもないか)Version 1.73 (Sun, Jun 10 2005)があるのでこれを使います。
8)解凍したフォルダにある class.phpmailer.php の次の行、25 を 587 に書き換えて保存終了。

var $Port = 25; // replace with 587

9)次のスクリプトを raidmail.php として保存し、sudo chmod +x raidmail.php などとして実行できるようにします。ハイライト行の値を自分の環境にあわせて書き換えてください。

#!/usr/bin/php
<?php
require("class.phpmailer.php");

$mail = new PHPMailer();

$mail->IsSMTP();                                   // send via SMTP
$mail->Host     = "smtp.mail.yahoo.co.jp"; // SMTP servers
$mail->SMTPAuth = true;     // turn on SMTP authentication
$mail->Username = "username";  // SMTP username
$mail->Password = "password"; // SMTP password

$mail->From     = "username@yahoo.co.jp";
$mail->FromName = "MDADM hoge.hogehoge.com";
$mail->AddAddress("username2@gmail.com");               // optional name
$mail->AddReplyTo("username@yahoo.co.jp");

$mail->WordWrap = 50;                              // set word wrap
$mail->IsHTML(true);                               // send as HTML

$mail->Subject  =  "Mail from hoge.hogehoge.com about RAID system.";
//$mail->Body     =  "RAID system at hoge.hogehoge.com has <b>problem</b>.";
$output = shell_exec('/bin/cat /proc/mdstat');
$mail->Body     = "<pre>".$output."</pre>";
$mail->AltBody  = $output;

if(!$mail->Send())
{
   echo "Message was not sent <p>";
   echo "Mailer Error: " . $mail->ErrorInfo;
   exit;
}

// echo "Message has been sent";
?>

10)/etc/mdadm/mdadm.conf の最後に次の行を加えます。

PROGRAM /home/username/phpmailer/raidmail.php

ファイルの置き場所は自分の環境にあわせて適宜変えてください。
11)テストは、

cd /home/username/phpmailer/
$ ./raidmail.php

で、username2@gmail.comにraidの状況の内容が届けばOKです。

当然ですが、コマンドラインでPHPを動かすために php5-cli がインストールされていることが前提です。インストールされてなければ、次の行を実行してインストールしておきましょう。

$ sudo apt-get install php5-cli

Submit Comment

(required)

(required) (This will not be published)