66938
mhtmlファイルから画像を(Windowsバッチか、JavaScriptか、PHPで)抽出したいのですが、  
mhtmlの仕様としては、base64でデータ化した画像をファイル内に埋め込んでいるだけですか？

単一のmhtmlファイルに表示されている複数画像を一括で抽出するためには、mhtmlファイルに対してループ内でbase64デコード後ファイル出力処理するのですか？
CC BY-SA 4.0
2020-05-24T02:24:39.423
66934
2020-05-24T05:26:55.230
7886
question
html
mhtmlファイルから画像を抽出したい
**mhtmlの仕様としては、base64でデータ化した画像をファイル内に埋め込んでいるだけですか？**

そのようですね。  
[MHTML - Wikipedia](https://ja.wikipedia.org/wiki/MHTML)

>
> MHTMLはMIMEのマルチパートを用いることで、元のHTMLと他のリソースを纏め、一通の電子メールで完全なHTMLマルチメディア文書を転送できるようにしたフォーマットである。  
>  MIMEのフォーマットに則っているため、US-ASCII以外のテキストデータや画像などのバイナリデータはQuoted-
> printableかBase64でエンコードする。

(Windowsバッチか、JavaScriptか、PHPで)という要望には対応できるか不明ですが、この辺の記事で同様の話題を扱っているようです。  
[Extracting Content from MHT
Document](https://stackoverflow.com/q/1268486/9014308)  
回答でC#のMIMEパーサーライブラリが承認されています。  
[smithimage/MIMER](https://github.com/smithimage/MIMER/)

[How can you programmatically (or with a tool) convert .MHT mhtml files to
regular HTML and CSS files?](https://stackoverflow.com/q/16203002/9014308)  
承認された回答はIEでhtmlにセーブし直すとそれぞれの分かれたファイルになるというものです。テキスト以外はBase64でセーブされるようです。  
[承認回答](https://stackoverflow.com/a/16468320/9014308)  
WinAppDriverとかで出来るようにしてみるとか。  
[ブラウザ操作は Selenium？ いえ WinAppDriver でも ―自動UIテストで遊ぼう：Qiita
に「いいね」がついてたら](https://qiita.com/CodeOne/items/11656ace7021cd45ad98)  
[[C#] 自動UIテストで遊ぼう：生まれ変わったエッヂのはるかさんがクリスマスイブの予定を読み上げる（WinAppDriver
でできること／できないこと）](https://qiita.com/CodeOne/items/6a7e75fc82f94b332f14)

他にもツールがあるようです。  
[Modified/MHTifier](https://github.com/Modified/MHTifier)  
[mht2htm](https://pgm.bpalanka.com/mht2htm.html)

.NETのSystem.Net.Mimeを使えば出来るという[回答](https://stackoverflow.com/a/37803678/9014308)

こちらはPowerShellで作って送信する方、作れるなら分解も出来るのでは？  
[PowerShellでマルチパートメールを送信するサンプル](https://maywork.net/computer/maltipartmail-
sample/)

他にこんなツールも。  
[Convert Mht files(Mime Html, Web Archieve) to html
files](http://www.wizbrother.com/tools/mht2html.html)

この2つはPHPのようです。完成しているのか不明ですが。  
[dzcpy/mht2html](https://github.com/dzcpy/mht2html)  
[gentlyxu/mht2html](https://github.com/gentlyxu/mht2html)
CC BY-SA 4.0
2020-05-24T04:55:31.310
66938
2020-05-24T05:26:55.230
2020-05-24T05:26:55.230
26370
26370
66934
answer