VBS创建eml mht文件
Posted | archive
Here is a little VBScript for generating a Microsoft Web Archive (*.mht) file. Web archives are a convenient way to pack a bunch of web files (HTML/CSS/JavaScript) into a single file that is viewable in your browser. The downside is MHT files are only viewable in MS Internet Explorer (lame).
Normally you would create an MHT by using the "Save As..." option in IE. This script allows you to create one programatically.
Sample Usage:
for a remote html file:
>cscript mht_converter.vbs http://www.example.com/temp/foo.html foo.mht
for a local html file:
>cscript mht_converter.vbs file:/temp/foo.html foo.mht
... And now the code:
'mht_converter.vbs
Const adSaveCreateNotExist = 1
Const adSaveCreateOverWrite = 2
Const adTypeBinary = 1
Const adTypeText = 2
Set args = WScript.Arguments
if args.Count = 0 then
WScript.Echo "Usage: [CScript | WScript] mht_converter.vbs <html file> <mht filename>"
WScript.Quit 1
end if
Set objMessage = CreateObject("CDO.Message")
objMessage.CreateMHTMLBody args.Item(0)
SaveToFile objMessage, args.Item(1)
Sub SaveToFile(Msg, Fn)
Dim Strm, Dsk
Set Strm = CreateObject("ADODB.Stream")
Strm.Type = adTypeText
Strm.Charset = "US-ASCII"
Strm.Open
Set Dsk = Msg.DataSource
Dsk.SaveToObject Strm, "_Stream"
Strm.SaveToFile Fn, adSaveCreateOverWrite
Comments