打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
用手机当遥控:OE收件箱监控与主题提取工具【原创批处理】

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     甲兵时代,为你服务。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
用批处理对文件批量重命名
Bat中延时
bat语法和例子
批处理延时几例
无聊用批处理弄个随机数生成器——给小G
密码字典生成工具
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服