中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: 批处理怎样发送邮件?急 上一主题 | 下一主题
chone88
新手上路





积分 14
发帖 14
注册 2010-4-16
状态 离线
『楼 主』:  批处理怎样发送邮件?急

@echo off
set "life=test.conf"

:start
cls
::::::::::::::::::::::::::::::::::::::::
:name_b
title 批处理发送邮件→1/5
cls
set name=
set /p name=请输入邮箱用户名:
if *%name%==* goto name_b
echo %name%|findstr "^[0-9a-zA-Z_-=]*$" >nul ||(echo 语法错误,任意键返回&pause>nul&goto name_b)
echo 必须保证和上面base64编码前的是同一用户名
:name__b
set name_=
set /p name_=请输入邮箱用户名(非base64编码的):
if *%name_%==* goto name__b

:pass_b
title 批处理发送邮件→2/5
cls
set pass=
set /p pass=请输入邮箱密码:
if *%pass%==* goto pass_b
echo %pass%|findstr "^[0-9a-zA-Z_-=]*$" >nul ||(echo 语法错误,任意键返回&pause>nul&goto pass_b)

:sjr_b
title 批处理发送邮件→3/5
cls
echo 格式为xxx@xxx.xxx 例如:test@test.com
set sjr=
set /p sjr=请输入收件人:
if *%sjr%==* goto sjr_b
echo %sjr%|findstr "^[0-9a-z]*\@[0-9a-z]*\.[a-z]*$" >nul ||(echo 语法错误,任意键返回&pause>nul&goto sjr_b)

:zt_b
title 批处理发送邮件→4/5
cls
set zt=
set /p zt=请输入邮件的主题:
if *%zt%==* goto zt_b

:zw_b
title 批处理发送邮件→5/5
cls
set zw=
set /p zw=请输入邮件的正文:
if *%zw%==* goto zw_b


::写nc调用的脚本
>%life% echo helo cn-dos
>>%life% echo AUTH LOGIN
>>%life% echo %name%
>>%life% echo %pass%
>>%life% echo mail from: ^<%name_%@163.com^>
>>%life% echo rcpt to: ^<%sjr%^>
>>%life% echo data
>>%life% echo From: %name_%@163.com
>>%life% echo To: %sjr%
>>%life% echo Subject: %zt%
>>%life% echo MIME-Version: 1.0
>>%life% echo Content-Type: text/plain
>>%life% echo.
>>%life% echo %zw%
>>%life% echo .
>>%life% echo quit

pause
cls
echo 正在获取smtp.163.com的ip
for /f "tokens=4 delims= " %%? in ('ping -n 1 smtp.163.com ^|find /i "Ping statistics for"') do (set "ip_=%%?")
set "ip=%ip_::=%"
if *%ip%==* (echo 没有获取到ip,可能网络有问题&pause>nul&goto :eof)
echo %ip%|findstr "^[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*$">nul||(echo 没有获取到ip,可能网络有问题&pause>nul&goto :eof)
echo ip获取完成

echo 正在发送邮件
::nc连接smtp.163.com 25执行%life%中的命令发邮件
nc -nvv %ip% 25 < %life%
echo 发送完成,任意键开始继续发送
del /f/q %life%>nul
pause>nul&goto sjr_b

goto :eof

不过运行到最后一步就停止了,邮件发不出去了,问一下是什么问题?谢谢





[ Last edited by chone88 on 2010-4-17 at 12:55 ]

2010-4-17 10:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chardos
初级用户





积分 31
发帖 16
注册 2010-3-4
状态 离线
『第 2 楼』:  

nc 是第三方工具

2010-4-17 13:16
查看资料  发短消息 网志   编辑帖子  回复  引用回复
xue0808
初级用户





积分 108
发帖 56
注册 2007-5-7
状态 离线
『第 3 楼』:  

blat

2010-4-17 13:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chone88
新手上路





积分 14
发帖 14
注册 2010-4-16
状态 离线
『第 4 楼』:  

对啊 我用的就是nc.exe,但是运行到最后一步就不动了,不知为何?麻烦您帮我看看?

2010-4-17 18:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chone88
新手上路





积分 14
发帖 14
注册 2010-4-16
状态 离线
『第 5 楼』:  

blat也是第三方软件?

2010-4-17 18:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
rs369007
初级用户





积分 147
发帖 131
注册 2008-9-22
状态 离线
『第 6 楼』:  

似乎不行,也不是nc 问题

反馈信息如下:

(UNKNOWN) [220.181.12.13] 25 (?) open
220 163.com Anti-spam GT for Coremail System (163com[20090903])
250 OK
334 dXNlcm5hbWU6
535 Error: authentication failed
502 Error: command not implemented
502 Error: command not implemented
553 authentication is required,smtp9,DcCowLBLnwU8jMlL0kMMAA--.512S2 1271500137
503 bad sequence of commands
503 bad sequence of commands
502 Error: command not implemented
502 Error: command not implemented
421 Too many error commands
sent 245, rcvd 438: NOTSOCK



  freedom!
2010-4-17 18:48
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chone88
新手上路





积分 14
发帖 14
注册 2010-4-16
状态 离线
『第 7 楼』:  

对 就是这样的 不知道怎么回事?我用的用户名和密码都是base64加密过的啊

2010-4-17 18:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chone88
新手上路





积分 14
发帖 14
注册 2010-4-16
状态 离线
『第 8 楼』:  

不知道用blat怎么发送?简单吗?

2010-4-17 18:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pop081
新手上路





积分 10
发帖 10
注册 2010-4-17
状态 离线
『第 9 楼』:  

可以嗎?

2010-4-18 07:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chone88
新手上路





积分 14
发帖 14
注册 2010-4-16
状态 离线
『第 10 楼』:  

请各位大虾指教

2010-4-18 10:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
rs369007
初级用户





积分 147
发帖 131
注册 2008-9-22
状态 离线
『第 11 楼』:  

以前也有前辈讨论个这个问题,貌似163的服务器现在似乎不支持这个样



  freedom!
2010-4-18 10:35
查看资料  发短消息 网志   编辑帖子  回复  引用回复
rs369007
初级用户





积分 147
发帖 131
注册 2008-9-22
状态 离线
『第 12 楼』:  

这个问题很有实用价值哦,确实不行的话可以自己架ftp,用批处理进行自动文件传输,在局域网环境效果差不多



  freedom!
2010-4-18 18:17
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chone88
新手上路





积分 14
发帖 14
注册 2010-4-16
状态 离线
『第 13 楼』:  

恩 但是我用126的也不可以

2010-4-18 20:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chone88
新手上路





积分 14
发帖 14
注册 2010-4-16
状态 离线
『第 14 楼』:  

用批处理出现错误,但是手动发送可以的,见下面:
DOS命令发邮件第1步:telnet smtp.163.com 25

//smtp端口号25                                                                                                     

第2步:helo liuyuan

其中liuyuan可以乱写 这里是我的名字 注意与helo隔个空格

第3步:auth login

//因为163邮箱需要身份验证

第4步:bGl1eXVhbl9hbmR5

我的邮箱ID

注意这是我的邮箱ID base64加密后的 既liuyuan_andy加密的结果

可以到http://www.tc711.com/tool/Base64.asp在线加密

第5步:MTk4NjExMjA=

我的密码,base64加密结果,大家不要去改我密码啊,反正我是学生 油箱里没有啥东西

我的银行卡 也不用这个密码 ,你要去进我邮箱我也不在乎。。

第6步:mail from:<liuyuan_andy@163.com>

//发信人油箱 注意格式

第7步:rcpt to:<liuyuan_andy@163.com>

收信人油箱 注意格式

第8步:data

//邮件内容

第9步:

to:liuyuan_andy@163.com 这个将作为收信人收到邮件后,上面显示的收件人 ,to:后面的内容可乱写

from:liuyuan_andy@163.com这个将作为收信人收到邮件后,上面显示的发件人,from:后的内容可乱写 如:from:hehe@163.com 那么他看到的就是hehe@163.com发给他的,但他如果查邮件的源码,是可以知道真实发件人的

subject:helo

//顾名思义,邮件主题 下面空一行 写邮件内容

this is a test

.

//写完内容后输入一点 后敲回车;

最后:quit

2010-4-18 20:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
rs369007
初级用户





积分 147
发帖 131
注册 2008-9-22
状态 离线
『第 15 楼』:  

确实能行,不过似乎只能发文字邮件哦



  freedom!
2010-4-19 11:09
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: