月額500円のBB.Exciteからメールを送る
2009/10/21 19:00 - 日記引き続き、知人宅のサーバー絡みの話。
彼の家は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

