mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Ruby - UNIX MBOX メールヘッダ・アドレス系属性の検証!

[ プログラミング ] [ Mail, Ruby ]

こんばんは。

前回は、UNIX MBOX メールデータ中のヘッダ「From」属性を Ruby で検証してみました。

今回は、同じ Ruby スクリプトを少しだけ改良して、「To」・「Cc」・「Reply-to」・「Sender」・「Return-Path」属性を検証しました。 「To」・「Cc」・「Reply-to」属性は「From」属性同様複数がカンマで区切られて設定される可能性があるもの、「Sender」・「Return-Path」は複数設定はされないもの、です。

Ruby - UNIX MBOX メールヘッダ「From」検証!で紹介した Ruby スクリプトを多少修正すれば対応可能ですので、今回はもう掲載しません。

参考までに、当方の UNIX MBOX メールデータ(61,665件)を検証した結果を掲載します。 それぞれの属性が設定されているか、どのような書式で設定されているか、不正なものはないかを検証しています。

To属性

1メールに複数設定されている可能性がある属性です。

1
2
3
4
5
6
7
8
9
10
11
12
13
全件数                    = 65592
非設定                    = 444
"xxxx" <xxx@xxx.xxx>      = 906
    "" <xxx@xxx.xxx>      = 0
  xxxx <xxx@xxx.xxx>      = 441
       <xxx@xxx.xxx>      = 7006
"xxxx" <xxx@xxx.xxx> xxxx = 0
    "" <xxx@xxx.xxx> xxxx = 0
  xxxx <xxx@xxx.xxx> xxxx = 0
       <xxx@xxx.xxx> xxxx = 0
        xxx@xxx.xxx       = 55515
        xxx@xxx.xxx xxxx  = 1093
マッチしなかったもの      = 187

マッチしなかったものは、以下の3種類。

  • undisclosed-recipients:; → BCCのみで送信されTOが設定されていないい場合に設定される。
  • (○○会員の皆さまへ)
  • (△△会員のみなさまへ)

それほど問題にならない。

Cc属性

1メールに複数設定されている可能性がある属性です。

1
2
3
4
5
6
7
8
9
10
11
12
13
全件数                    = 61683
非設定                    = 61531
"xxxx" <xxx@xxx.xxx>      = 11
    "" <xxx@xxx.xxx>      = 0
  xxxx <xxx@xxx.xxx>      = 15
       <xxx@xxx.xxx>      = 3
"xxxx" <xxx@xxx.xxx> xxxx = 0
    "" <xxx@xxx.xxx> xxxx = 0
  xxxx <xxx@xxx.xxx> xxxx = 0
       <xxx@xxx.xxx> xxxx = 0
        xxx@xxx.xxx       = 97
        xxx@xxx.xxx xxxx  = 0
マッチしなかったもの      = 26

マッチしなかったものは、以下の1種類だけ。

  • recipient list not shown: ; → BCCのみで送信されCCが設定されていないい場合に設定される。

それほど問題にならない。

Reply-to属性

1メールに複数設定されている可能性がある属性です。

1
2
3
4
5
6
7
8
9
10
11
12
13
全件数                    = 61716
非設定                    = 35260
"xxxx" <xxx@xxx.xxx>      = 833
    "" <xxx@xxx.xxx>      = 0
  xxxx <xxx@xxx.xxx>      = 4333
       <xxx@xxx.xxx>      = 1001
"xxxx" <xxx@xxx.xxx> xxxx = 0
    "" <xxx@xxx.xxx> xxxx = 0
  xxxx <xxx@xxx.xxx> xxxx = 0
       <xxx@xxx.xxx> xxxx = 0
        xxx@xxx.xxx       = 20284
        xxx@xxx.xxx xxxx  = 5
マッチしなかったもの      = 0

全く問題なし。

Sender属性

1メールに複数設定されることはない属性です。

1
2
3
4
5
6
7
8
9
10
11
12
13
全件数                    = 61665
非設定                    = 51470
"xxxx" <xxx@xxx.xxx>      = 1
    "" <xxx@xxx.xxx>      = 0
  xxxx <xxx@xxx.xxx>      = 31
       <xxx@xxx.xxx>      = 2
"xxxx" <xxx@xxx.xxx> xxxx = 0
    "" <xxx@xxx.xxx> xxxx = 0
  xxxx <xxx@xxx.xxx> xxxx = 0
       <xxx@xxx.xxx> xxxx = 0
        xxx@xxx.xxx       = 10161
        xxx@xxx.xxx xxxx  = 0
マッチしなかったもの      = 0

全く問題なし。

Return-Path属性

1メールに複数設定されることはない属性です。

1
2
3
4
5
6
7
8
9
10
11
12
13
全件数                    = 61665
非設定                    = 4625
"xxxx" <xxx@xxx.xxx>      = 0
    "" <xxx@xxx.xxx>      = 0
  xxxx <xxx@xxx.xxx>      = 0
       <xxx@xxx.xxx>      = 34273
"xxxx" <xxx@xxx.xxx> xxxx = 0
    "" <xxx@xxx.xxx> xxxx = 0
  xxxx <xxx@xxx.xxx> xxxx = 0
       <xxx@xxx.xxx> xxxx = 0
        xxx@xxx.xxx       = 21196
        xxx@xxx.xxx xxxx  = 0
マッチしなかったもの      = 1571

マッチしなかったものは、以下の1種類だけ。 ・<> 問題なし。


「Date」属性、メールアドレス系の属性と検証が終了したので、次回からはその他の属性の検証に入れると思います。 ちなみに、メールヘッダの属性にはマイナーなものもありますが、今回の一連の作業ではメジャーなものだけを検証していくつもりです。 また、充分な余力・時間があれば、メール本文・添付ファイル等の検証もやってみたいとは考えています。

以上。

Comments