新しいblogに移行しました

新ブログ "All Yout Bugs Are Belong To Ass" に移行しました!

2009-01-01

[Perl]Email::Filterは無実です、オイラが悪かったです;;

過去に書いた記事 [Perl]Email::FilterとかEmail::Simpleでheaderメソッド使ってFromを取得するときの注意で、オイラが盛大に誤爆したことが明らかとなりました。

まず、[Perl]Email-Simple-2.004はちゃんとFromヘッダ処理できてたにもあります通り、Email::Simpleにおいて、$instance->header( "From" ); は正常に動作します。

さて、今回確認を行ったEmail::Filterについても、下記のような実証用コードを用意し、調べてみました。

test.pl



#!/usr/bin/perl
use Email::Filter;
use Data::Dumper;
my $email = Email::Filter->new;
print Dumper $email->header( 'From' );

見ての通り、以前書いた実証用コードをよりシンプルにしました。

また、手元に届いたスパムメール(^^;)を元に、Email::Filterのheaderメソッドのテスト用データを3パターンこさえてみました(元データがスパムなので、Fromを公開しておきます)。

テストデータ1(data_1.txt)



From guojie350@163.com Wed Nov 19 20:36:14 2008
X-Original-To: ******@*********
Delivered-To: ******@*********
To: ******@*********
Subject: =?ISO-2022-JP?B?GyRCIVobKEI0MBskQjpQMEo+ZUBsTVEhW0VUOWckTk5JJCQlUSE8GyhC?=
=?ISO-2022-JP?B?GyRCJUglSiE8JHIlOSVgITwlOiRLJDQ+UjJwQ1ckNyReJDkhIxsoQg==?=
Date: Wed, 19 Nov 2008 20:34:41 +0900
From: guojie350@163.com
X-Priority: 3
X-Mailer: Microsoft Outlook Express 6.00.2900.3138
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="iso-2022-jp"

━-━-━-━-━-━-━-━-━-━-━-━-━-━-━-━-━-━-━-━
食事やお酒など一緒に楽しめる友人関係~一夜限り又は定期的に


テストデータ2(data_2.txt)



From guojie350@163.com Wed Nov 19 20:36:14 2008
X-Original-To: ******@*********
Delivered-To: ******@*********
To: ******@*********
Subject: =?ISO-2022-JP?B?GyRCIVobKEI0MBskQjpQMEo+ZUBsTVEhW0VUOWckTk5JJCQlUSE8GyhC?=
=?ISO-2022-JP?B?GyRCJUglSiE8JHIlOSVgITwlOiRLJDQ+UjJwQ1ckNyReJDkhIxsoQg==?=
Date: Wed, 19 Nov 2008 20:34:41 +0900
From: SPAMMER GUY <guojie350@163.com>
X-Priority: 3
X-Mailer: Microsoft Outlook Express 6.00.2900.3138
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="iso-2022-jp"

━-━-━-━-━-━-━-━-━-━-━-━-━-━-━-━-━-━-━-━
食事やお酒など一緒に楽しめる友人関係~一夜限り又は定期的に


テストデータ3(data_3.txt)



From guojie350@163.com Wed Nov 19 20:36:14 2008
X-Original-To: ******@*********
Delivered-To: ******@*********
To: ******@*********
Subject: =?ISO-2022-JP?B?GyRCIVobKEI0MBskQjpQMEo+ZUBsTVEhW0VUOWckTk5JJCQlUSE8GyhC?=
=?ISO-2022-JP?B?GyRCJUglSiE8JHIlOSVgITwlOiRLJDQ+UjJwQ1ckNyReJDkhIxsoQg==?=
Date: Wed, 19 Nov 2008 20:34:41 +0900
From: <guojie350@163.com>
X-Priority: 3
X-Mailer: Microsoft Outlook Express 6.00.2900.3138
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="iso-2022-jp"

━-━-━-━-━-━-━-━-━-━-━-━-━-━-━-━-━-━-━-━
食事やお酒など一緒に楽しめる友人関係~一夜限り又は定期的に


上記3パターンのデータを実証用コードに食わせて、その出力をそれぞれ見てみると、以下のような結果となります。

結果



[yt@air Email-Filter]$ cat data_1.txt | ./test.pl
$VAR1 = 'guojie350@163.com';
[yt@air Email-Filter]$ cat data_2.txt | ./test.pl
$VAR1 = 'Spammer Guy <guojie350@163.com>';
[yt@air Email-Filter]$ cat data_3.txt | ./test.pl
$VAR1 = '<guojie350@163.com>';


上記より、[Perl]Email::FilterとかEmail::Simpleでheaderメソッド使ってFromを取得するときの注意でオイラが書いた内容は嘘っぱちであることが証明されましたorz

ごめんなさいごめんなさいごめんなさい><

0 件のコメント: