メール本文にどのような HTML を設定するのが適切なのか、 Outlook で作ったメッセージファイルのソースを参考にしようと思ったが、どうしたら見られるのか分からなかった。
仕方がないので、スクリプトからメッセージファイルを開き、メール本文(HTML)をテキストファイルに書き出すことにした。
前提:Outlook を起動しておくこと。
あとは定数 MSG_FILE_PATH にファイルパスを設定し、スクリプトを実行するだけで良い。
Temp フォルダにランダムなファイル名でテキストファイルが作られる。
Option Explicit 'Outlook メッセージファイルのパス Const MSG_FILE_PATH = "〈Outlook メッセージファイルのパス〉" '------------------------------ '本文を取得 '------------------------------ Dim mailBody mailBody = "" With GetObject(, "Outlook.Application") With .GetNamespace("MAPI") With .OpenSharedItem(MSG_FILE_PATH) mailBody = .HTMLBody .Close 1 End With End With End With '------------------------------ 'テキストファイルに保存(UTF-8) '------------------------------ '書き込み先のファイルパスを生成 Dim path With CreateObject("Scripting.FileSystemObject") path = .BuildPath(.GetSpecialFolder(2), .GetTempName()) End With 'ファイルに書き込む With CreateObject("ADODB.Stream") .Type = 2 .Charset = "UTF-8" .Open .WriteText mailBody .SaveToFile path .Close End With WScript.Echo "書き込み完了" & vbLf & path
入力チェックやエラー処理は入っていないが、自分で使う分にはこれで十分だろう。