#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.6.1
Author: H. Tsubota
Script Function:
Googleニュースを定時巡回して見出しとリンク先をメールで送付する。
アプリケーション自体はトレイに格納。
注: GmailをSMTPサーバーとして使用する場合、
Gmailの設定でPOPを有効にしておく必要がある。
参照: http://mail.google.com/support/bin/answer.py?hl=ja&answer=13287
#ce ----------------------------------------------------------------------------
#include <IE.au3>
#include <Date.au3>
Opt("TrayOnEventMode",1)
Opt("TrayMenuMode",1) ; デフォルトのトレイメニューアイテム(スクリプト 停止/終了)を非表示
$iMilliseconds = 15 * 60 *1000 ; 15分に一回処理をおこなう
Global $oIE = _IECreate ("about:blank", 0, 0, 1, 0)
MakeTrayMenu()
While True
$sNews = GetNews( $oIE )
$tCur = _Date_Time_GetLocalTime()
SendMail( _
"smtp.gmail.com", _
_Date_Time_SystemTimeToDateTimeStr($tCur), _
'"WhiteGoat" <WhiteGoat@gmail.com>', _
"BlackGoat@i.softbank.jp", _
$sNews, _
1, _
"WhiteGoat@gmail.com", _
"YourPassword", _
587 _
)
Sleep ($iMilliseconds)
WEnd
; トレイメニューを作成
Func MakeTrayMenu()
TraySetClick(1) ; 左クリックでトレイメニュー表示
TrayCreateItem("巡回を終了")
TrayItemSetOnEvent(-1,"ExitScript")
TraySetState()
EndFunc
;終了処理
Func ExitScript()
; IEを終了
Global $oIE
_IEQuit($oIE)
Exit
EndFunc
; GoogleNewsのトップから見出しとリンク先URLを取得
Func GetNews( $oIE )
_IENavigate($oIE, "http://news.google.co.jp/news")
Local $oTop = _IEGetObjById ($oIE, "top-stories")
Local $cArticles = _IETagNameGetCollection ( $oTop, "h2")
Local $sNews = ""
For $oArticle In $cArticles
$oLink = _IETagNameGetCollection ( $oArticle, "a",0)
$sNews &= $oArticle.innerText & ":" & @CRLF
$sNews &= $oLink.href & @CRLF
Next
Return $sNews
EndFunc
; SMTPサーバー経由でメールを送信
Func SendMail( _
$sSMTPServer, _
$sSubject, _
$sFrom, _
$sTo, _
$sMessage, _
$iAuthenticate = 0 , _ ;0: None, 1:basic (clear-text) , 2: NTLM
$sUserName = "" , _
$sPassword = "" , _
$iPort = 25 )
$oMessage = ObjCreate("CDO.Message")
$oMessage.Subject = $sSubject
$oMessage.From = $sFrom
$oMessage.To = $sTo
$oMessage.TextBody = $sMessage
$oMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
$oMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $sSMTPServer
$oMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = $iAuthenticate
$oMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = $sUserName
$oMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $sPassword
$oMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $iPort
$oMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
$oMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10
$oMessage.Configuration.Fields.Update
$oMessage.Send
EndFunc