Board logo

标题: [网络工具] 命令行发送邮件(群发、多附件、匿名)p-mailsend_4.0 [打印本页]

作者: HAT    时间: 2009-9-20 11:46     标题: 命令行发送邮件(群发、多附件、匿名)p-mailsend_4.0

  1. ::p-mailsend.cmd
  2. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  3. :: p-mailsend_v4.0                                                       ::
  4. ::                                                                       ::
  5. ::           Code by  : vkill                                            ::
  6. ::           Thanks   : bjsh,est,lxmxm...                                ::
  7. ::           出    处 : http://www.vkill.net http://bbs.cn-dos.net       ::
  8. ::           功    能 : 命令行邮件发送程序(群发\多附件\匿名)             ::
  9. ::           原    理 : telnet收发邮件的原理                             ::
  10. ::           最后更新 : 2007-11-12                                       ::
  11. ::           程序依赖文件:nc.exe;rar.exe;base64.exe                      ::
  12. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  13. @echo off&endlocal&setlocal ENABLEDELAYEDEXPANSION
  14. set "t_=test.conf"
  15. ::这里是匿名发信的详细设置
  16. set "匿名="QQ邮箱管理员匿名测试" ^<10000@qq.com^>"
  17. call :del_
  18. set "oneself=%~f0"
  19. if "%1"=="" (
  20. echo 请在命令行下执行 %oneself% /? 查看详细命令行帮助
  21. ping -n 5 127.1 >nul 2>nul  
  22. goto :eof
  23.          )
  24. if "%1"=="/?" goto help
  25. if "%1"=="-?" goto help
  26. for %%? in (/h,-h,--h) do (if "%~1"=="%%?" goto help)
  27. echo.
  28. echo p-mailsend_v4.0  by:vkill
  29. echo _________________________________________________
  30. set/p=依赖文件完整性检查...<nul
  31. set "tools_name=nc.exe;rar.exe;base64.exe"
  32. for %%? in (%tools_name%) do (
  33. if *%%~$PATH:?==* if not exist %%? (
  34. echo no,缺失文件%%? &goto :sleep_
  35.                                   )
  36.                            )
  37. set/p=ok<nul&echo.
  38. set/p=分析参数是否正确...<nul
  39. set n=0
  40. if not "%1"=="" (
  41. :loop_ap
  42. set/a n+=1
  43. if "%1"=="/hu" (set "hu=on" &shift)
  44. if "%1"=="/ht" (set "ht=on" &shift)
  45. if "%1"=="/ch" (set "ch=on" &shift)
  46. if "%1"=="/u" ((for /f "tokens=1-2 delims=@" %%a in ('echo %~2') do (set "user=%%a"& set "server=%%b")) &shift&shift)
  47. if "%1"=="/p" (set "pass=%~2" &shift&shift)
  48. if "%1"=="/t" (set "to=%~2" &shift&shift)
  49. if "%1"=="/s" (set "subject=%~2" &shift&shift)
  50. if "%1"=="/c" (set "content=%~2" &shift&shift)
  51. if "%1"=="/a" (set "accessories=%~2" &shift&shift)
  52. if not "%1"=="" (echo %~1|findstr "^/" >nul 2>nul ||(echo no,参数"%~1"错误&goto :sleep_))
  53. if !n!==10 (echo no,参数"%~1"错误&goto :sleep_)
  54. if not "%1"=="" (goto loop_ap)
  55.              )
  56. set/p=ok<nul&echo.
  57. set/p=分析必须参数是否缺失...<nul
  58. for %%? in (user server to subject) do (if not defined %%? (echo no&goto :sleep_))
  59. set/p=ok<nul&echo.
  60. if not defined pass (
  61. :inputpass
  62. for /f "tokens=1 delims=:" %%? in ('findstr /N "=Hiddenpass.cmd_s=" "%oneself%"') do (more +%%? %oneself%>"%temp%\a")
  63. for /f "tokens=1 delims=:" %%? in ('findstr /N "=Hiddenpass.cmd_e=" "%oneself%"') do (set/a "a=%%?-1" & more +!a! %oneself%>"%temp%\b")
  64. findstr /V /B /E /G:"%temp%\b" "%temp%\a">"%temp%\pass.cmd"
  65. start /wait cmd /k ""%temp%\pass.cmd" "!user!@!server!""
  66. set/p password=<%temp%\pass
  67. set "pass=!password:~9!"
  68. if not defined pass goto inputpass
  69. del /f/q "%temp%\pass" >nul 2>nul
  70. del /f/q "%temp%\pass.cmd" >nul 2>nul
  71. del /f/q "%temp%\a" >nul 2>nul
  72. del /f/q "%temp%\b" >nul 2>nul
  73.                  )
  74. set/p=验证支持这个地址的邮箱发信否...<nul
  75. for /f "tokens=3-6 delims=," %%a in ('findstr "^::,%server%," "%oneself%"') do (
  76. set "smtp=%%a"&set "port=%%b"&set "认证方式=%%c"&set "max_z=%%d"
  77.                                                                              )
  78. if not defined smtp (echo no&goto :sleep_)
  79. set/p=ok<nul&echo.
  80. set/p=验证网络通否...<nul
  81. for /f "tokens=2 delims=[]" %%? in ('ping -n 1 %smtp% ^|findstr /i "^ping.*[.*]"') do (set "ip=%%?")
  82. if not defined ip (echo no&goto :sleep_)
  83. set/p=ok<nul&echo.
  84. set/p=验证telnet %smtp% %port%通否...<nul
  85. >"%temp%\l%t_%" echo quit
  86. nc -d -nvv %ip% %port% < "%temp%\l%t_%" >"%temp%\p-mailsend.log"
  87. findstr . "%temp%\p-mailsend.log">nul 2>nul||(echo no&goto :sleep_)
  88. set/p=ok<nul&echo.
  89. set/p=验证登陆成功否...<nul
  90. if "%认证方式%"=="1" call :认证方式1
  91. copy "%temp%\%t_%" "%temp%\l%t_%">nul 2>nul
  92. >>"%temp%\l%t_%" echo quit
  93. nc -d -nvv %ip% %port% < "%temp%\l%t_%" >"%temp%\p-mailsend.log"
  94. set n=0
  95. for /f "tokens=1,2* delims=:" %%a in ('findstr /N . "%temp%\p-mailsend.log"') do (set "n=%%a"&set "x%%a=%%b")
  96. set/a n-=1
  97. echo "!x%n%!"|findstr "235 " >nul 2>nul ||(echo no,错误"!x%n%!"&goto :sleep_)
  98. set/p=ok<nul&echo.
  99. ::继续写nc配置文件
  100. >>"%temp%\%t_%" echo mail from: ^<%user%@%server%^>
  101. if exist "%to%" (
  102. for /f "tokens=*" %%? in ('findstr "^[0-9a-zA-Z-_.]@" "!to!"') do (set "lto=%%?,!lto!")
  103.              )
  104. if defined lto (set "to=!lto!")
  105. for %%? in (!to!) do (>>"%temp%\%t_%" echo rcpt to: ^<%%?^>)
  106. >>"%temp%\%t_%" echo data
  107. if not defined hu (>>"%temp%\%t_%" echo From: %user%@%server%) else (>>"%temp%\%t_%" echo From: %匿名%)
  108. if not defined ht (>>"%temp%\%t_%" echo To: %to%)
  109. >>"%temp%\%t_%" echo Subject: %subject%
  110. >>"%temp%\%t_%" echo X-mailer: p-mailsend_v4.0 [cn]
  111. >>"%temp%\%t_%" echo Mime-Version: 1.0
  112. >>"%temp%\%t_%" echo Content-Type: multipart/mixed;
  113. >>"%temp%\%t_%" echo         boundary="=====vkill====="
  114. >>"%temp%\%t_%" echo.
  115. >>"%temp%\%t_%" echo --=====vkill=====
  116. if defined content call :htmlortxt !content!
  117. >>"%temp%\%t_%" echo         charset="gb2312"
  118. >>"%temp%\%t_%" echo Content-Transfer-Encoding: 7bit
  119. >>"%temp%\%t_%" echo.
  120. if defined content (dir !content! >nul 2>nul &&(type "!content!">>"%temp%\%t_%" &>>"%temp%\%t_%" echo.) ||(>>"%temp%\%t_%" echo !content!)) else (>>"%temp%\%t_%" echo :^))
  121. set z=0
  122. if defined accessories set/p=压缩编码附件中...<nul
  123. echo "%accessories%" |findstr ")" >nul 2>nul && (echo no,附件路径或文件名中不能包含^)&goto :sleep_)
  124. if defined accessories (
  125. for /f "tokens=1,2,3,4,5,6 delims=→" %%a in ('echo %accessories%') do (
  126.    call :压缩编码附件 "%%~a"
  127.    call :压缩编码附件 "%%~b"
  128.    call :压缩编码附件 "%%~c"
  129.    call :压缩编码附件 "%%~d"      
  130.    call :压缩编码附件 "%%~e"
  131.    call :压缩编码附件 "%%~f"                                 )
  132.                      )
  133. if defined xx (echo no,压缩或编码附件错误&goto :sleep_)
  134. if not !z! lss %max_z% (echo 附件过大,%server%邮箱最大支持附件大小为%max_z%K&goto :sleep_)
  135. if defined accessories (set/p=ok<nul&echo.)
  136. >>"%temp%\%t_%" echo --=====vkill=====--
  137. >>"%temp%\%t_%" echo .
  138. >>"%temp%\%t_%" echo quit
  139. ::发信
  140. set/p=发信中...<nul
  141. nc -d -nvv %ip% %port% < ""%temp%\%t_%"" >"%temp%\p-mailsend.log"
  142. for /f "tokens=*" %%? in ("%temp%\p-mailsend.log") do (
  143. if defined vk1 if not defined vk2 (set vk2=0&set "发信错误=%%?"&echo "%%?"|findstr "250 " >nul 2>nul ||(set vk3=0))
  144. echo "%%?"|findstr "354 " >nul 2>nul &&(set vk1=0)
  145.                                           )
  146. if defined vk3 (echo no,错误"!发信错误!"&goto :sleep_)
  147. set/p=ok<nul&echo.
  148. call :del_
  149. echo _________________________________________________
  150. echo 信件发送完成,2秒后退出
  151. ping -n 2 127.1 >nul 2>nul
  152. goto :eof
  153. ::all call::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  154. :help
  155. echo.
  156. echo p-mailsend_v4.0  2007.11  by:vkill  Thanks to bjsh,est,lxmxm...
  157. echo Copyright (C) 2006-2008 http://www.vkill.net http://bbs.cn-dos.net
  158. echo 当前支持的邮箱有:21cn.com,sina.com,163.com,126.com,sohu.com,yahoo.com.cn,qq.com
  159. echo 程序依赖文件:nc.exe;rar.exe;base64.exe
  160. echo 如依赖文件不全请手动到http://www.vkill.net/tools.html上下载到windows目录
  161. echo.
  162. echo Usage:
  163. echo p-mailsend [/hu] [/ht] /u 用户@地址 [/p 密码] /t 收件人 /s 主题 [/c 内容] [/ch] [/a 附件]
  164. echo.
  165. echo /hu   匿名发信
  166. echo /ht   隐藏多方发送时别的收件人
  167. echo /u *  用户名@地址 例:/u 122755990@qq.com
  168. echo /p    密码
  169. echo /t *  收件人:(收件人/写好收件人列表的文本文件路径)
  170. echo              (多收件人用,隔开;用""引住) 例:/t "abc@163.com,123@56.com"
  171. echo              (收件人列表的文本文件格式如下:)
  172. echo               a@163.com   
  173. echo               b@163.com  
  174. echo               c@163.com           
  175. echo /s *  主题
  176. echo /c    内容:(文字/写好内容的文本文件路径)
  177. echo /ch   信件内容html格式开关,表示发送的内容为html格式   
  178. echo /a    附件:(绝对/相对路径,多附件用→隔开用""引住) 例:/a "c:\a b.cmd→1234.txt"
  179. goto :eof
  180. :认证方式1
  181. >>"%temp%\%t_%" echo helo vkill
  182. >>"%temp%\%t_%" echo auth login
  183. for %%? in (%user%;%pass%) do (
  184. set/p=%%?^<nul|base64>"l!t_!"
  185. set/p v=<"l!t_!"
  186. >>"%temp%\%t_%" echo !v!
  187. del /f/q "l!t_!"
  188.                            )
  189. goto :eof
  190. :del_
  191. del /f/q "%temp%\%t_%">nul 2>nul
  192. del /f/q "%temp%\l%t_%">nul 2>nul
  193. del /f/q "%temp%\p-mailsend.log">nul 2>nul
  194. goto :eof
  195. :htmlortxt
  196. if "%ch%"=="on" (>>"%temp%\%t_%" echo Content-Type: text/html;) else (>>"%temp%\%t_%" echo Content-Type: text/plain;)
  197. goto :eof
  198. :压缩编码附件
  199. if "%~1"=="" exit/b
  200. if "%~x1"==".rar" (copy "%~1" "%temp%\%~n1_.rar" >nul 2>nul) else (
  201. dir %~1 >nul 2>nul &&(rar.exe -r a "%temp%\%~n1_.rar" "%~1" >nul 2>nul)||(rar.exe a "%temp%\%~n1_.rar" "%~1" >nul 2>nul)
  202.                                                         )
  203. if not exist "%temp%\%~n1_.rar" (set xx=vkill&exit/b)
  204. for %%? in ("%temp%\%~n1_.rar") do (set/a z=z+%%~z?)
  205. >>"%temp%\%t_%" echo --=====vkill=====
  206. >>"%temp%\%t_%" echo Content-Type: application/octet-stream;
  207. >>"%temp%\%t_%" echo         name="%~n1_.rar"
  208. >>"%temp%\%t_%" echo Content-Transfer-Encoding: base64
  209. >>"%temp%\%t_%" echo Content-Disposition: attachment;
  210. >>"%temp%\%t_%" echo         filename="%~n1_.rar"
  211. >>"%temp%\%t_%" echo.
  212. base64.exe -i "%temp%\%~n1_.rar">>"%temp%\%t_%"
  213. >>"%temp%\%t_%" echo.
  214. del /f/q "%temp%\%~n1_.rar" >nul 2>nul
  215. goto :eof
  216. :sleep_
  217. call :del_
  218. ping -n 2 127.1 >nul 2>nul
  219. goto :eof
  220. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  221. =Hiddenpass.cmd_s=
  222. @echo off
  223. chcp 437>nul&graftabl 936>nul
  224. echo hP1X500P[PZBBBfh#b##fXf-V@`$fPf]f3/f1/5++u5x>in.com
  225. echo (注:输入密码时不明文显示)
  226. set  /p password=请输入mail:%~1的密码:<nul
  227. for /f "tokens=*" %%i in ('in.com') do set password=%%i
  228. del in.com
  229. echo.
  230. >%temp%\pass set password
  231. exit
  232. =Hiddenpass.cmd_e=
  233. :::::::::::::::::::::当前支持的地址::::::::::::::::::::::
  234. ::,邮箱地址,smtp地址,telnet smtp端口,认证方式,最大附件大小(k)
  235. ::,21cn.com,smtp.21cn.com,25,1,15000000
  236. ::,sina.com,smtp.sina.com.cn,25,1,15000000
  237. ::,163.com,smtp.163.com,25,1,20000000
  238. ::,126.com,smtp.126.com,25,1,20000000
  239. ::,sohu.com,smtp.sohu.com,25,1,10000000
  240. ::,yahoo.com.cn,smtp.mail.yahoo.com,25,1,15000000
  241. ::,yahoo.com,smtp.mail.yahoo.com,25,1,15000000
  242. ::,qq.com,smtp.qq.com,25,1,5000000
  243. ::
复制代码


群发方法:
p-mailsend /u *@* /p * /t a.txt /s test /c * /a *

a.txt格式如下:
a@163.com
b@qq.com
c@56.com
d@yahoo.com.cn
....

本地下载:
http://pan.baidu.com/share/link?shareid=3811808911&uk=1124163200

转自:http://www.cn-dos.net/forum/viewthread.php?tid=29873
作者: HAT    时间: 2009-9-20 11:52     标题: 简单注释

  1. @echo off&setlocal ENABLEDELAYEDEXPANSION
  2. set "t_=test.conf"
  3. set "server=163.com"
  4. set "port=25"
  5. set "最大附件大小=15000000"
  6. set "tools_url=http://www.vkill.net/netbar/网吧所需exe/"
  7. set "tools_name=nc.exe;rar.exe;base64.exe"
  8. rem ================检查文件完整性=====================
  9. :down_tools
  10. set "down_ok=y"
  11. if not "%tools_name%*"=="*" (
  12. for %%? in (%tools_name%) do (
  13. if *%%~$PATH:?==* if not exist %%? (
  14. set "down_ok=n"
  15. echo 程序所依赖文件%%?缺失,已自动开始下载
  16. if not exist iget.vbs call :iget.vbs_
  17. iget.vbs "%tools_url%%%?" "%%?"
  18. ::move "%%?" %windir%>nul 2>nul
  19. echo 文件%%?下载完毕
  20.                                    )
  21.                              )
  22.                             )
  23. del /f/q iget.vbs>nul 2>nul
  24. if [%down_ok%]==[n] goto down_tools
  25. rem ==================结束==============================
  26. rem ===============分析参数=============================
  27. for %%? in (/? -? /h -h --h) do (if "%1"=="%%?" goto help)
  28. if "%1"=="" goto help
  29. :loop_ap
  30. set/a n+=1
  31. if not "%1"=="" (
  32.   if "%1"=="/x" goto 交互模式
  33.   if "%1"=="/u" set "user=%~2"
  34.   if "%1"=="/p" set "pass=%~2"
  35.   if "%1"=="/t" set "to=%~2"
  36.   if "%1"=="/s" set "subject=%~2"
  37.   if "%1"=="/c" set "content=%~2"
  38.   if "%1"=="/a" set "accessories=%~2"
  39.   shift&shift
  40.   goto loop_ap
  41.                 )
  42. for %%? in (user pass to subject) do (if not defined %%? goto 参数错误)
  43. goto start
  44. rem ===================结束===============================
  45. :交互模式
  46. call :help vkill
  47. if not defined user (set/p "user=用户名: ")
  48. if not defined pass (set/p "pass=密码: ")
  49. if not defined to (set/p "to=收件人: ")
  50. if not defined subject (set/p "subject=主题<hello>: ")
  51. if not defined content (set/p "content=内容: ")
  52. if not defined accessories (set/p "accessories=附件: ")
  53. rem                               :::::开始写配置文件:::::
  54. :start
  55. ::写单个发送配置文件
  56. for /l %%? in (1,1,7) do (>%%? cd.)
  57. >>1 echo helo vkill
  58. >>1 echo AUTH LOGIN
  59. rem ===================1文件的内容==========================
  60. rem                    helo vkill
  61. rem                    AUTH LOGIN
  62. rem ====================结束================================
  63. for %%? in (%user%;%pass%) do (
  64.   set/p=%%?^<nul|base64>"!t_!"
  65.   set/p v=<"!t_!"
  66.   >>2 echo !v!
  67.   del /f/q !t_!
  68.                               )
  69. rem [*第一次改写 test.conf 做为一个中介用来把用户名密码的base64编码写入文件2*]
  70. rem =================2文件的内容=============================
  71. rem               用户名和密码的base64编码
  72. rem =====================结束================================
  73. rem          [*改写test.conf利用nc 灌入服务器25端口的回显判断是否能够成功登陆*]
  74. >8 echo quit
  75. rem =================8文件的内容============================
  76. rem                     quit
  77. rem ====================结束================================
  78. copy 1+2+8 "!t_!" >nul 2>nul
  79. rem                                     ::判断能否登陆::
  80. rem 第二次改写test.conf 以用来 验证能否登陆服务器 nc -nvv IP Port <test.conf
  81. rem =================test.conf文件的内容=====================
  82. rem                helo vkill
  83. rem                AUTH LOGIN
  84. rem                用户名base64编码
  85. rem                密码base64编码
  86. rem                quit
  87. rem ====================结束================================
  88. call :发信程序
  89. cls
  90. call :判断登陆成功否
  91. if errorlevel 1 goto :del_
  92. rem                                     ::判断结束::
  93. >>3 echo mail from: ^<%user%@%server%^>
  94. rem ===================3文件的内容=============================
  95. rem             mail from: <%user%@163.com>
  96. rem =======================结束================================
  97. >>5 echo data
  98. >>5 echo From: %user%@%server%
  99. >>5 echo To: %to%
  100. >>5 echo Subject: %subject%
  101. >>5 echo X-mailer: p-163ms 2.0 [cn]
  102. >>5 echo Mime-Version: 1.0
  103. >>5 echo Content-Type: multipart/mixed;
  104. >>5 echo         boundary="=====vkill====="
  105. >>5 echo.
  106. if defined content (
  107. >>5 echo --=====vkill=====
  108. >>5 echo Content-Type: text/plain;
  109. >>5 echo         charset="gb2312"
  110. >>5 echo Content-Transfer-Encoding: 7bit
  111. >>5 echo.
  112. dir !content! >nul 2>nul &&(type "!content!">>5) ||(>>5 echo !content!)
  113.                    )
  114. rem ====================5文件的内容=============================
  115. rem                        data
  116. rem                        From: %user%@163.com
  117. rem                        To: %to%
  118. rem                        Subject: %subject%
  119. rem                        X-mailer: p-163ms 2.0 [cn]
  120. rem                        Mime-Version: 1.0
  121. rem                        Content-Type: multipart/mixed;
  122. rem                                boundary="=====vkill====="
  123. rem         如果有内容的话
  124. rem                        --=====vkill=====
  125. rem                        Content-Type: text/plain;
  126. rem                                charset="gb2312"
  127. rem                        Content-Transfer-Encoding: 7bit
  128. rem
  129. rem                        内容
  130. rem ======================结束================================
  131. echo 压缩编码文件中...
  132. if defined accessories for %%? in (%accessories%) do (call :压缩编码附件 "%%?")
  133. >>7 echo --=====vkill=====--
  134. >>7 echo .
  135. >>7 echo quit
  136. rem ===================7文件的内容============================
  137. rem                 --=====vkill=====--
  138. rem
  139. rem                 quit
  140. rem ======================结束================================
  141. ::发信
  142. for %%? in (%to%) do (
  143.   echo 给%%?发信中...
  144.   ::合并单个发送配置文件
  145.   >4 echo rcpt to: ^<%%?^>
  146.   del /f/q "!t_!"
  147.   copy 1+2+3+4+5+6+7 "!t_!" >nul 2>nul
  148.   call :发信程序
  149.   call :判断发送成功否
  150.                      )
  151. rem ====================4文件的内容=============================
  152. rem                    rcpt to:<%to%>
  153. rem =======================结束================================
  154. rem 第三次改写 test.conf文件.合并1-7个文件;内容如下;也是最关键的东西.
  155. rem ===================test.conf文件的内容==========================
  156. rem                     helo vkill
  157. rem                     AUTH LOGIN
  158. rem                     用户名base64编码
  159. rem                     密码base64编码
  160. rem                     mail from: <%user%@163.com>
  161. rem                     rcpt to: <%to%@163.com>
  162. rem                     data
  163. rem                     From: %user%@163.com
  164. rem                     To: %to%@163.com
  165. rem                     Subject: %subject%
  166. rem                     X-mailer: p-163ms 2.0 [cn]
  167. rem                     Mime-Version: 1.0
  168. rem                     Content-Type: multipart/mixed;
  169. rem                             boundary="=====vkill====="
  170. rem
  171. rem                     --=====vkill=====
  172. rem                     Content-Type: text/plain;
  173. rem                             charset="gb2312"
  174. rem                     Content-Transfer-Encoding: 7bit
  175. rem
  176. rem                     %content%
  177. rem                     --=====vkill=====
  178. rem                     Content-Type: application/octet-stream;
  179. rem                             name="附件名称_.rar"
  180. rem                     Content-Transfer-Encoding: base64
  181. rem                     Content-Disposition: attachment;
  182. rem                             filename="附件名称_.rar"
  183. rem
  184. rem                     附件压缩文件的base64编码
  185. rem
  186. rem                     --=====vkill=====--
  187. rem                     .
  188. rem                     quit
  189. rem ====================结束================================
  190. rem                                                  ::::写配置文件结束::::
  191. cls
  192. if errorlevel 1 echo 发信不成功 & goto del_
  193. call :del_
  194. echo 全部信件发送完毕
  195. ping -n 3 127.1>nul 2>nul
  196. goto :eof
  197. :del_
  198. for /l %%? in (1,1,8) do (del /f/q %%?>nul 2>nul)
  199. del /f/q "%t_%">nul 2>nul
  200. del /f/q p-163ms.log>nul 2>nul
  201. goto :eof
  202. :help
  203. if "%1"=="vkill" goto :eof
  204. echo ____help________________________________________________________________________
  205. echo.
  206. echo p-163ms v2.0  by:vkill
  207. echo Copyright (C) 2006-2008 http://www.vkill.net
  208. echo.
  209. echo Usage: p-163ms.cmd [/x] /u 用户名 /p 密码 /t 收件人 /s 主题 [/c 内容] [/a 附件]
  210. echo.
  211. echo /x 交互模式,当使用此参数时别的参数全部无效
  212. echo /t 收件人:(多收件人中间用,隔开;多附件时用""引住)
  213. echo /c 内容:(文字/写好内容的文本文件路径)
  214. echo /a 附件:(绝对路径/相对路径,多附件中间用,隔开;多附件时用""引住)
  215. echo.
  216. echo 示例:
  217. echo p-163ms.cmd /u 123 /p abc /t "122755990@qq.com" /s hello
  218. echo p-163ms.cmd /u 123 /p abc /t "122755990@qq.com" /s hello /c 123 /a "d:\00.txt"
  219. echo p-163ms.cmd /u 123 /p abc /t "122755990@qq.com,yx127@yx127.com" /s hello /c 123 /a "d:\00.txt,c:\00.bat"
  220. echo.
  221. echo ________________________________________________________________________________
  222. goto :eof
  223. :压缩编码附件
  224. dir %~1 >nul 2>nul &&(call :压缩文件 "%~1" "rar.exe -r")||(call :压缩文件 "%~1" rar.exe)
  225. call :判断文件大小 "%~n1_.rar"
  226. >>6 echo --=====vkill=====
  227. >>6 echo Content-Type: application/octet-stream;
  228. >>6 echo         name="%~n1_.rar"
  229. >>6 echo Content-Transfer-Encoding: base64
  230. >>6 echo Content-Disposition: attachment;
  231. >>6 echo         filename="%~n1_.rar"
  232. >>6 echo.
  233. base64.exe -i "%~n1_.rar">>6
  234. >>6 echo.
  235. del /f/q "%~n1_.rar" >nul 2>nul
  236. goto :eof
  237. rem ==================6文件的内容===================================
  238. rem                  --=====vkill=====
  239. rem                  Content-Type: application/octet-stream;
  240. rem                          name="%~n1_.rar"
  241. rem                  Content-Transfer-Encoding: base64
  242. rem                  Content-Disposition: attachment;
  243. rem                          filename="%~n1_.rar"
  244. rem
  245. rem                  附件的base64编码
  246. rem
  247. rem ====================结束======================================
  248. :压缩文件
  249. %~2 a "%~n1_.rar" "%~1" >nul 2>nul||(goto 压缩文件错误)
  250. goto :eof
  251. :判断文件大小
  252. set/a z+=%~z1
  253. ::判断附件大小
  254. if not !z! lss %最大附件大小% (goto 附件大小超出)
  255. goto :eof
  256. :发信程序
  257. for /f "tokens=2 delims=[]" %%? in ('ping -n 1 smtp.163.com ^|findstr /i "^Ping"') do (set "ip=%%?")
  258. nc -nvv !ip! %port%<"!t_!">p-163ms.log
  259. goto :eof
  260. :判断登陆成功否
  261. for /f "tokens=1-2 delims=:" %%a in ('findstr /N . p-163ms.log') do (set "%%a=%%b")
  262. echo !5!|findstr "^235" >nul 2>nul ||(goto 登陆不成功)
  263. goto :eof
  264. :判断发送成功否
  265. for /f "tokens=1-2 delims=:" %%a in ('findstr /N . p-163ms.log') do (set "%%a=%%b")
  266. if not defined 10 (call :发信不成功)
  267. echo !9!|findstr "^250" >nul 2>nul ||(goto 发信不成功)
  268. goto :eof
  269. :iget.vbs_
  270. >iget.vbs echo x=LCase(WScript.Arguments(1))
  271. >>iget.vbs echo y=LCase(WScript.Arguments(0))
  272. >>iget.vbs echo Set xPost=CreateObject("Microsoft.XMLHTTP")
  273. >>iget.vbs echo xPost.Open "GET",y,0
  274. >>iget.vbs echo xPost.Send()
  275. >>iget.vbs echo Set sGet=CreateObject("ADODB.Stream")
  276. >>iget.vbs echo sGet.Mode=3
  277. >>iget.vbs echo sGet.Type=1
  278. >>iget.vbs echo sGet.Open()
  279. >>iget.vbs echo sGet.Write(xPost.responseBody)
  280. >>iget.vbs echo sGet.SaveToFile x,2
  281. goto :eof
  282. :::::::::::::::::::::所有错误start::::::::::::::::::::::
  283. :参数错误
  284. echo 参数错误,用户名\密码\收件人\主题中某一项缺少
  285. goto :eof
  286. :压缩文件错误
  287. echo 压缩文件失败
  288. goto :eof
  289. :附件大小超出
  290. echo 附件大小超出
  291. goto :eof
  292. :登陆不成功
  293. echo 登陆不成功
  294. goto :eof
  295. :发信不成功
  296. echo 发信不成功
  297. goto :eof
  298. :::::::::::::::::::::所有错误end::::::::::::::::::::::
复制代码

作者: hxinhu12315    时间: 2009-10-1 09:33

!   C:\Documents and Settings\Administrator\桌面\批处理之家论坛下载_p-mailsend_v4.0.rar: 不可预料的压缩文件末端
作者: Seter    时间: 2009-10-1 14:27

原帖由 hxinhu12315 于 2009-10-1 09:33 发表
!   C:\Documents and Settings\Administrator\桌面\批处理之家论坛下载_p-mailsend_v4.0.rar: 不可预料的压缩文件末端

可以解压就可以了,不要那么讲究
居然用NC发送邮件..真强
作者: linmiaojing    时间: 2010-4-5 11:01

真是有字天书!看不懂
作者: weiluz    时间: 2013-12-19 18:33

nc.exe 很容易给杀毒软件 但病毒查杀了,导致文件丢失无法正常使用了。
作者: xybzm    时间: 2014-2-21 17:17

楼上说得很对。。
作者: Hodson124    时间: 2014-3-7 08:26

解压不了啊!
作者: wuhengsi    时间: 2014-6-20 21:38

凡是可杀的。。。可视为废物一个。。。无用
作者: shh200438    时间: 2014-6-29 07:07

太赞了, 写这么个批处理不容易啊, 辛苦了.
作者: shh200438    时间: 2014-6-29 07:10

太赞了, 写这么个批处理不容易啊, 辛苦了.




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2