|   
vkill 
金牌会员
 
      
 
  
  
积分 4103 
发帖 1744 
注册 2006-1-20 来自 甘肃.临泽 
状态 离线
 | 
    『楼 主』:
 p-mailsend_4.0.cmd(命令行发送邮件,群发\多附件\匿名)
 
使用 LLM 解释/回答一下
  
4.0的代码 &附件 在2楼
随机更换发信地址的代码 在94楼
简单的代码解释 在19楼
-------------------------- 群发方法---------------------------------------------- 
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
.... 
 
-------------------------------------------------------------------------------------
 
 Last edited by vkill on 2007-11-18 at 05:53 PM ]  
Code for version 4.0 & attachments are on floor 2
Code for randomly changing the sending address is on floor 94
Simple code explanation is on floor 19
-------------------------- Mass mailing method---------------------------------------------- 
p-mailsend /u *@* /p * /t a.txt /s test /c * /a *
 
The format of a.txt is as follows:
 a@163.com
b@qq.com
c@56.com
d@yahoo.com.cn
.... 
 
-------------------------------------------------------------------------------------
 
 Last edited by vkill on 2007-11-18 at 05:53 PM ]  
    
 
     此帖被 +4 点积分            点击查看详情    | 评分人:【 bob1989 】 | 分数: +2 |   时间:2009-8-12 11:47 |  | 评分人:【  】 | 分数: +1 |   时间:2010-11-22 10:11 |  | 评分人:【 hueagle 】 | 分数: +1 |   时间:2010-12-22 13:27 |  
  |   
 
 
  
 |   
 |  
  2007-4-21 04:17 | 
  
 |  
 |   
vkill 
金牌会员
 
      
 
  
  
积分 4103 
发帖 1744 
注册 2006-1-20 来自 甘肃.临泽 
状态 离线
 | 
   『第 2 楼』:
 
 
使用 LLM 解释/回答一下
  
p-mailsend_v4.0代码 
修正: 
去掉了iget.vbs,现在不会提示有病毒了 
增强了参数验证,现在参数错误时不会出现假死现象 
要输入密码时不明文显示了
  
::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 "^@" "!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  
>>"%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   /u 用户@地址  /t 收件人 /s 主题    
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 hP1X500Pf3/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 
:: 
 
 
 Last edited by vkill on 2007-11-18 at 05:46 PM ]  
p-mailsend_v4.0 code 
Correction: 
Removed iget.vbs, so there will be no virus prompt now 
Enhanced parameter verification, so when parameters are incorrect, there will be no unresponsive phenomenon 
When a password needs to be entered, it is not displayed in plain text
  
::p-mailsend.cmd 
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
:: p-mailsend_v4.0                                                       :: 
::                                                                       :: 
::           Code by  : vkill                                            :: 
::           Thanks   : bjsh,est,lxmxm...                                :: 
::           Source   : http://www.vkill.net http://bbs.cn-dos.net       :: 
::           Function : Command-line email sending program (mass sending/multiple attachments/anonymous)             :: 
::           Principle: Principle of sending and receiving emails via telnet                             :: 
::           Last Update: 2007-11-12                                       :: 
::           Program Dependent Files: nc.exe;rar.exe;base64.exe                      :: 
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
 
@echo off&endlocal&setlocal ENABLEDELAYEDEXPANSION 
set "t_=test.conf" 
::Here is the detailed setting for anonymous sending 
set "anonymous="QQ mailbox administrator anonymous test" <10000@qq.com>"  
 
call :del_ 
set "oneself=%~f0" 
if "%1"=="" ( 
echo Please execute %oneself% /? at the command line to view detailed command line help 
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=Dependency file integrity check...<nul 
set "tools_name=nc.exe;rar.exe;base64.exe" 
for %%? in (%tools_name%) do ( 
if *%%~$PATH:?==* if not exist %%? ( 
echo no, Missing file %%? &goto :sleep_ 
                                  ) 
                           ) 
set/p=ok<nul&echo. 
 
set/p=Analyze whether parameters are correct...<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, Parameter "%~1" is incorrect&goto :sleep_)) 
if !n!==10 (echo no, Parameter "%~1" is incorrect&goto :sleep_) 
if not "%1"=="" (goto loop_ap)  
             ) 
set/p=ok<nul&echo. 
 
set/p=Analyze whether necessary parameters are missing...<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=Verify whether this address supports sending emails...<nul 
for /f "tokens=3-6 delims=," %%a in ('findstr "^::,%server%," "%oneself%"') do ( 
set "smtp=%%a"&set "port=%%b"&set "authentication_method=%%c"&set "max_z=%%d" 
                                                                             ) 
if not defined smtp (echo no&goto :sleep_) 
set/p=ok<nul&echo. 
 
set/p=Verify network connectivity...<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=Verify telnet %smtp% %port% connectivity...<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=Verify successful login...<nul 
if "%authentication_method%"=="1" call :authentication_method1 
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, Error "!x%n%!"&goto :sleep_) 
set/p=ok<nul&echo. 
 
::Continue to write nc configuration file 
>>"%temp%\%t_%" echo mail from: ^<%user%@%server%^> 
if exist "%to%" ( 
for /f "tokens=*" %%? in ('findstr "^@" "!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: %anonymous%) 
if not defined ht (>>"%temp%\%t_%" echo To: %to%) 
>>"%temp%\%t_%" echo Subject: %subject% 
>>"%temp%\%t_%" echo X-mailer: p-mailsend_v4.0  
>>"%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=Compressing and encoding attachments...<nul 
echo "%accessories%" |findstr ")" >nul 2>nul && (echo no, Attachment path or file name cannot contain ^)&goto :sleep_) 
if defined accessories ( 
for /f "tokens=1,2,3,4,5,6 delims=→" %%a in ('echo %accessories%') do ( 
   call :compress_and_encode_attachment "%%~a" 
   call :compress_and_encode_attachment "%%~b" 
   call :compress_and_encode_attachment "%%~c" 
   call :compress_and_encode_attachment "%%~d"       
   call :compress_and_encode_attachment "%%~e"  
   call :compress_and_encode_attachment "%%~f"                                 ) 
                     ) 
if defined xx (echo no, Compression or encoding of attachment error&goto :sleep_) 
if not !z! lss %max_z% (echo Attachment is too large, %server% mailbox supports maximum attachment size of %max_z%K&goto :sleep_) 
if defined accessories (set/p=ok<nul&echo.) 
>>"%temp%\%t_%" echo --=====vkill=====-- 
>>"%temp%\%t_%" echo . 
>>"%temp%\%t_%" echo quit 
 
::Send email 
set/p=Sending email...<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 "email_sending_error=%%?"&echo "%%?"|findstr "250 " >nul 2>nul ||(set vk3=0)) 
echo "%%?"|findstr "354 " >nul 2>nul &&(set vk1=0) 
                                          ) 
if defined vk3 (echo no, Error "!email_sending_error!"&goto :sleep_) 
set/p=ok<nul&echo. 
 
call :del_ 
echo _________________________________________________ 
echo Email sending completed, exiting in 2 seconds 
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 Currently supported mailboxes: 21cn.com,sina.com,163.com,126.com,sohu.com,yahoo.com.cn,qq.com 
echo Program dependent files: nc.exe;rar.exe;base64.exe 
echo If dependent files are incomplete, please manually download to the windows directory from http://www.vkill.net/tools.html 
echo. 
echo Usage:  
echo p-mailsend   /u user@address  /t recipient /s subject    
echo. 
echo /hu   Anonymous sending 
echo /ht   Hide other recipients when sending to multiple parties 
echo /u *  Username@address  Example:/u 122755990@qq.com 
echo /p    Password 
echo /t *  Recipient:(Recipient/text file path with written recipients) 
echo              (Multiple recipients separated by ,; enclosed in "")  Example:/t "abc@163.com,123@56.com" 
echo              (Text file format for recipients is as follows:) 
echo               a@163.com     
echo               b@163.com   
echo               c@163.com            
echo /s *  Subject 
echo /c    Content:(Text/text file path with written content) 
echo /ch   HTML format switch for email content, indicating that the sent content is in HTML format    
echo /a    Attachment:(Absolute/relative path, multiple attachments separated by → enclosed in "")  Example:/a "c:\a b.cmd→1234.txt" 
goto :eof 
 
:authentication_method1 
>>"%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 
 
:compress_and_encode_attachment 
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 hP1X500Pf3/f1/5++u5x>in.com 
echo (Note: Password is not displayed in plain text when entered) 
set  /p password=Please enter the password for 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= 
 
:::::::::::::::::::::Currently supported addresses:::::::::::::::::::::: 
::,Mailbox address,smtp address,telnet smtp port,authentication method,maximum attachment size (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 
:: 
 
 
 Last edited by vkill on 2007-11-18 at 05:46 PM ]  
    
 
     此帖被 +58 点积分          点击查看详情    | 评分人:【 everest79 】 | 分数: +15 |   时间:2007-4-21 04:32 |  | 评分人:【 bjsh 】 | 分数: +12 |   时间:2007-4-25 09:19 |  | 评分人:【 lxmxn 】 | 分数: +20 |   时间:2007-4-25 09:25 |  | 评分人:【 flyinspace 】 | 分数: +8 |   时间:2007-4-25 10:21 |  | 评分人:【 vlq5299 】 | 分数: +2 |   时间:2007-5-6 00:56 |  | 评分人:【 516526966 】 | 分数: +1 |   时间:2009-6-21 05:08 |  
  |   
 
 
  
附件
1:   p-mailsend v3.8.rar (2007-5-14 21:08, 3.16 KiB, 下载附件所需积分 1 点
,下载次数: 375)
 
附件
2:   p-mailsend_v4.0(all.rar (2007-11-18 17:45, 190.21 KiB,下载次数: 1009)
 
 
 |   
 |  
  2007-4-21 04:17 | 
  
 |  
 |   
everest79 
金牌会员
 
       一叶枝头,万树皆春
  
  
积分 2564 
发帖 1127 
注册 2006-12-25 
状态 离线
 | 
 |  
  2007-4-21 04:34 | 
  
 |  
 |   
vkill 
金牌会员
 
      
 
  
  
积分 4103 
发帖 1744 
注册 2006-1-20 来自 甘肃.临泽 
状态 离线
 | 
『第 4 楼』:
 
 
使用 LLM 解释/回答一下
  
Originally posted by everest79 at 2007-4-21 04:34: 
这个好,可以群发  
哈哈,就知道往这个方面想,群发的网上很多的,相信那些效率才高  
Originally posted by everest79 at 2007-4-21 04:34: 
This is good, can mass-send.  
Haha, I knew you'd think about this aspect. There are many mass-sending tools online, and I believe those are much more efficient.  
    
 
  
 |   
 |  
  2007-4-21 04:35 | 
  
 |  
 |   
everest79 
金牌会员
 
       一叶枝头,万树皆春
  
  
积分 2564 
发帖 1127 
注册 2006-12-25 
状态 离线
 | 
『第 5 楼』:
 
 
使用 LLM 解释/回答一下
  
好这个算被你驳倒了,不过还有一个,是附件大小,嘿嘿,没想到吧? 
Okay, this one is refuted by you, but there's another one, which is the attachment size, heh, didn't expect it, right? 
    
 
  
 |   
 |  
  2007-4-21 04:38 | 
  
 |  
 |   
vkill 
金牌会员
 
      
 
  
  
积分 4103 
发帖 1744 
注册 2006-1-20 来自 甘肃.临泽 
状态 离线
 | 
『第 6 楼』:
 
 
使用 LLM 解释/回答一下
  
Originally posted by everest79 at 2007-4-21 04:38: 
好这个算被你驳倒了,不过还有一个,是附件大小,嘿嘿,没想到吧?  
这个我试了,貌似最大支持1M的附件  
Originally posted by everest79 at 2007-4-21 04:38: 
Okay, this one is refuted by you, but there is another one, which is the attachment size, heh, didn't expect it?  
I tried this, it seems that the maximum supported attachment is 1M  
    
 
  
 |   
 |  
  2007-4-21 04:39 | 
  
 |  
 |   
everest79 
金牌会员
 
       一叶枝头,万树皆春
  
  
积分 2564 
发帖 1127 
注册 2006-12-25 
状态 离线
 | 
『第 7 楼』:
 
 
使用 LLM 解释/回答一下
  
这人是空想,我以为会跳过限制大小那一环节 
This person is daydreaming, I thought it would skip the link size limitation link that part. 
    
 
  
 |   
 |  
  2007-4-21 04:42 | 
  
 |  
 |   
estar 
中级用户
 
   
 
  
  
积分 346 
发帖 103 
注册 2004-4-6 
状态 离线
 | 
 |  
  2007-4-21 08:18 | 
  
 |  
 |   
everest79 
金牌会员
 
       一叶枝头,万树皆春
  
  
积分 2564 
发帖 1127 
注册 2006-12-25 
状态 离线
 | 
 |  
  2007-4-21 10:04 | 
  
 |  
 |   
vkill 
金牌会员
 
      
 
  
  
积分 4103 
发帖 1744 
注册 2006-1-20 来自 甘肃.临泽 
状态 离线
 | 
 |  
  2007-4-25 09:10 | 
  
 |  
 |   
bjsh 
银牌会员
 
     
 
  
  
积分 2000 
发帖 621 
注册 2007-1-1 
状态 离线
 | 
『第 11 楼』:
 
 
使用 LLM 解释/回答一下
  
vkill兄又发好东西; 
 
加分  下载 回去研究 
Brother vkill has released a good thing again; 
 
Add points, download, go back and study 
    
 
  
 |   
 |  
  2007-4-25 09:21 | 
  
 |  
 |   
vkill 
金牌会员
 
      
 
  
  
积分 4103 
发帖 1744 
注册 2006-1-20 来自 甘肃.临泽 
状态 离线
 | 
『第 12 楼』:
 
 
使用 LLM 解释/回答一下
  
Originally posted by bjsh at 2007-4-25 09:21: 
vkill兄又发好东西; 
 
加分  下载 回去研究  
呵呵,帮我好好测试哦~希望可以一起完善  
Originally posted by bjsh at 2007-4-25 09:21: 
Brother vkill has released another great thing; 
 
Add points  Download  Go back and study  
Hehe, help me test it carefully~ Hope we can improve it together  
    
 
  
 |   
 |  
  2007-4-25 09:26 | 
  
 |  
 |   
vkill 
金牌会员
 
      
 
  
  
积分 4103 
发帖 1744 
注册 2006-1-20 来自 甘肃.临泽 
状态 离线
 | 
『第 13 楼』:
 
 
使用 LLM 解释/回答一下
  
发现错误,交互模式,当使用此参数时别的参数全部无效,我又看了下代码 用了/x 别的参数还是有效的,呵呵 
Found an error. Interactive mode. When this parameter is used, all other parameters are invalid. I took another look at the code and used /x, and other parameters are still valid. Hehe 
    
 
  
 |   
 |  
  2007-4-25 09:28 | 
  
 |  
 |   
lxmxn 
版主
 
        
 
  
 
积分 11386 
发帖 4938 
注册 2006-7-23 
状态 离线
 | 
『第 14 楼』:
 
 
使用 LLM 解释/回答一下
  
不错,加分支持。 
 
另外,有个小建议,登录失败之后会产生很多临时文件,建议加入登录失败之后,自动删除这些临时文件的功能。 
Not bad, add points to support. 
 
In addition, there is a small suggestion. After a login failure, many temporary files are generated. It is recommended to add a function to automatically delete these temporary files after a login failure. 
    
 
  
 |   
 |  
  2007-4-25 09:40 | 
  
 |  
 |   
vkill 
金牌会员
 
      
 
  
  
积分 4103 
发帖 1744 
注册 2006-1-20 来自 甘肃.临泽 
状态 离线
 | 
『第 15 楼』:
 
 
使用 LLM 解释/回答一下
  
Originally posted by lxmxn at 2007-4-25 09:40: 
不错,加分支持。 
 
另外,有个小建议,登录失败之后会产生很多临时文件,建议加入登录失败之后,自动删除这些临时文件的功能。  
呵呵,你先自己修改下凑合着用了,到时候我更新到3.0的时候我相信就很完美了
 
到错误的时候 加call :del_ 就好了  
Originally posted by lxmxn at 2007-4-25 09:40: 
Not bad, add points to support. 
 
In addition, there is a small suggestion. After a login failure, many temporary files are generated. It is suggested to add a function to automatically delete these temporary files after a login failure.  
Hehe, you can modify it yourself and make do with it first. When I update to 3.0 later, I believe it will be very perfect.
 
When an error occurs, just add call :del_.  
    
 
     此帖被 +2 点积分    点击查看详情    | 评分人:【  】 | 分数: +1 |   时间:2009-3-4 06:10 |  | 评分人:【  】 | 分数: +1 |   时间:2010-2-18 18:55 |  
  |   
 
 
  
 |   
 |  
  2007-4-25 09:42 | 
  
 |  
  |