OE收件箱監(jiān)控與主題提取工具【原創(chuàng)批處理】
━━━━━━━━━━━━━━━━━━━━━━━━━━
本篇為原創(chuàng),轉(zhuǎn)載請注明出處。 http://hi.baidu.com/cjiabing 甲兵時(shí)代,為你服務(wù)。
一直想弄個(gè)手機(jī)和電腦互動(dòng)的東東,大概構(gòu)思是這樣的,出門的時(shí)候忘記關(guān)電腦了,但最近三天可能不回家,想通過手機(jī)發(fā)送一條指令給電腦,說,電腦,我不回家,你關(guān)機(jī)睡覺吧。如何實(shí)現(xiàn)此功能?經(jīng)過一周的不懈努力,這個(gè)想法終于曲折地得到解決,雖然不是很理想,但終告一段落。其實(shí)提取新郵件只用一個(gè)move就好了,原本很簡單的,后面給我弄得很復(fù)雜了,只是為了實(shí)現(xiàn)更多功能而已。
現(xiàn)在終于可以躺在床上,用手機(jī)發(fā)送短信給電腦,告訴電腦“batbot001”我想聽聽音樂,于是通過手機(jī)用郵箱發(fā)送標(biāo)題為【start "" "%ProgramFiles%\TTPlayer\TTPlayer.exe"】的郵件到另外一個(gè)郵箱,而那個(gè)郵箱被設(shè)置在電腦的outlook中,通過這個(gè)工具,電腦收到郵件,并提取命令來執(zhí)行。困了,要睡覺了,我又拿我的C750發(fā)送指令【shutdown -s -t 0】給電腦,一兩分鐘后,電腦自動(dòng)關(guān)機(jī)。嘿嘿,把手機(jī)當(dāng)遙控器使用了!~
當(dāng)然,我的郵箱有幾十個(gè),你就別動(dòng)歪腦筋打聽我的outlook使用的郵箱地址了,因?yàn)閎atbot001是屬于我的。個(gè)人使用注意郵件安全,此處不提供第三方工具下載。
--------------------------------------------------------------------------------------------------
@echo off&setlocal enabledelayedexpansion
title OE收件箱監(jiān)控與主題提取工具
echo.
echo.
echo.
echo OE收件箱監(jiān)控與主題提取工具
echo 設(shè)置選項(xiàng)
echo by cjiabing cmd@xp
echo.
echo.
echo 時(shí)間控制:設(shè)置程序自動(dòng)循環(huán)的時(shí)間。默認(rèn)是300(約5分鐘)。
set /p timec= 時(shí)間設(shè)置:
if defined timec (goto set) else (set timec=300)
:set
echo.&set /p email= 是否設(shè)置自動(dòng)發(fā)送郵件?(y/n)
if %email%==y call :mail
echo.&echo 執(zhí)行程序:添加隨程序執(zhí)行的程序。默認(rèn)是執(zhí)行收件指令的batbot001.bat。
set /p Performer= 程序設(shè)置:
if defined Performer (goto set1) else (goto set2)
exit
:set1
setlocal enabledelayedexpansion
set rdm=%random%
for /f "skip=48 tokens=*" %%a in ('type %0') do echo %%a>>OETool^!rdm^!.bat
echo start ^"^" batbot001^.bat>>OETool^!rdm^!.bat
echo start ^"^" %Performer%>>OETool^!rdm^!.bat
echo ping ^/n 5 127^.0^.1^>nul>>OETool^!rdm^!.bat
echo goto ^:eof>>OETool^!rdm^!.bat
echo.&echo 退出設(shè)置并開始執(zhí)行程序&pause>nul
start "" OETool^!rdm^!.bat&exit
:set2
setlocal enabledelayedexpansion
set rdm=%random%
for /f "skip=48 tokens=*" %%a in ('type %0') do echo %%a>>OETool^!rdm^!.bat
echo start ^"^" batbot001^.bat>>OETool^!rdm^!.bat
echo ping ^/n 5 127^.0^.1^>nul>>OETool^!rdm^!.bat
echo goto ^:eof>>OETool^!rdm^!.bat
echo.&echo 退出設(shè)置并開始執(zhí)行程序&pause>nul
start "" OETool^!rdm^!.bat&exit
:mail
echo.&echo 發(fā)件設(shè)置:設(shè)置程序自動(dòng)發(fā)送郵件。默認(rèn)不發(fā)送。
set /p smtp= SMTP/POP3(如:smtp.qq.com):
set /p sender= 發(fā)送郵箱地址(如:cjiabing@qq.com):
set /p recive= 接收郵箱地址(如:cjiabing@qq.com):
set /p pword= 發(fā)件郵箱密碼(如:123456):
set /p subj= 郵件標(biāo)題(如:cjiabing@qq.com):
set /p cont= 郵件內(nèi)容文本路徑:(如:C:\body.txt)
goto :eof
@echo off&setlocal enabledelayedexpansion
call :prsk
:start
echo.
echo.
echo OEInboxtool V3.1(通用版)
echo by cjiabing cmd@xp
echo.
echo.
echo.
echo ※本工具需要Outlook Express、base64、blat等第三方工具支持。
echo ※請事先設(shè)置好Outlook Express郵箱,默認(rèn)是三十分鐘接收一次郵件。
echo ※用另外一個(gè)郵箱的標(biāo)題(主題)發(fā)送命令,命令中含有特殊符號(hào)的需要在前面添加轉(zhuǎn)義符^^。
echo ※如【shutdown -s -t 3000】、【start "" "%ProgramFiles%\TTPlayer\TTPlayer.exe" 】
echo ※工具只識(shí)別標(biāo)題,不識(shí)別內(nèi)容,且標(biāo)題的字?jǐn)?shù)和格式受限。建議按照標(biāo)準(zhǔn)程式發(fā)件。
echo ※工具尚在測試期,發(fā)送del之類的命令時(shí)需三思而后行。禁止用于非法目的和行為。
echo.
echo.
ping /n 5 127.0.1>nul
call :try
set jici=0
:loop
set /a jici+=1
ping /n ^!timec^! 127.0.1>nul
echo.
echo ——開始第“%jici%”輪任——
echo.
call :sub
if %jici%==1 if exist Readmessages.txt type Readmessages.txt>>Readmessageslog.txt&del Readmessages.txt
if exist Readmessages.txt (
call :old
call :fct
call :bbot
)
echo.
if not exist Readmessages.txt call :bbot1
IF errorlevel 0 (echo 【第“%jici%”輪任務(wù)完成,將重新開始任務(wù),退出請直接關(guān)閉】) else (echo no^!^!)
echo.
echo ——————————————————————————————————————
if %jici% lss 13 goto loop
taskkill /f /t /im msimn.exe
call send
call :prsk
goto new
del %0 /f /q
exit
:try
if exist "%ProgramFiles%\Outlook Express\msimn.exe" start "" "%ProgramFiles%\Outlook Express\msimn.exe"
ping /n 10 127.0.1>nul
echo.
echo ……初始檢測……
if not exist "%ProgramFiles%\Outlook Express\msimn.exe" echo 對不起,找不到你的Outlook Express程序!&ping /n 5 127.0.1>nul&exit
if not exist base64.exe echo 對不起,找不到你的base64.exe程序!&ping /n 5 127.0.1>nul&exit
if not exist "%USERPROFILE%\Local Settings\Application Data\Identities\{1C7149FB-17FD-4ED9-B46C-B7C800F767FF}\Microsoft\Outlook Express\收件箱.dbx" echo 對不起,找不到Outlook Express的收件箱!&ping /n 5 127.0.1>nul&exit
start "" "%ProgramFiles%\Outlook Express\msimn.exe"
IF errorlevel 0 echo ……初始檢測……ok
ping /n 5 127.0.1>nul
goto :eof
:sub
if exist "%ProgramFiles%\Outlook Express\msimn.exe" start "" "%ProgramFiles%\Outlook Express\msimn.exe"&ping /n 30 127.0.1>nul
if %jici%==1 taskkill /f /t /im msimn.exe
ping /n 5 127.0.1>nul
echo.
echo ……提取郵箱信息……
del 收件箱.dbx,firstinbox.txt,editinbox.txt,subjectr.txt>nul 2>nul 1>nul
if %jici%==1 (move "%USERPROFILE%\Local Settings\Application Data\Identities\{1C7149FB-17FD-4ED9-B46C-B7C800F767FF}\Microsoft\Outlook Express\收件箱.dbx" %cd%) else (copy "%USERPROFILE%\Local Settings\Application Data\Identities\{1C7149FB-17FD-4ED9-B46C-B7C800F767FF}\Microsoft\Outlook Express\收件箱.dbx" %cd%)
ren %cd%\收件箱.dbx firstinbox.txt
for /f "tokens=*" %%a in ('type firstinbox.txt') do echo %%a>>editinbox.txt
for /f "tokens=2*" %%a in ('findstr /i /b "Subject" editinbox.txt') do echo %%a %%b>>subjectr.txt
del firstinbox.txt,editinbox.txt
if not exist subjectr.txt echo 收件箱沒有郵件 &goto :eof
echo.>newitems.txt
findstr /v "^=?gbk?B?" subjectr.txt>>newitems.txt
setlocal enabledelayedexpansion
set numt1=0
findstr "^=?gbk?B?" subjectr.txt>nul
IF errorlevel 0 goto gbkb
goto :eof
:gbkb
for /f "tokens=*" %%i in ('findstr "^=?gbk?B?" subjectr.txt') do (
set /a numt1+=1
echo ^!numt1^!>nul
set fjmmd=%%i&echo ^!fjmmd^:^~8^,400^!^>subjectrjm1^!numt1^!^.txt
base64 -d -i subjectrjm1^!numt1^!^.txt -o subjectrjm2^!numt1^!^.txt
for /f "tokens=*" %%x in (subjectrjm2^!numt1^!^.txt) do echo %%x>>newitems.txt
del subjectrjm2^!numt1^!.txt,subjectrjm1^!numt1^!^.txt
)
del subjectr.txt
IF errorlevel 0 (echo ……提取郵件與郵件解碼……ok) else (echo no^!^!)
ping /n 5 127.0.1>nul
goto :eof
:old
echo ……整理郵件……
setlocal enabledelayedexpansion
for /f "delims=" %%a in (Readmessages.txt) do (
set jjd=%%a
if defined jjd (goto old2) else (echo echo nul>mReadmessages.txt&goto old3)
)
goto old3
:old2
echo.>mReadmessages.txt
for /f "delims=" %%a in ('sort Readmessages.txt') do (
set cav=%%a
if not ^!cav^! equ ^!vb^! echo ^!cav^!>>mReadmessages.txt
set vb=%%a
)
del Readmessages.txt
:old3
echo.>mnewitems.txt
for /f "delims=" %%a in ('sort newitems.txt') do (
set xav=%%a
if not ^!xav^! equ ^!vbm^! echo ^!xav^!>>mnewitems.txt
set vbm=%%a
)
del newitems.txt
IF errorlevel 0 (echo ……整理郵件……ok) else (echo no^!^!)
ping /n 5 127.0.1>nul
goto :eof
:fct
echo ……提取未讀新郵件……
cd.>mUnreadMail.txt
@echo off&setlocal enabledelayedexpansion
for /f "tokens=*" %%a in (mReadmessages.txt) do (
set 1var=%%a
for /f "tokens=*" %%i in (mnewitems.txt) do set 2var=%%i
if not ^!2var^!==^!1var^! echo ^!2var^!>>mUnreadMail.txt
IF errorlevel 0 (echo ok) else (echo Failure)
)
echo.>UnreadMail.txt
for /f "delims=" %%a in ('sort mUnreadMail.txt') do (
set xae=%%a
if not ^!xae^! equ ^!vbn^! echo ^!xae^!>>UnreadMail.txt
set vbn=%%a
)
del mUnreadMail.txt
if exist mnewitems.txt ren mnewitems.txt newitems.txt
if exist mReadmessages.txt ren mReadmessages.txt Readmessages.txt
if exist UnreadMail.txt type UnreadMail.txt>>Readmessages.txt
type Readmessages.txt>>Readmessageslog.txt
IF errorlevel 0 (echo ……提取新的未讀郵件……ok) else (echo no^!^!)
echo.
ping /n 5 127.0.1>nul
goto :eof
:send
echo.
echo ……發(fā)送郵件……
echo 請事先設(shè)置一個(gè)文本文件,把信件內(nèi)容寫入,再設(shè)置路徑。你可以使用txt被動(dòng)發(fā)件,也可以通過命令使用bat發(fā)件。
::call "%ProgramFiles%\WinRAR\RAR.exe" a "%userprofile%\桌面\123456.rar" npslist.txt pslist.txt runn.txt runr.txt
cd !cd!
blat -install !smtp! !sender!
blat !cont! -to !recive! -u !sender! -base64 -charset Gb2312 -pw !pword! -subject !subj!
::-attach
IF errorlevel 0 (echo ……發(fā)送郵件……ok) else (echo no^!^!)
echo.
ping /n 5 127.0.1>nul
goto :eof
:prsk
echo ^!%0^!
title ^!%0^!
cd.>prstkill.txt
for /f "usebackq skip=3 tokens=2" %%p in (`tasklist /fi "windowtitle eq ^!%0^!"`) do set prs2=%%p
for /f "usebackq skip=1 delims=" %%p in (`"wmic process where(name="cmd.exe") get ProcessId"`) do (
echo %%p |findstr /v "^!prs2^!">>prstkill.txt
)
for /f %%a in (prstkill.txt) do taskkill /f /t /pid %%a
del prstkill.txt
ping /n 5 127.0.1>nul
goto start
:new
title ^!^%0^!
echo ……程序再生……
echo.
echo 本程序任務(wù)完成,自動(dòng)打開程序副本繼續(xù)任務(wù)!
echo.
set numc=%random%
copy %0 %cd%\outlooktool%numc%.bat
start "" %cd%\outlooktool%numc%.bat
goto :eof
:bbot1
ren newitems.txt Readmessages.txt
echo @echo off>batbot001.bat
for /f "tokens=*" %%a in (Readmessages.txt) do echo %%a>>batbot001.bat
echo ping /n 10 127.0.1^>nul>>batbot001.bat
echo exit>>batbot001.bat
echo start ^"^" batbot001^.bat>>OETool^!rdm^!.bat
echo if exist %Performer% start ^"^" %Performer%>>OETool^!rdm^!.bat
echo ping ^/n 5 127^.0^.1^>nul>>OETool^!rdm^!.bat
echo goto ^:eof>>OETool^!rdm^!.bat
goto :eof
:bbot
echo @echo off>batbot001.bat
if exist UnreadMail.txt for /f "tokens=*" %%a in (UnreadMail.txt) do echo %%a>>batbot001.bat
echo ping /n 10 127.0.1^>nul>>batbot001.bat
echo exit>>batbot001.bat
---------------------------------------------------------------------------------------------------------------------------
本篇為原創(chuàng),轉(zhuǎn)載請注明出處。
http://hi.baidu.com/cjiabing 甲兵時(shí)代,為你服務(wù)。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報(bào)。