#coding=mbcs

#「列車運行情報監視メールシステムver0.1」
#配布元：「W-ZERO3 TIPS」http://w-zero3tips.seesaa.net/
#定期監視機能は未実装。

rosen="〜〜線"
#	↑ここに監視対象にしたい路線名を入れてください。
#	↑この名前で検索するので運行情報サイトで発表される路線名にしてください。

kakunin=1
#	↑この値を1にするとローカルにあるファイル(test.txt)を開きその中を検索します。
#	都合よく運行情報は出ないのでテキストファイルにそれを用意して、
#	メールを正常に送信できるかテストするためのものです。
#	test.txtは各自ご用意ください。中身は「〜〜線は強風のため遅延しています。」のような感じに。
#	実際に運行情報サイトにアクセスして使う場合は0にしてください。

fromad="***@***.***"
#↑送信元メールアドレスを入力してください。
toadd="***@***.***"
#↑送信先メールアドレスを入力してください。

rosenurl="http://www.jreast.co.jp/train_info/kanto.asp"
#↑監視する運行情報サイトのURLを入力してください。
#もしかすると404(リンク先が見つからない)でもエラー表示されないかもしれませんので注意してください。
#ちなみに上の例はJR東日本の関東エリアです。

popname="aaaaaaa"
#↑POP3のユーザー名(アカウント名)
poppass="bbbbbbb"
#↑POP3のパスワード
popserv="pop.***.jp"
#↑POP3サーバーアドレス
smtpserv="smtp.***.jp"
#↑SMTPサーバーアドレス

#-------------------------
#初期設定はここまでです。件名などいじりたい人は中ほどにあります。
#-------------------------

import time
import urllib
import string

if kakunin==0:
	try:
		f=urllib.urlopen(rosenurl)
	except URLError:
		print "URLアクセス時にエラーが発生しました。"
		time.sleep(2)
		raise
else:
	try:
		f=open("test.txt")
	except IOError:
		print "test.txtが見つかりませんでした。"
		time.sleep(2)
		raise

tt=f.read()
s=string.find(tt,rosen)

if s != -1:
	import re
	sword="("+rosen+"は.*?います。)"
	ma=re.search(sword,tt)
	jyoho=ma.group(1)
	print jyoho

	print "JISコードに変換中…\n"
	daimei="列車運行情報監視メールシステムver0.1"
	import kanjilib
	jdaimei=kanjilib.sjis2jis(daimei)

	honbun="指定路線の運行情報が発表されました。\n詳細は以下の通りです。\n"+jyoho
	jhonbun=kanjilib.sjis2jis(honbun)

	msg="From: "+fromad+"\r\nTo: "+toadd+"\r\nSubject: "+jdaimei+"\r\n\r\n"+jhonbun

	time.sleep(2)
	import poplib
	print "POPサーバー接続中…"
	try:
		M=poplib.POP3(popserv)
		#M=poplib.POP3("192.168.1.11")
	except URLError:
		print "POPサーバーアクセス時にエラーが発生しました。"
		time.sleep(2)
		raise

	print "ユーザー認証中…"
	try:
		us=M.user(popname)
	except URLError:
		print "POPサーバーユーザー認証時にエラーが発生しました。"
		time.sleep(2)
		raise

	print us
	print "パスワード認証中…"
	time.sleep(2)
	try:
		ps=M.pass_(poppass)
	except URLError:
		print "POPサーバーパスワード認証時にエラーが発生しました。"
		time.sleep(2)
		raise

	print ps
	print "認証成功"
	time.sleep(2)
	M.quit()
	print "\nPOPサーバー切断完了"
	time.sleep(2)

	import smtplib
	print "SMTPサーバー接続中…\n"
	try:
		Se=smtplib.SMTP(smtpserv)
	except URLError:
		print "SMTPサーバー接続時にエラーが発生しました。"
		time.sleep(2)
		raise
	print "接続成功\n"
	time.sleep(2)

	print "メール送信中…"
	try:
		senm=Se.sendmail(fromad,toadd,msg)
	except URLError:
		print "メール送信時にエラーが発生しました。"
		time.sleep(2)
		raise
	print "送信完了"
	print senm
	time.sleep(2)
	Se.quit()
	print "SMTPサーバー切断完了"
	time.sleep(5)
else:
	print "現在、指定路線の遅れに関する情報はありません。"
	time.sleep(3)