Outlook からメールヘッダの情報を収集する(2)
Header に入っている文字列を改行コードで分けて、X-Mailerではじまるものだけを抜き出す方法は意外と簡単だった。
split 関数を使えば、簡単に配列に代入できる。
UBound 関数を使えば、代入した配列の最大値を簡単に取得できる。
' Header 変数の中身を改行を区切りとして分解し Headers(n) 配列に突っ込む Headers = Split(Header, vbCrLf) 'XMail 変数の掃除 XMail = "" '配列をひとつずつチェック For k = 0 To UBound(Headers) '行頭に X-Mailer という文字列があれば、XMail変数に値を代入 If LCase(Left(Headers(k), 8)) = LCase("X-Mailer") Then XMail = Headers(k) End If Next k 'EXCELで値をセットする行をひとつ下に移動 i = i + 1 'シートに貼り付ける。X-Mail以外の送信者に関する属性も一緒に取得 oNewWb.sheets(1).Cells(i, 1).Value = XMail oNewWb.sheets(1).Cells(i, 2).Value = lSenderName oNewWb.sheets(1).Cells(i, 3).Value = lsenderemailaddress
以下略
これをピボットテーブルで分析すれば、比較的簡単にヘッダ情報を抜き出せる。
これをもとに作ったパターンファイルを使って、一日100万件くらいのメールの分析をしてみよう。