OE收件箱监控与主题提取工具【原创批处理】
━━━━━━━━━━━━━━━━━━━━━━━━━━
本篇为原创,转载请注明出处。 http://hi.baidu.com/cjiabing 甲兵时代,为你服务。
一直想弄个手机和电脑互动的东东,大概构思是这样的,出门的时候忘记关电脑了,但最近三天可能不回家,想通过手机发送一条指令给电脑,说,电脑,我不回家,你关机睡觉吧。如何实现此功能?经过一周的不懈努力,这个想法终于曲折地得到解决,虽然不是很理想,但终告一段落。其实提取新邮件只用一个move就好了,原本很简单的,后面给我弄得很复杂了,只是为了实现更多功能而已。
现在终于可以躺在床上,用手机发送短信给电脑,告诉电脑“batbot001”我想听听音乐,于是通过手机用邮箱发送标题为【start "" "%ProgramFiles%\TTPlayer\TTPlayer.exe"】的邮件到另外一个邮箱,而那个邮箱被设置在电脑的outlook中,通过这个工具,电脑收到邮件,并提取命令来执行。困了,要睡觉了,我又拿我的C750发送指令【shutdown -s -t 0】给电脑,一两分钟后,电脑自动关机。嘿嘿,把手机当遥控器使用了!~
当然,我的邮箱有几十个,你就别动歪脑筋打听我的outlook使用的邮箱地址了,因为batbot001是属于我的。个人使用注意邮件安全,此处不提供第三方工具下载。
--------------------------------------------------------------------------------------------------
@echo off&setlocal enabledelayedexpansion
title OE收件箱监控与主题提取工具
echo.
echo.
echo.
echo OE收件箱监控与主题提取工具
echo 设置选项
echo by cjiabing cmd@xp
echo.
echo.
echo 时间控制:设置程序自动循环的时间。默认是300(约5分钟)。
set /p timec= 时间设置:
if defined timec (goto set) else (set timec=300)
:set
echo.&set /p email= 是否设置自动发送邮件?(y/n)
if %email%==y call :mail
echo.&echo 执行程序:添加随程序执行的程序。默认是执行收件指令的batbot001.bat。
set /p Performer= 程序设置:
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 退出设置并开始执行程序&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 退出设置并开始执行程序&pause>nul
start "" OETool^!rdm^!.bat&exit
:mail
echo.&echo 发件设置:设置程序自动发送邮件。默认不发送。
set /p smtp= SMTP/POP3(如:smtp.qq.com):
set /p sender= 发送邮箱地址(如:cjiabing@qq.com):
set /p recive= 接收邮箱地址(如:cjiabing@qq.com):
set /p pword= 发件邮箱密码(如:123456):
set /p subj= 邮件标题(如:cjiabing@qq.com):
set /p cont= 邮件内容文本路径:(如: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 ※请事先设置好Outlook Express邮箱,默认是三十分钟接收一次邮件。
echo ※用另外一个邮箱的标题(主题)发送命令,命令中含有特殊符号的需要在前面添加转义符^^。
echo ※如【shutdown -s -t 3000】、【start "" "%ProgramFiles%\TTPlayer\TTPlayer.exe" 】
echo ※工具只识别标题,不识别内容,且标题的字数和格式受限。建议按照标准程式发件。
echo ※工具尚在测试期,发送del之类的命令时需三思而后行。禁止用于非法目的和行为。
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%”轮任务完成,将重新开始任务,退出请直接关闭】) 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 ……发送邮件……
echo 请事先设置一个文本文件,把信件内容写入,再设置路径。你可以使用txt被动发件,也可以通过命令使用bat发件。
::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 ……发送邮件……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 本程序任务完成,自动打开程序副本继续任务!
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
---------------------------------------------------------------------------------------------------------------------------
本篇为原创,转载请注明出处。
http://hi.baidu.com/cjiabing 甲兵时代,为你服务。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。