Ruby - UNIX MBOX メールヘッダ・Content-Transfer-Encoding属性の検証!
Updated:
今日は Ruby で UNIX MBOX メールデータ中のメールヘッダ「Content-Transfer-Encoding」属性を検証してみました。 以下の過去記事も参照。
- Ruby - UNIX MBOXデータ読み込み!
- Ruby - UNIX MBOX メールヘッダ「Date」検証!
- Ruby - UNIX MBOX メールヘッダ「From」検証!
- Ruby - UNIX MBOX メールヘッダ・アドレス系属性の検証!
- Ruby - UNIX MBOX メールヘッダ・Message-ID系属性の検証!
- Ruby - UNIX MBOX メールヘッダ・Mime-Version属性の検証!
- Ruby - UNIX MBOX メールヘッダ・Content-Type属性の検証!
この「Content-Transfer-Encoding」属性とは、どのような方法でエンコードされたかを表しているものです。 RFC 2045 に準拠していないといけません。
RFC 2045 によると「Content-Transfer-Encoding」属性に設定できるのは以下のとおり。
- 7bit
- 8bit
- binary
- quoted-printable
- base64
“7bit” がデフォルトですので、非設定なら “7bit” が設定されていることになります。
と言うことで、「Content-Transfer-Encoding」属性にどのような割合で設定されているかを Ruby で検証してみました。
参考までに、当方の UNIX MBOX メールデータ(61,665件)を検証した結果を掲載します。 ※だから何?と言われそうですが、自分の近い将来のための記録として掲載していますので、ご承知おきください。
Ruby スクリプトは今までの検証で使用してきたものを流用しています。
使用した正規表現
大文字・小文字は区別しないです。
/^(7bit|8bit|binary|quoted-printable|base64)$/i
Content-Transfer-Encoding属性
1メール(ヘッダー部分)に複数設定されることはない属性です。 また、必須で設定されないといけないものでもありません。
全件数 = 61,665
非設定 = 23,684
7bit = 36,987
8bit = 180
binary = 6
quoted-printable = 554
base64 = 254
Non-Match = 0
不正なものは1件もありませんでした。
次に「Content-Length」属性を検証してみようかと思いましたが、調べてみるとあまり使われていないようです。 あと、主だったメールヘッダで未調査のものは「Received」「X-Mailer」「Subject」くらいでしょうか。 「Received」は複雑そうなので後回しにして、次回は「X-Mailer」か「Subject」あたりを検証してみようかと考えています。
因みに、前回使用した Ruby スクリプトの流用し続けてきたので、毎回殆どソース改変には労力を伴っていません。
以上。
Comments