今日、たまたま[20 メール関連] - [01 Outlook操作] - [Outlook 条件を指定して対象メール保存.ums6]を使う機会があって、msg形式でメール保存されたはいいものの、そこからmsgファイルを読み込むライブラリが見つけられなくて、ぬぉーーーーーっ!!ってなったのでスクリプト書いてみた。
ライブラリにも登録しておきましたー、寄ってってね?
1.設定イメージはこんな感じ。
2.スクリプトはこんな感じ。
GetMailBody(!msgファイルパス!)
Function GetMailBody(MailFilePath)
Dim oApp
Set oApp = Nothing
Dim oOlns 'As Outlook.NameSpace
Dim oMItem 'As Object
On Error Resume Next
'起動済みのOutlookをクラス名を指定して取得
Set oApp = GetObject(, "Outlook.Application")
On Error GoTo 0
'oAppがNothingなら
If oApp Is Nothing Then
Err.Raise 1, "", "Outlookが起動されていません。"
'WScript.Quit()
Else
Dim myOlExp
Set myOlExp = oApp.ActiveExplorer
If myOlExp Is Nothing Then
Err.Raise 1, "", "Outlookが起動されていません。"
WScript.Quit()
End If
End If
Set oOlns = oApp.GetNamespace("MAPI")
Set oMItem = oOlns.OpenSharedItem(MailFilePath)
With oMItem
SetUMSVariable $件名$, .Subject
SetUMSVariable $受信日時$, .ReceivedTime
SetUMSVariable $本文$, .Body
.Close olDiscard
End With
GetMailBody = RsltStr
End Function
3.備考はこんな感じ。
ファイル保存されたメール(.msg)を読み込みます。
一応、取り込むメールの本文が引用文含めてすんごく長くなりそうなら、「フローチャート画面」のシナリオ情報から「変数値の文字数を制限する」のチェックを外しとくことをおすすめします?
