MBOX (.mbox)

予備知識

    • MIMEタイプ:application/mbox
    • Unixメールボックス形式.
    • 電子メールメッセージコレクションを保管する.
    • Unix mail,Thunderbird等の多くの電子メールクライアントのネイティブアーカイブ形式.
    • ASCII形式
    • 符号化されたバイナリデータを伴うテキスト形式.
    • メッセージを区切り行で連結されたEML形式で保存する.
    • RFC 4155をサポートする.

Import

  • Import["file.mbox"]はMBOXファイルをインポートし,連想で与えられたメッセージの概要のリストを返す.
  • Import["file.mbox"]{msg1,msg2,}という形式の式を返す.msgi は個々の電子メールメッセージの基本要素を与える連想である.
  • Import["file.mbox",elem]はMBOXファイルから指定の要素をインポートする.
  • Import["file.mbox",{elem,suba,subb,}]は子要素をインポートする.
  • Import["file.mbox",{{elem1,elem2,}}]は複数の要素をインポートする.
  • インポート形式はImport["file","MBOX"] またはImport["file",{"MBOX",elem,}]で指定できる.
  • 一般的な情報は,以下の関数ページを参照のこと.
  • Importファイルからインポートする
    CloudImportクラウドオブジェクトからインポートする
    ImportString文字列からファイルからインポートする
    ImportByteArrayバイト配列からインポートする

Import要素

  • 一般的なImport要素:
  • "Elements" ファイル中の有効な要素とオプションのリスト
    "Summary"ファイルの概要
    "Rules"使用可能なすべての要素の規則のリスト
  • メールボックス全体の要素:
  • "MessageSummaries"各メッセージの基本要素を与える連想のリスト
    "MessageElements"各メッセージの主要素を与える連想のリスト
    "FullMessageElements"各メッセージの利用可能な全要素を与える連想のリスト
    "MessageCount"メールボックスにあるメッセージの数
  • Importはデフォルトで"MessageSummaries"要素を使用する.
  • 概要要素:
  • "From"差出人の名前と電子メールアドレス
    "ToList"受信者の名前とアドレスのリスト
    "CcList"
  • カーボンコピー受信者の名前とアドレスのリスト
  • "BccList"ブラインドカーボンコピー受信者の名前とアドレスのリスト
    "OriginatingDate"電子メールヘッダからのクライアントの日付と時間
    "Subject"電子メールの件名
    "BodyPreview"メッセージ本文の短いプレビューのリスト
    "HasAttachments"各メッセージが添付ファイルを含んでいるかどうか
    "MessageID"各メッセージのメッセージID
  • "MessageSummary"にはすべての概要要素が含まれる.
  • その他のメッセージ要素:
  • "FromAddress"差出人の生の電子メールアドレス
    "FromName"差出人の氏名
    "ToAddressList"受信者のアドレスのリスト
    "ToNameList"受信者の氏名のリスト
    "CcAddressList"カーボンコピー受信者のアドレスのリスト
    "CcNameList"カーボンコピー受信者の氏名のリスト
    "BccAddressList"ブラインドカーボンコピー受信者の名前のリスト
    "BccNameList"ブラインドカーボンコピー受信者の氏名のリスト
    "ReplyToList"返信先の名前とアドレスのリスト
    "ReplyToAddressList"返信先のアドレスのリスト
    "ReplyToNameList"返信先の氏名のリスト
    "Body"文字列で表されたメッセージ本文
    "AttachmentList"式で表された処理済み添付ファイルリスト
  • "MessageElements"には "BodyPreview""HasAttachments"を除くすべての概要とメッセージの要素が含まれる.
  • 各電子メールのより詳細な情報は以下のカテゴリからインポートできる.
  • メッセージ本文の要素:
  • "BodyPreview"メッセージ本文の短いプレビューのリスト
    "Body"文字列で表されたメッセージ本文
    "NewBodyContent"本文の返信または転送ではない部分
    "QuotedContent"本文の引用された部分
  • スレッド要素:
  • "ThreadCount"メールボックス内のスレッドの番号
    "ThreadGraph"Graphとして表されるメールボックス内のスレッド
    "ThreadEmailCount"各スレッドごとのメールの数
    "ThreadTimeInterval"各スレッドで最初のメールから最後のメールまでの間隔
    "ThreadDuration"各スレッドで最初のメールから最後のメールまでの期間
    "ThreadMessageIDList"各スレッド内の全てのメールのメッセージIDのリスト
    "ThreadFromList"各スレッドの送信者のリスト
    "ReferenceMessageIDGraph"「参照」メッセージへの接続のGraph
  • メッセージルーティング要素:
  • "Precedence"宣言された電子メール優先度
    "ReturnPath"メールに対して宣言された差戻し先
    "ReturnReceiptRequested"開封確認が要求されているかどうか
    "DeliveryChainHostnames"電子メール配信チェーンのホスト名のリスト
    "DeliveryChainRecords"電子メール配信チェーンのホスト名のリスト
  • 電子メールヘッダ要素:
  • "Plaintext"文字列で表された完全な生の電子メール
    "HeaderString"文字列で表された電子メールの全ヘッダ
    "HeaderRules"すべてのヘッダの規則のリスト
    "CharacterEncoding"電子メールコンテンツの文字コード
    "ContentType"電子メール本文のMIMEコンテントタイプ
    "MIMEVersion"MIME標準のバージョン
    "ReplyToMessageID"各返信のもとのメッセージのすべてのIDのリスト
    "ReferenceMessageIDList"「参照」メッセージ(通常はスレッド内のもの)のID
  • メッセージ発信元要素:
  • "OriginatingMailClient"発信元の電子メールクライアントのタイプ
    "OriginatingIPAddress"発信元のクライアントマシンのIPアドレス
    "OriginatingHostname"発信元のクライアントマシンのホスト名
    "OriginatingCountry"geoIPから推測される発信元の国
    "OriginatingDate"電子メールヘッダからのクライアントの日時
    "OriginatingTimeZone"電子メールヘッダに基づくクライアントの時刻帯
    "ServerOriginatingDate"発信元サーバの日時
    "ServerOriginatingTimeZone"発信元サーバの時刻帯
  • 添付ファイル要素:
  • "HasAttachments"各メッセージが添付ファイルを含んでいるかどうか
    "AttachmentNames"添付ファイル名のリスト
    "AttachmentList"式で著された処理済み添付ファイルのリスト
    "AttachmentSummaries"基本的な添付ファイル要素を与える連想のリスト
    "AttachmentData"添付ファイルの生の符号化データとメタデータを与える連想のリスト
    "AttachmentDecodedData"添付ファイルの生の復号化データとメタデータを与える連想のリスト
    "AttachmentDetails"添付ファイルの内容とメタデータを与える連想のリスト
  • 要素"AttachmentDetails"は各添付ファイルについて連想を与えるリストである.この連想の要素は通常以下のものである:
  • "Name"添付ファイルに割り当てられた名前
    "MIMEType"コンテンツのMIMEタイプ
    "Content"インポートされたコンテンツ
    "ContentDisposition"添付ファイルのContent-Disposition
    "ModificationDate"添付ファイルに記録された編集日
    "ByteCount"復号化されたコンテンツのバイト数
  • 要素"AttachmentDecodedData"は各添付ファイルについて連想を与えるリストである.この連想の要素は通常以下のものである:
  • "Name"添付ファイルに割り当てられた名前
    "MIMEType"コンテンツのMIMEタイプ
    "DecodedContent"バイト配列で表された,復号化された生のコンテンツ
    "ContentDisposition"添付ファイルのContent-Disposition
    "ModificationDate"添付ファイルに記録された編集日
    "ByteCount"生の復号化コンテンツのバイト数
  • 要素"AttachmentAssociations"は各添付ファイルについて連想を与えるリストである.この連想の要素は通常以下のものである:
  • "Name"添付ファイルに関連付けられた名前
    "MIMEType"コンテンツのMIMEタイプ
    "RawContent"文字列で表された,生の符号化コンテンツ
    "ContentTransferEncoding""RawContent"のContent-Transfer-Encoding
    "ContentDisposition"添付ファイルのContent-Disposition
    "ModificationDate"添付ファイルに記録された編集日
    "ByteCount"生の符号化コンテンツのバイト数
  • "AttachmentSummaries"には各添付ファイルの復号化されたコンテンツの"Name""MIMEType""ByteCount"が含まれる.
  • 要素 elem の部分データのインポートのための部分要素は,{elem,msgs}という形式の行と列を取ることができる.ここで msgs は,以下のいずれでもよい:
  • nn 番目の電子メール
    -n最後から数えた順番
    messageid特定の電子メールの messageID
    {spec1,spec2,}電子メール指標またはメッセージIDのリスト
  • 部分要素は"FullMessageElements""MessageElements""MessageSummaries"に対しては{elem,msgs,keys}という形式で与えることもできる.ここでキーは,連想のどの要素でもよい.
  • {elem,spec}という形式でスレッド要素 elemの一部を利用するための部分要素は,以下の形式の specを取る:
  • n開始データに基づく n 番目のスレッド
    messageid特定のメッセージIDを含むスレッド

オプション

  • Importオプション:
  • "AttachmentRules"<||>添付ファイルのインポート方法を制御する規則
  • "AttachmentRules"に可能な設定は,以下のものを含む連想である:
  • fmtNone形式 fmt の添付ファイルをNoneとしてインポートする
    fmtelemfmt の添付ファイルのインポート時に要素 elemImportする
    fmtfun純関数 fun を復号化されたバイト配列に適用する
  • 形式指定 fun には,$ImportFormatsがサポートするすべての形式とMIMEタイプが使用できる.

例題

すべて開くすべて閉じる

  (3)

サンプルMBOXファイルのメッセージの概要をインポートする:

MBOXファイル内のメッセージ数を判定する:

MBOXファイルからメッセージの件名を抽出する:

メッセージの日付をインポートする:

スコープ  (6)

MBOXファイル内のメッセージ数を判定する:

メッセージの概要をインポートする:

特定のメッセージについて,"MessageID"を使って詳細情報を抽出する:

メールボックス内の位置を使って指定したメッセージをインポートする:

受信箱のすべてのメッセージの特定の要素をインポートする:

受信箱からメッセージ要素をインポートする:

Import要素  (62)

利用できる要素  (1)

利用できる要素のリスト:

データ表現  (10)

MBOXファイルのメッセージの概要を取得する:

メッセージのインデックスをDatasetとして見る:

メッセージを連想のリストとしてインポートする:

MBOXファイルの2つ目のメッセージをインポートする:

最初のメッセージ全体をインポートする:

受信箱のすべてのメッセージの特定の要素をインポートする:

 MBOXファイルからメッセージの件名を抽出する:

メッセージの本文をインポートする:

最初のメッセージをもとのインターネットメッセージ形式でインポートする:

新しいメッセージの内容の概要をインポートする:

"BodyPreview"はメッセージの新しい内容を抽出してまとめる:

メッセージの全内容と比較する:

内容の解析  (2)

メッセージの引用部分以外の新しい本文の内容を抽出する:

抽出した内容ともとの本文を比較する:

引用された内容をメッセージから抽出する:

抽出された内容をもとのメッセージ本文と比較する:

スレッド要素  (8)

メールボックスの中のスレッドの数をインポートする:

メールボックスの中のメッセージのグラフをインポートする:

それぞれのスレッドのメールの数をインポートする:

メールボックスの中のそれぞれのスレッドに関する時間間隔をインポートする:

メールボックスの中のそれぞれのスレッドの間隔をインポートする:

メールボックスの中のそれぞれのスレッドのすべてのメッセージIDをインポートする:

メールボックスの中のそれぞれのスレッドのすべての送信者の名前とメールアドレスをインポートする:

メールボックスの中のすべてのリファレンスのグラフをインポートする:

電子メールアドレスのヘッダ要素  (19)

差出人の名前と電子メールアドレスをインポートする:

差出人の氏名をインポートする:

差出人の電子メールアドレスをインポートする:

受信者の名前とアドレスのリストをインポートする:

受信者のアドレスのリストをインポートする:

受信者の名前のリストをインポートする:

カーボンコピー受信者の名前とアドレスのリストをインポートする:

カーボンコピー受信者のアドレスのリストをインポートする:

カーボンコピー受信者の名前のリストをインポイートする:

ブラインドカーボンコピー受信者の名前とアドレスのリストをインポートする:

ブラインドカーボンコピー受信者のアドレスのリストをインポートする:

ブラインドカーボンコピー受信者の名前のリストをインポートする:

差戻し先をインポートする:

返信先の名前とアドレスのリストをインポートする:

返信先のアドレスのリストをインポートする:

返信先の名前のリストをインポートする:

メッセージIDのリストを取り出す:

返信されたメッセージのもとのメッセージのIDを取り出す:

参照されたメッセージのIDを取り出す:

一般的なヘッダ要素  (4)

最初のメッセージのヘッダ全体を文字列としてインポートする:

最初のメッセージのヘッダを規則のリストとしてインポートする:

最初のメッセージの文字コードをインポートする:

電子メール本文のMIMEコンテントタイプをインポートする:

高度なヘッダ要素  (11)

宣言された電子メール優先度をインポートする:

開封確認のためのアドレスをすべてインポートする:

配信チェーンのホスト名のリストをインポートする:

配信チェーンの記録をAssociationとしてインポートする:

各メッセーの送信に使用された電子メールクライアントを判定する:

メッセージの送信に使用されたマシンのIPアドレスをインポートする:

メッセージの送信に使用されたマシンのホスト名をインポートする:

各メッセージが送信された日時をインポートする:

電子メールヘッダからクライアントの時刻帯をインポートする:

発信元サーバの日時をインポートする:

発信元サーバの時刻帯をインポートする:

添付ファイル要素  (7)

メッセージが添付ファイルを含んでいるかどうかを判定する:

すべての添付ファイルのファイル名を取得する:

すべての添付ファイルを規則のリストとしてインポートする:

特定のメッセージの添付ファイルの概要を取得する:

2つ目のメッセージの添付ファイルの生データをインポートする:

2つ目のメッセージのデコードされた添付データをインポートする:

2つ目のメッセージの添付と詳細をインポートする:

Importオプション  (3)

"AttachmentRules"  (3)

WAVファイルを"Length"要素としてインポートする:

GIF画像はインポートしない:

GIF画像のインポートを制御する純関数を指定する:

アプリケーション  (6)

基本的なアプリケーション  (2)

"Alice Johnson"からのすべてのメッセージの件名をインポートする:

特定の日付より後に送信されたすべてのメッセージの位置を求める:

内容の解析  (1)

MBOX内で,引用部分以外で「lunch」という単語が述べられたすべての事例を求める:

MBOX内で,「lunch」という単語が述べられたすべての事例を,引用部分内での重複も含めて求める:

添付ファイルの操作  (2)

50000バイトより大きい添付ファイルを含むメッセージをインポートする:

ASCII符号化の生の文字列から,2つ目のメッセージの最初の添付ファイルを手作業でインポートする:

電子メールスレッドの分析  (1)

MBOXの各電子メールからいくつかの基本要素を敦恵,各メッセージIDを表示する:

別の電子メールへの返信であるすべての電子メールを求める:

メッセージIDが頂点で,返信先への接続が辺であるグラフを構築し,各メッセージに送信者の名前のラベルを付ける:

各メッセージに新規の本文のツールチップを付ける: