## Web page Update Checker ---- wuc.pl ## 2007/06/16 ## Tomoichi Ebata ## E-mail:http://www.kobore.net/mailAddress.gif ## Webの更新をチェックしたら、メールを送るだけのプログラム ## 更新チェッック間隔は600秒として、一日一回稼動確認のメールを送る ## Encode::from_toで不具合発生。最新のActivePerlに入れ替えることで解決 ## apt-get install libauthen-sasl-perl をする ## (http://yoosee.net/d/archives/2004/08/25/002.html) ## Subject等に文字化け発生→このプログラムのファイルの文字ココードを ## shiftJISに変更 ## "perl wuc.pl" で起動 use LWP::Simple; use Net::SMTP; use Encode; while(1) { unlink "html_old.html"; rename "html_new.html","html_old.html"; getstore("http://www.kobore.net/","html_new.html"); # ファイルサイズの取得(ファイルサイズが異なれば更新があったものとみなす) @file_info_old = stat("html_old.html"); @file_info_new = stat("html_new.html"); # print $file_info[7]; $old = $file_info_old[7]; $new = $file_info_new[7]; print $old, " ", $new, "\n"; if ($new ne $old) # ファイルサイズに差分があった場合 { # 更新をメールを送る my $smtp = Net::SMTP->new('mbox.xxxxxx-xxx.jp') or die "Couldn't connect to server; $!"; $smtp->auth ('mail@maildomain.net', 'mailpassword' ) or die "Could not authenticate $!"; $smtp->mail('mail@maildomain.net'); $smtp->to('mail@maildomain.net'); # 本当の行き先アドレス $smtp->data(); $smtp->datasend("X-Mailer: Ebata's perl program\n"); $smtp->datasend("From: mail\@maildomain.net\n"); #見せるFromアドレス $smtp->datasend("To: mail\@maildomain.net\n"); #見せるToアドレス $subject = "江端さんのホームページ変更通知"; Encode::from_to($subject,"shiftjis","iso-2022-jp"); #文字コード変換 $smtp->datasend("Subject: $subject \n"); $smtp->datasend("\n"); # メールヘッダ終了 $body = "江端さんのホームページに変更が発生しました"; Encode::from_to($body,"shiftjis","iso-2022-jp"); #文字コード変換 $smtp->datasend($body,"\n"); $smtp->datasend("http://www.kobore.net/ \n"); $smtp->dataend(); $smtp->quit; # Close SMTP connectin } sleep 600; # 10分に一回チェック $sleep_count++; if ($sleep_count >= 144) # 600秒 X 144 = 24 時間に1回送信 { $sleep_count = 0; # 江端にメールを送る my $smtp = Net::SMTP->new('mbox.xxxxxx-xxx.jp') or die "Couldn't connect to server; $!"; $smtp->auth ('mail@maildomain.net', 'mailpassword' ) or die "Could not authenticate $!"; $smtp->mail('mail@maildomain.net'); $smtp->to('mail@maildomain.net'); # 本当の行き先アドレス $smtp->data(); # メーリングリスト的書き方 $smtp->datasend("X-Mailer: Ebata's perl program\n"); $smtp->datasend("From: mail\@maildomain.net\n"); #見せるFromアドレス $smtp->datasend("To: mail\@maildomain.net\n"); #見せるToアドレス $subject = "wuc.pl正常起動通知"; Encode::from_to($subject,"shiftjis","iso-2022-jp"); #文字コード変換 $smtp->datasend("Subject: $subject \n"); $smtp->datasend("\n"); # メールヘッダ終了 $body = "wuc.plは、正常に動作しております"; Encode::from_to($body,"shiftjis","iso-2022-jp"); #文字コード変換 $smtp->datasend($body,"\n"); $smtp->dataend(); $smtp->quit; # Close SMTP connectin } }