中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » p-mailsend_4.0.cmd(命令行发送邮件,群发\多附件\匿名)
« [1] [2] [3] [4] [5] [6] [7] [8] [9] »
作者:
标题: p-mailsend_4.0.cmd(命令行发送邮件,群发\多附件\匿名) 上一主题 | 下一主题
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 16 楼』:  

今天早上分析了一下
vkill兄的代码;
在这里解析下;以便于新手学习;


整体的流程是:

1.检查文件完整性 or下载

2.检查参数

3.测试登陆

4.写全配置文件

5.nc 灌入  发送邮件

2007-4-26 01:24
查看资料  发送邮件  发短消息 网志   编辑帖子
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 17 楼』:  

看了下;发现些小问题;下面提出些建议;


为了避免只使用一次/x建议在开头把user等初始化

:发信程序最后漏写了个goto :eof

这一处错误会导致

:发信程序  执行后会紧接着执行  :判断登陆成功否;

在 call :判断登陆成功否后面加一句

if errorlevel 1 goto :del_

否则无论是否登陆成功都继续发信;


在call :判断发送成功否 会出现些其它不必要的信息;而且发送不成功的话;发送不成功提示会出现两次;
而且最后还会echo 全部信件发送完毕;

建议在
call :del
echo 全部信件发送完毕
上加
cls
if errorlevel 1 echo 发信不成功 & goto del_



在:交互模式中
if not defined user (set/p=用户名:<nul&set/p "user= ")
完全可以简写为:if not defined user (set/p "user=用户名: ")
依次类推




for /f "tokens=2 delims=[]" %%? in ('ping -n 1 smtp.163.com ^|findstr /i "^Pinging"') do (set "ip=%%?")

建议把pinging改为ping否则vista无法成功找到ip


vista回显为:

  Quote:
正在 Ping smtp.163.split.netease.com [220.181.12.13] 具有 32 字节的数据:

来自 220.181.12.13 的回复: 字节=32 时间=35ms TTL=51

220.181.12.13 的 Ping 统计信息:
    数据包: 已发送 = 1,已接收 = 1,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 35ms,最长 = 35ms,平均 = 35ms

应该把help下的if "%1"=="vkill" goto :eof提到help前;否则则失去了他应有的作用;

2007-4-26 01:27
查看资料  发送邮件  发短消息 网志   编辑帖子
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 18 楼』:  

好东西。不过还是要借助vbs?!

2007-4-26 01:33
查看资料  发短消息 网志   编辑帖子
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 19 楼』:  

给vkill兄的代码
根据上面的建议稍微修改了下
并稍微写了点注释

代码如下

  Quote:

  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::::::::::::::::::::::

         BJSH发表于:  2007-04-25  13:20

[ Last edited by bjsh on 2007-4-25 at 01:34 PM ]

   此帖被 +16 点积分     点击查看详情   
评分人:【 lxmxn 分数: +8  时间:2007-4-26 02:30
评分人:【 vkill 分数: +8  时间:2007-4-26 07:35


2007-4-26 01:35
查看资料  发送邮件  发短消息 网志   编辑帖子
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 20 楼』:  

根据vkill兄的代码;我重新写了一下;
直接生成 test 和 post文件;
避免了9个文件的加和和复制;
稍微容易理解些:
代码如下:

  Quote:

  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. set "user="
  9. set "pass="
  10. set "to="
  11. set "subject="
  12. set "content="
  13. set "accessories="
  14. :down_tools
  15. set "down_ok=y"
  16. if not "%tools_name%*"=="*" (
  17. for %%? in (%tools_name%) do (
  18. if *%%~$PATH:?==* if not exist %%? (
  19. set "down_ok=n"
  20. echo 程序所依赖文件%%?缺失,已自动开始下载
  21. if not exist iget.vbs call :iget.vbs_
  22. iget.vbs "%tools_url%%%?" "%%?"
  23. echo 文件%%?下载完毕
  24.                                    )
  25.                              )
  26.                             )
  27. del /f/q iget.vbs>nul 2>nul
  28. if [%down_ok%]==[n] goto down_tools
  29. for %%? in (/? -? /h -h --h) do (if "%1"=="%%?" goto help)
  30. if "%1"=="" goto help
  31. :loop_ap
  32. set/a n+=1
  33. if not "%1"=="" (
  34.   if "%1"=="/x" goto 交互模式
  35.   if "%1"=="/u" set "user=%~2"
  36.   if "%1"=="/p" set "pass=%~2"
  37.   if "%1"=="/t" set "to=%~2"
  38.   if "%1"=="/s" set "subject=%~2"
  39.   if "%1"=="/c" set "content=%~2"
  40.   if "%1"=="/a" set "accessories=%~2"
  41.   shift&shift
  42.   goto loop_ap
  43.                 )
  44. for %%? in (user pass to subject) do (
  45. if not defined %%? echo 参数错误参数错误,用户名\密码\收件人\主题中某一项缺少 & goto :eof
  46. )
  47. goto start

  48. :交互模式
  49. call :help vkill
  50. if not defined user (set/p "user=用户名: ")
  51. if not defined pass (set/p "pass=密码: ")
  52. if not defined to (set/p "to=收件人: ")
  53. if not defined subject (set/p "subject=主题<hello>: ")
  54. if not defined content (set/p "content=内容: ")
  55. if not defined accessories (set/p "accessories=附件: ")

  56. :start
  57. echo helo vkill >test
  58. echo AUTH LOGIN >>test
  59. set /p"=%user%"<nul|base64>"!t_!"
  60. set /p v=<"!t_!"
  61. >>test echo !v!
  62. set /p"=%pass%"<nul|base64>"!t_!"
  63. set /p v=<"!t_!"
  64. >>test echo !v!
  65. del /f /q !t_!
  66. echo quit>>test
  67. call :发信程序 test
  68. cls
  69. for /f "tokens=1-2 delims=:" %%a in ('findstr /N . p-163ms.log') do (set "%%a=%%b")
  70. echo !5!|findstr "^235" >nul 2>nul ||(echo 登陆不成功)
  71. if errorlevel 1 goto :del_
  72. if exist post del /f /q post
  73. for /f "delims=" %%a in (test) do if not "%%a"=="quit" echo %%a >>post
  74. del /f /q test
  75. >>post echo mail from: ^<%user%@%server%^>
  76. >>post echo rcpt to: ^<%to%^>
  77. >>post echo data
  78. >>post echo From: %user%@%server%
  79. >>post echo To: %to%
  80. >>post echo Subject: %subject%
  81. >>post echo X-mailer: p-163ms 2.0 [cn]
  82. >>post echo Mime-Version: 1.0
  83. >>post echo Content-Type: multipart/mixed;
  84. >>post echo         boundary="=====vkill====="
  85. >>post echo.
  86. if defined content (
  87. >>post echo --=====vkill=====
  88. >>post echo Content-Type: text/plain;
  89. >>post echo         charset="gb2312"
  90. >>post echo Content-Transfer-Encoding: 7bit
  91. >>post echo.
  92. dir !content! >nul 2>nul &&(type "!content!">>post) ||(>>post echo !content!)
  93.                    )
  94. echo 压缩编码文件中...
  95. if defined accessories for %%? in (%accessories%) do (call :压缩编码附件 "%%?")
  96. echo%to%发信中...
  97. call :发信程序 post
  98. cls
  99. for /f "tokens=1-2 delims=:" %%a in ('findstr /N . p-163ms.log') do (set "%%a=%%b")
  100. if not defined 10 echo.
  101. echo !9!|findstr "^250" >nul 2>nul ||echo.
  102. cls
  103. if errorlevel 1 echo 发信不成功 & goto del_
  104. call :del_
  105. echo 全部信件发送完毕
  106. ping -n 3 127.1>nul 2>nul
  107. goto :eof
  108. :del_
  109. del /f /q test >nul 2>nul
  110. del /f /q post >nul 2>nul
  111. del /f /q p-163ms.log>nul 2>nul
  112. goto :eof
  113. :发信程序
  114. for /f "tokens=2 delims=[]" %%? in ('ping -n 1 smtp.163.com ^|findstr /i "^Ping"') do (set "ip=%%?")
  115. nc -nvv !ip! %port%<%1>p-163ms.log
  116. goto :eof
  117. :压缩编码附件
  118. dir %~1 >nul 2>nul &&(call :压缩文件 "%~1" "rar.exe -r")||(call :压缩文件 "%~1" rar.exe)
  119. call :判断文件大小 "%~n1_.rar"
  120. >>post echo --=====vkill=====
  121. >>post echo Content-Type: application/octet-stream;
  122. >>post echo         name="%~n1_.rar"
  123. >>post echo Content-Transfer-Encoding: base64
  124. >>post echo Content-Disposition: attachment;
  125. >>post echo         filename="%~n1_.rar"
  126. >>post echo.
  127. base64.exe -i "%~n1_.rar">>post
  128. >>post echo.
  129. del /f/q "%~n1_.rar" >nul 2>nul
  130. >>post echo --=====vkill=====--
  131. >>post echo .
  132. >>post echo quit
  133. goto :eof
  134. :压缩文件
  135. %~2 a "%~n1_.rar" "%~1" >nul 2>nul||(echo 压缩文件错误)
  136. goto :eof
  137. :判断文件大小
  138. set/a z+=%~z1
  139. ::判断附件大小
  140. if not !z! lss %最大附件大小% (echo 附件大小超出)
  141. goto :eof
  142. :help
  143. if "%1"=="vkill" goto :eof
  144. echo ____help________________________________________________________________________
  145. echo.
  146. echo p-163ms v2.0  by:vkill
  147. echo Copyright (C) 2006-2008 http://www.vkill.net
  148. echo.
  149. echo Usage: p-163ms.cmd [/x] /u 用户名 /p 密码 /t 收件人 /s 主题 [/c 内容] [/a 附件]
  150. echo.
  151. echo /x 交互模式,当使用此参数时别的参数全部无效
  152. echo /t 收件人:(多收件人中间用,隔开;多附件时用""引住)
  153. echo /c 内容:(文字/写好内容的文本文件路径)
  154. echo /a 附件:(绝对路径/相对路径,多附件中间用,隔开;多附件时用""引住)
  155. echo.
  156. echo 示例:
  157. echo p-163ms.cmd /u 123 /p abc /t "122755990@qq.com" /s hello
  158. echo p-163ms.cmd /u 123 /p abc /t "122755990@qq.com" /s hello /c 123 /a "d:\00.txt"
  159. 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"
  160. echo.
  161. echo ________________________________________________________________________________
  162. goto :eof
  163. :iget.vbs_
  164. >iget.vbs echo x=LCase(WScript.Arguments(1))
  165. >>iget.vbs echo y=LCase(WScript.Arguments(0))
  166. >>iget.vbs echo Set xPost=CreateObject("Microsoft.XMLHTTP")
  167. >>iget.vbs echo xPost.Open "GET",y,0
  168. >>iget.vbs echo xPost.Send()
  169. >>iget.vbs echo Set sGet=CreateObject("ADODB.Stream")
  170. >>iget.vbs echo sGet.Mode=3
  171. >>iget.vbs echo sGet.Type=1
  172. >>iget.vbs echo sGet.Open()
  173. >>iget.vbs echo sGet.Write(xPost.responseBody)
  174. >>iget.vbs echo sGet.SaveToFile x,2
  175. goto :eof
         BJSH发表于:  2007-04-25  14:59



2007-4-26 04:12
查看资料  发送邮件  发短消息 网志   编辑帖子
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 21 楼』:  

bjsh 兄
我用copy + + 完全是为了多方发送,因为多方发送的时候只是修改了rcpt to: ,其他的完全没有变,我用copy ++ 你发信的时候试试 start nc -nvv ...看看那样更快,呵呵

19楼的解释太精彩了,佩服

在:交互模式中
if not defined user (set/p=用户名:<nul&set/p "user= ")
完全可以简写为:if not defined user (set/p "user=用户名: ")
依次类推
我刚刚试了set/p "user=用户名: " 和set/p=用户名:<nul&set/p "user= "一样,谢谢兄指点

2007-4-26 07:41
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 22 楼』:  

还有看来bjsh 兄这么有意研究这个,再说说吧!

>>post echo mail from: ^<%user%@%server%^>
>>post echo rcpt to: ^<%to%^>

mail from:可以把这去掉,也可以写别的邮箱,应该也可以写文字之类的,类似匿名,哈哈
rcpt to: 可以把这去掉,这样别人就看不到你同时都给谁发了,我相信到mail.163.com是做不到这样的

2007-4-26 07:44
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 23 楼』:  



  Quote:
bjsh 兄
我用copy + + 完全是为了多方发送,因为多方发送的时候只是修改了rcpt to: ,其他的完全没有变,我用copy ++ 你发信的时候试试 start nc -nvv ...看看那样更快,呵呵

原来如此啊!还真没想到多方发送;确实

2007-4-26 07:44
查看资料  发送邮件  发短消息 网志   编辑帖子
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 24 楼』:  

我还想把他做成校内通用的;

可惜想了半天也没明白学校的邮件服务器用的是什么;

看了看似乎是80;

至于smtp完全是模仿你的;

至于含义真的是不懂;

有空真得去学学网络协议了;

如果vkill兄不嫌我郁闷;

帮我搞定学校内的邮件发送;真是感激不尽了;

2007-4-26 07:48
查看资料  发送邮件  发短消息 网志   编辑帖子
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 25 楼』:  

后面的完全就是mime了,http://blog.yx127.com/?action=show&id=190,这里讲的很详细
学校的那个你 telnet 上去看看,例子:

telnet 192.168.0.1 25
help

看看出来什么

[ Last edited by vkill on 2007-4-26 at 07:52 AM ]

2007-4-26 07:51
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 26 楼』:  

25端口不开的;

问了学校的一些人

说smtp和pop3都不开放的;

2007-4-26 08:00
查看资料  发送邮件  发短消息 网志   编辑帖子
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 27 楼』:  

bjsh 兄

可否有意一起写那?我想写为 p-mailsend ,支持更多的邮箱,最起码我想支持现在几个大站的,163 yahoo qq hotmail gmail 56 sina sohu 21cn ==

Usage: p-163ms.cmd [/x] /u 用户名@服务器 /p 密码 /t 收件人 /s 主题 [/c 内容] [/a 附件]

2007-4-26 08:01
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 28 楼』:  



  Quote:
Originally posted by bjsh at 2007-4-26 08:00:
25端口不开的;

问了学校的一些人

说smtp和pop3都不开放的;

这个不开放那用telnet就没有办法了,用foxmail OE ==也不可以,只有通过网页形式发了,你可以用vbs写个登陆邮箱发邮件的,呵呵,量体财衣了

2007-4-26 08:03
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 29 楼』:  

他的端口只有这些
80(HTTP)
21(FTP Control)
3306(MYSQL)
22(SSH)
389(LDAP)

确实得用vbs了;
五一写

2007-4-26 08:14
查看资料  发送邮件  发短消息 网志   编辑帖子
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 30 楼』:  



  Quote:
Originally posted by vkill at 2007-4-25 07:01 PM:
bjsh 兄

可否有意一起写那?我想写为 p-mailsend ,支持更多的邮箱,最起码我想支持现在几个大站的,163 yahoo qq hotmail gmail 56 sina sohu 21cn ==

Usage: p-163m ...

好啊!
这样就可以和兄学习到好东西了;呵呵

2007-4-26 08:15
查看资料  发送邮件  发短消息 网志   编辑帖子
« [1] [2] [3] [4] [5] [6] [7] [8] [9] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: