[Dos] 使用Dos发送email

 使用方法:保存成p-mailsend.cmd或::p-mailsend.bat,然后在dos下执行:

p-mailsend [/hu] [/ht] /u 用户@地址 [/p 密码] /t 收件人 /s 主题 [/c 内容] [/ch] [/a 附件]

 


 

 

::p-mailsend.cmd
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: p-mailsend_v4.0                                                               ::
::                                                                                      ::
::           Code by  : vkill                                                       ::
::           Thanks   : bjsh,est,lxmxm...                                      ::
::           出    处 : http://www.vkill.net http://bbs.cn-dos.net     ::
::           功    能 : 命令行邮件发送程序(群发/多附件/匿名)                ::
::           原    理 : telnet收发邮件的原理                                    ::
::           最后更新 : 2007-11-12                                             ::
::           程序依赖文件:nc.exe;rar.exe;base64.exe                      ::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 
@echo off&endlocal&setlocal ENABLEDELAYEDEXPANSION
set "t_=test.conf"
::这里是匿名发信的详细设置
set "匿名="QQ邮箱管理员匿名测试" ^<10000@qq.com^>"
 
call :del_
set "oneself=%~f0"
if "%1"=="" (
echo 请在命令行下执行 %oneself% /? 查看详细命令行帮助
ping -n 5 127.1 >nul 2>nul 
goto :eof
          )
if "%1"=="/?" goto help
if "%1"=="-?" goto help
for %%? in (/h,-h,--h) do (if "%~1"=="%%?" goto help)
echo.
echo p-mailsend_v4.0  by:vkill
echo _________________________________________________
 
set/p=依赖文件完整性检查...<nul
set "tools_name=nc.exe;rar.exe;base64.exe"
for %%? in (%tools_name%) do (
if *%%~$PATH:?==* if not exist %%? (
 echo no,缺失文件%%? &goto :sleep_
                                   )
                            )
set/p=ok<nul&echo.
 
set/p=分析参数是否正确...<nul
set n=0
if not "%1"=="" (
:loop_ap
set/a n+=1
if "%1"=="/hu" (set "hu=on" &shift)
if "%1"=="/ht" (set "ht=on" &shift)
if "%1"=="/ch" (set "ch=on" &shift)
if "%1"=="/u" ((for /f "tokens=1-2 delims=@" %%a in ('echo %~2') do (set "user=%%a"& set "server=%%b")) &shift&shift)
if "%1"=="/p" (set "pass=%~2" &shift&shift)
if "%1"=="/t" (set "to=%~2" &shift&shift)
if "%1"=="/s" (set "subject=%~2" &shift&shift)
if "%1"=="/c" (set "content=%~2" &shift&shift)
if "%1"=="/a" (set "accessories=%~2" &shift&shift)
if not "%1"=="" (echo %~1|findstr "^/" >nul 2>nul ||(echo no,参数"%~1"错误&goto :sleep_))
if !n!==10 (echo no,参数"%~1"错误&goto :sleep_)
if not "%1"=="" (goto loop_ap)
              )
set/p=ok<nul&echo.
 
set/p=分析必须参数是否缺失...<nul
for %%? in (user server to subject) do (if not defined %%? (echo no&goto :sleep_))
set/p=ok<nul&echo.
if not defined pass (
:inputpass
for /f "tokens=1 delims=:" %%? in ('findstr /N "=Hiddenpass.cmd_s=" "%oneself%"') do (more +%%? %oneself%>"%temp%/a")
for /f "tokens=1 delims=:" %%? in ('findstr /N "=Hiddenpass.cmd_e=" "%oneself%"') do (set/a "a=%%?-1" & more +!a! %oneself%>"%temp%/b")
findstr /V /B /E /G:"%temp%/b" "%temp%/a">"%temp%/pass.cmd"
start /wait cmd /k ""%temp%/pass.cmd" "!user!@!server!""
set/p password=<%temp%/pass
set "pass=!password:~9!"
if not defined pass goto inputpass
del /f/q "%temp%/pass" >nul 2>nul
del /f/q "%temp%/pass.cmd" >nul 2>nul
del /f/q "%temp%/a" >nul 2>nul
del /f/q "%temp%/b" >nul 2>nul
                  )
 
set/p=验证支持这个地址的邮箱发信否...<nul
for /f "tokens=3-6 delims=," %%a in ('findstr "^::,%server%," "%oneself%"') do (
set "smtp=%%a"&set "port=%%b"&set "认证方式=%%c"&set "max_z=%%d"
                                                                              )
if not defined smtp (echo no&goto :sleep_)
set/p=ok<nul&echo.
 
set/p=验证网络通否...<nul
for /f "tokens=2 delims=[]" %%? in ('ping -n 1 %smtp% ^|findstr /i "^ping.*[.*]"') do (set "ip=%%?")
if not defined ip (echo no&goto :sleep_)
set/p=ok<nul&echo.
 
set/p=验证telnet %smtp% %port%通否...<nul
>"%temp%/l%t_%" echo quit
nc -d -nvv %ip% %port% < "%temp%/l%t_%" >"%temp%/p-mailsend.log"
findstr . "%temp%/p-mailsend.log">nul 2>nul||(echo no&goto :sleep_)
set/p=ok<nul&echo.
 
set/p=验证登陆成功否...<nul
if "%认证方式%"=="1" call :认证方式1
copy "%temp%/%t_%" "%temp%/l%t_%">nul 2>nul
>>"%temp%/l%t_%" echo quit
nc -d -nvv %ip% %port% < "%temp%/l%t_%" >"%temp%/p-mailsend.log"
set n=0
for /f "tokens=1,2* delims=:" %%a in ('findstr /N . "%temp%/p-mailsend.log"') do (set "n=%%a"&set "x%%a=%%b")
set/a n-=1
echo "!x%n%!"|findstr "235 " >nul 2>nul ||(echo no,错误"!x%n%!"&goto :sleep_)
set/p=ok<nul&echo.
 
::继续写nc配置文件
>>"%temp%/%t_%" echo mail from: ^<%user%@%server%^>
if exist "%to%" (
for /f "tokens=*" %%? in ('findstr "^[0-9a-zA-Z-_.]@" "!to!"') do (set "lto=%%?,!lto!")
              )
if defined lto (set "to=!lto!")
for %%? in (!to!) do (>>"%temp%/%t_%" echo rcpt to: ^<%%?^>)
>>"%temp%/%t_%" echo data
if not defined hu (>>"%temp%/%t_%" echo From: %user%@%server%) else (>>"%temp%/%t_%" echo From: %匿名%)
if not defined ht (>>"%temp%/%t_%" echo To: %to%)
>>"%temp%/%t_%" echo Subject: %subject%
>>"%temp%/%t_%" echo X-mailer: p-mailsend_v4.0 [cn]
>>"%temp%/%t_%" echo Mime-Version: 1.0
>>"%temp%/%t_%" echo Content-Type: multipart/mixed;
>>"%temp%/%t_%" echo         boundary="=====vkill====="
>>"%temp%/%t_%" echo.
>>"%temp%/%t_%" echo --=====vkill=====
if defined content call :htmlortxt !content!
>>"%temp%/%t_%" echo         charset="gb2312"
>>"%temp%/%t_%" echo Content-Transfer-Encoding: 7bit
>>"%temp%/%t_%" echo.
if defined content (dir !content! >nul 2>nul &&(type "!content!">>"%temp%/%t_%" &>>"%temp%/%t_%" echo.) ||(>>"%temp%/%t_%" echo !content!)) else (>>"%temp%/%t_%" echo :^))
 
set z=0
if defined accessories set/p=压缩编码附件中...<nul
echo "%accessories%" |findstr ")" >nul 2>nul && (echo no,附件路径或文件名中不能包含^)&goto :sleep_)
if defined accessories (
for /f "tokens=1,2,3,4,5,6 delims=→" %%a in ('echo %accessories%') do (
    call :压缩编码附件 "%%~a"
    call :压缩编码附件 "%%~b"
    call :压缩编码附件 "%%~c"
    call :压缩编码附件 "%%~d"     
    call :压缩编码附件 "%%~e"
    call :压缩编码附件 "%%~f"                                 )
                      )
if defined xx (echo no,压缩或编码附件错误&goto :sleep_)
if not !z! lss %max_z% (echo 附件过大,%server%邮箱最大支持附件大小为%max_z%K&goto :sleep_)
if defined accessories (set/p=ok<nul&echo.)
>>"%temp%/%t_%" echo --=====vkill=====--
>>"%temp%/%t_%" echo .
>>"%temp%/%t_%" echo quit
 
::发信
set/p=发信中...<nul
nc -d -nvv %ip% %port% < ""%temp%/%t_%"" >"%temp%/p-mailsend.log"
for /f "tokens=*" %%? in ("%temp%/p-mailsend.log") do (
if defined vk1 if not defined vk2 (set vk2=0&set "发信错误=%%?"&echo "%%?"|findstr "250 " >nul 2>nul ||(set vk3=0))
echo "%%?"|findstr "354 " >nul 2>nul &&(set vk1=0)
                                           )
if defined vk3 (echo no,错误"!发信错误!"&goto :sleep_)
set/p=ok<nul&echo.
 
call :del_
echo _________________________________________________
echo 信件发送完成,2秒后退出
ping -n 2 127.1 >nul 2>nul
goto :eof
 
::all call::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 
:help
echo.
echo p-mailsend_v4.0  2007.11  by:vkill  Thanks to bjsh,est,lxmxm...
echo Copyright (C) 2006-2008 http://www.vkill.net http://bbs.cn-dos.net
echo 当前支持的邮箱有:21cn.com,sina.com,163.com,126.com,sohu.com,yahoo.com.cn,qq.com
echo 程序依赖文件:nc.exe;rar.exe;base64.exe
echo 如依赖文件不全请手动到http://www.vkill.net/tools.html上下载到windows目录
echo.
echo Usage:
echo p-mailsend [/hu] [/ht] /u 用户@地址 [/p 密码] /t 收件人 /s 主题 [/c 内容] [/ch] [/a 附件]
echo.
echo /hu   匿名发信
echo /ht   隐藏多方发送时别的收件人
echo /u *  用户名@地址 例:/u 122755990@qq.com
echo /p    密码
echo /t *  收件人:(收件人/写好收件人列表的文本文件路径)
echo              (多收件人用,隔开;用""引住) 例:/t "abc@163.com,123@56.com"
echo              (收件人列表的文本文件格式如下:)
echo               a@163.com   
echo               b@163.com 
echo               c@163.com          
echo /s *  主题
echo /c    内容:(文字/写好内容的文本文件路径)
echo /ch   信件内容html格式开关,表示发送的内容为html格式  
echo /a    附件:(绝对/相对路径,多附件用→隔开用""引住) 例:/a "c:/a b.cmd→1234.txt"
goto :eof
 
:认证方式1
>>"%temp%/%t_%" echo helo vkill
>>"%temp%/%t_%" echo auth login
for %%? in (%user%;%pass%) do (
set/p=%%?^<nul|base64>"l!t_!"
set/p v=<"l!t_!"
>>"%temp%/%t_%" echo !v!
del /f/q "l!t_!"
                            )
goto :eof
 
:del_
del /f/q "%temp%/%t_%">nul 2>nul
del /f/q "%temp%/l%t_%">nul 2>nul
del /f/q "%temp%/p-mailsend.log">nul 2>nul
goto :eof
 
:htmlortxt
if "%ch%"=="on" (>>"%temp%/%t_%" echo Content-Type: text/html;) else (>>"%temp%/%t_%" echo Content-Type: text/plain;)
goto :eof
 
:压缩编码附件
if "%~1"=="" exit/b
if "%~x1"==".rar" (copy "%~1" "%temp%/%~n1_.rar" >nul 2>nul) else (
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)
                                                         )
if not exist "%temp%/%~n1_.rar" (set xx=vkill&exit/b)
for %%? in ("%temp%/%~n1_.rar") do (set/a z=z+%%~z?)
>>"%temp%/%t_%" echo --=====vkill=====
>>"%temp%/%t_%" echo Content-Type: application/octet-stream;
>>"%temp%/%t_%" echo         name="%~n1_.rar"
>>"%temp%/%t_%" echo Content-Transfer-Encoding: base64
>>"%temp%/%t_%" echo Content-Disposition: attachment;
>>"%temp%/%t_%" echo         filename="%~n1_.rar"
>>"%temp%/%t_%" echo.
base64.exe -i "%temp%/%~n1_.rar">>"%temp%/%t_%"
>>"%temp%/%t_%" echo.
del /f/q "%temp%/%~n1_.rar" >nul 2>nul
goto :eof
 
:sleep_
call :del_
ping -n 2 127.1 >nul 2>nul
goto :eof
 
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 
=Hiddenpass.cmd_s=
@echo off
chcp 437>nul&graftabl 936>nul
echo hP1X500P[PZBBBfh#b##fXf-V@`$fPf]f3/f1/5++u5x>in.com
echo (注:输入密码时不明文显示)
set  /p password=请输入mail:%~1的密码:<nul
for /f "tokens=*" %%i in ('in.com') do set password=%%i
del in.com
echo.
>%temp%/pass set password
exit
=Hiddenpass.cmd_e=
 
:::::::::::::::::::::当前支持的地址::::::::::::::::::::::
::,邮箱地址,smtp地址,telnet smtp端口,认证方式,最大附件大小(k)
::,21cn.com,smtp.21cn.com,25,1,15000000
::,sina.com,smtp.sina.com.cn,25,1,15000000
::,163.com,smtp.163.com,25,1,20000000
::,126.com,smtp.126.com,25,1,20000000
::,sohu.com,smtp.sohu.com,25,1,10000000
::,yahoo.com.cn,smtp.mail.yahoo.com,25,1,15000000
::,yahoo.com,smtp.mail.yahoo.com,25,1,15000000
::,qq.com,smtp.qq.com,25,1,5000000
::
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值