![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-15 13:31 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » p-mailsend_4.0.cmd(命令行发送邮件,群发\多附件\匿名) |
| 可打印版本 82,875 / 122 |
| 第16楼 bjsh | 发表于 2007-04-26 01:24 |
| 银牌会员 发帖 621 积分 2,000 | |
|
今天早上分析了一下
vkill兄的代码; 在这里解析下;以便于新手学习; 整体的流程是: 1.检查文件完整性 or下载 2.检查参数 3.测试登陆 4.写全配置文件 5.nc 灌入 发送邮件 |
|
| 第17楼 bjsh | 发表于 2007-04-26 01:27 |
| 银牌会员 发帖 621 积分 2,000 | |
|
看了下;发现些小问题;下面提出些建议;
为了避免只使用一次/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回显为:
应该把help下的if "%1"=="vkill" goto :eof提到help前;否则则失去了他应有的作用; |
|
| 第18楼 wudixin96 | 发表于 2007-04-26 01:33 |
| 银牌会员 发帖 931 积分 1,928 | |
|
好东西。不过还是要借助vbs?!
|
|
| 第19楼 bjsh | 发表于 2007-04-26 01:35 |
| 银牌会员 发帖 621 积分 2,000 | |
|
给vkill兄的代码
根据上面的建议稍微修改了下 并稍微写了点注释 代码如下
[ Last edited by bjsh on 2007-4-25 at 01:34 PM ] |
|
| 第20楼 bjsh | 发表于 2007-04-26 04:12 |
| 银牌会员 发帖 621 积分 2,000 | |
|
根据vkill兄的代码;我重新写了一下;
直接生成 test 和 post文件; 避免了9个文件的加和和复制; 稍微容易理解些: 代码如下:
|
|
| 第21楼 vkill | 发表于 2007-04-26 07:41 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
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= "一样,谢谢兄指点 |
|
| 第22楼 vkill | 发表于 2007-04-26 07:44 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
还有看来bjsh 兄这么有意研究这个,再说说吧!
>>post echo mail from: ^<%user%@%server%^> >>post echo rcpt to: ^<%to%^> mail from:可以把这去掉,也可以写别的邮箱,应该也可以写文字之类的,类似匿名,哈哈 rcpt to: 可以把这去掉,这样别人就看不到你同时都给谁发了,我相信到mail.163.com是做不到这样的 |
|
| 第23楼 bjsh | 发表于 2007-04-26 07:44 |
| 银牌会员 发帖 621 积分 2,000 | |
原来如此啊!还真没想到多方发送;确实 |
|
| 第24楼 bjsh | 发表于 2007-04-26 07:48 |
| 银牌会员 发帖 621 积分 2,000 | |
|
我还想把他做成校内通用的;
可惜想了半天也没明白学校的邮件服务器用的是什么; 看了看似乎是80; 至于smtp完全是模仿你的; 至于含义真的是不懂; 有空真得去学学网络协议了; 如果vkill兄不嫌我郁闷; 帮我搞定学校内的邮件发送;真是感激不尽了; |
|
| 第25楼 vkill | 发表于 2007-04-26 07:51 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
后面的完全就是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 ] |
|
| 第26楼 bjsh | 发表于 2007-04-26 08:00 |
| 银牌会员 发帖 621 积分 2,000 | |
|
25端口不开的;
问了学校的一些人 说smtp和pop3都不开放的; |
|
| 第27楼 vkill | 发表于 2007-04-26 08:01 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
bjsh 兄
可否有意一起写那?我想写为 p-mailsend ,支持更多的邮箱,最起码我想支持现在几个大站的,163 yahoo qq hotmail gmail 56 sina sohu 21cn == Usage: p-163ms.cmd /u 用户名@服务器 /p 密码 /t 收件人 /s 主题 |
|
| 第28楼 vkill | 发表于 2007-04-26 08:03 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
Originally posted by bjsh at 2007-4-26 08:00: 这个不开放那用telnet就没有办法了,用foxmail OE ==也不可以,只有通过网页形式发了,你可以用vbs写个登陆邮箱发邮件的,呵呵,量体财衣了 |
|
| 第29楼 bjsh | 发表于 2007-04-26 08:14 |
| 银牌会员 发帖 621 积分 2,000 | |
|
他的端口只有这些
80(HTTP) 21(FTP Control) 3306(MYSQL) 22(SSH) 389(LDAP) 确实得用vbs了; 五一写 |
|
| 第30楼 bjsh | 发表于 2007-04-26 08:15 |
| 银牌会员 发帖 621 积分 2,000 | |
Originally posted by vkill at 2007-4-25 07:01 PM: 好啊! 这样就可以和兄学习到好东西了;呵呵 |
|
| 上一页 1 2 3 4 5 … 9 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |