使用 VBScript 和 NetCat 发送电子邮件





1.00/5 (1投票)
为了补充我之前关于使用 JScript 和 Netcat 发送电子邮件的文章,这里是使用 VBScript 的版本,并展示了从 JScript 到 VBScript 的转换。
引言
不久前,我写了一篇关于如何使用 JScript 和非常有用的程序 - NetCat 发送电子邮件的文章。这篇文章涵盖了相同的内容,但使用 VBScript,并比较了这两种语言的代码。
原始文章在这里:http://nerds-central.blogspot.com/2007/02/email-load-tester-auto-email-sender.html,也在 'The Code Project' 上:https://codeproject.org.cn/KB/scripting/Exsead5.aspx。
我发现 JScript 比 VBScript 更容易使用,尤其是在我做的大部分工作上;然而,许多人更喜欢 VBScript。问题是微软似乎没有投入太多精力来支持 VBScript;他们甚至没有创建(据我所知)它的 .NET 版本。我想这意味着 VBScripters 能够编写 JScript 代码是有好处的。为此,我不仅提供了并讨论了这里的 VBScript 源代码,还展示了(在注释中)原始的 JScript 代码。我希望那些不太熟悉 JScript 的人能看到,一旦你克服了那些弯弯曲曲的括号,它实际上与 VBScript 非常相似!
它是如何工作的
我已经讨论过使用 XMLHTTP
对象与 Web 服务交互。对于发送电子邮件,没有这样的现成对象来帮助我们。但是,发送电子邮件并不是一件特别复杂的事情,所以我们可以直接使用 NetCat!
为此,你首先需要一份 NetCat 的副本。我有一个在 Windows XP 上运行的副本,可以从 这里 下载。我没有进行端口修改,但功劳在 zip 文件中,并且是 GPL 2 许可。一旦你有了 nc.exe,你需要把它放在可执行路径上(例如 system32)或者与你将要运行脚本的目录中。
该脚本应该通过命令行中的 cscript 运行。你必须更改 SMTP 服务器的地址为你可以访问的一个,并设置收件人和发件人电子邮件地址、命中次数和命中间隔延迟到适当的设置。这是一个真实的脚本,我今天用它来负载测试一个电子邮件服务器!
'var strExe = "nc -v smtp.gotadsl.co.uk 25";
dim strExe
strExe = "nc -v smtp.gotadsl.co.uk 25"
'var objShell = WScript.CreateObject("WScript.Shell");
dim objShell
set objShell = WScript.CreateObject("WScript.Shell")
'var total = 8;
dim total
total = 8
'var delay = 0;
dim delay
delay = 0
'var victim = "ian.manson@project-network.com";
dim victim
victim = "git@cubicalland.com"
'for(var i=0;i<total;++i)
dim i
for i=1 to total
' var strExeIn ="HELO nerds-central.com\r\n";
' strExeIn+="MAIL FROM: <test@nerds-central.com>\r\n";
' strExeIn+="RCPT TO: <"+victim+">\r\n";
' strExeIn+="DATA\r\n";
' strExeIn+="Body of email: this is an auto generated test email.\r\n";
' strExeIn+="This is "+(i+1)+" of "+total+"\r\n";
' strExeIn+=".\r\n";
' strExeIn+="QUIT\r\n";
dim strExeIn
strExeIn = "HELO nerds-central.com" + vbcrlf
strExeIn = strExeIn + "MAIL FROM: <test@nerds-central.com>" + vbcrlf
strExeIn = strExeIn + "RCPT TO: <"+victim+">" + vbcrlf
strExeIn = strExeIn + "DATA"+ vbcrlf
strExeIn = strExeIn + _
"Body of email: this is an auto generated test email." + _
vbcrlf
strExeIn = strExeIn + "This is " & i & " of " & total & vbcrlf
strExeIn = strExeIn + "." + vbcrlf
strExeIn = strExeIn + "QUIT" + vbcrlf
'var objScriptExec = objShell.Exec(strExe);
dim objScriptExec
set objScriptExec = objShell.Exec(strExe)
'objScriptExec.StdIn.write(strExeIn);
objScriptExec.StdIn.write(strExeIn)
'objScriptExec.StdIn.close();
objScriptExec.StdIn.close()
'WScript.echo("Sending "+(i+1)+" of "+total+" to "+victim);
WScript.echo("Sending " & i & " of " & total & " to "+victim)
'WScript.echo(objScriptExec.StdOut.ReadAll());
WScript.echo(objScriptExec.StdOut.ReadAll())
'WScript.sleep(delay);
WScript.sleep(delay)
next
有关更多 VBScript 信息,请参阅 Nerds-Central 的 VBScript 部分。