generate .mht file programmatically

前端 未结 4 1116
醉话见心
醉话见心 2020-12-31 11:03

Does anybody know how to generate .mht file programmatically in C#, with embedded images in it? The thing is i have realised that .mht files are capable of embedding images

相关标签:
4条回答
  • 2020-12-31 11:11

    MSDN has a great article (June 2011) about how to create an MHT file using both CDO and System.Net.Mail. C# source code is included in-full. I would use this above the VB.Net or Google Code version.

    0 讨论(0)
  • 2020-12-31 11:12

    It is possible and has definitely been done by others - relevant material and libraries/source code:

    • RFC 2557 is the foundation of MHT format
    • VB.NET source code for generating MHT files from an URL
    • Chilkat MHT .NET library (commercial)
    • ASPNetMHT (commercial)
    • C# source code for generating MHT files from an URL
    • CDO.Message COM component, which exposes the IMessage interface
    0 讨论(0)
  • 2020-12-31 11:28

    I'd start with RFC 2557 so that I had some basic understanding of what I was working with. Then go look for code/libraries that deal with it.

    To my knowledge there are no BCL classes to deal with MHTML.

    0 讨论(0)
  • 2020-12-31 11:31

    In a Windows environment you can do this directly by means of the CDO.Message COM component, which exposes the IMessage interface
    I dont know the details of importing COM objects in C# so I'll give you a quick example in C-like syntax:

    IMsgObj = CreateObject("CDO.Message")   // create the object
    IMsgObj.CreateMHTMLBody("http://www.example.com/") // convert the URL to MHTML
    IMsgObj.GetStream().SaveToFile("output.mht")  // save it to a file
    

    The CLSID of the CDO.Message components is {CD000001-8B95-11D1-82DB-00C04FB1625D}

    Keep in mind though, that this component is meant for generating e-mail messages (.eml file extension rather than .mht) which means JavaScript files are not included. Otherwise they are roughly equivalent.

    0 讨论(0)
提交回复
热议问题