オープンソース・ソフトウェアの開発とダウンロード

CVS リポジトリの参照

Contents of /perldocjp/docs/modules/MIME-Explode-0.09/Explode.pod

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.2 - (show annotations) (download)
Thu Jan 27 13:14:57 2011 UTC (13 years, 3 months ago) by iwai
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +3 -0 lines
add encoding tag

1
2 =encoding euc-jp
3
4 =head1 名前
5
6 MIME::Explode - MIMEメッセージを解体するためのPerl拡張
7
8 =head1 概要
9
10 use MIME::Explode;
11
12 my $explode = MIME::Explode->new(
13 output_dir => "tmp",
14 mkdir => 0755,
15 decode_subject => 1,
16 check_content_type => 1,
17 exclude_types => ["image/gif", "image/jpeg", "image/png"],
18 );
19
20 print "Number of messages: ", $explode->nmsgs, "\n";
21
22 open(MAIL, "<file.mbox") or
23 die("Couldn't open file.mbox for reading: $!\n");
24 open(OUTPUT, ">file.tmp")
25 or die("Couldn't open file.tmp for writing: $!\n");
26 my $headers = $explode->parse(\*MAIL, \*OUTPUT);
27 close(OUTPUT);
28 close(MAIL);
29
30 for my $part (sort{ $a cmp $b } keys(%{$headers})) {
31 for my $k (keys(%{$headers->{$part}})) {
32 if(ref($headers->{$part}->{$k}) eq "ARRAY") {
33 for my $i (0 .. $#{$headers->{$part}->{$k}}) {
34 print "$part => $k => $i => ", $headers->{$part}->{$k}->[$i], "\n";
35 }
36 } elsif(ref($headers->{$part}->{$k}) eq "HASH") {
37 for my $ks (keys(%{$headers->{$part}->{$k}})) {
38 if(ref($headers->{$part}->{$k}->{$ks}) eq "ARRAY") {
39 print "$part => $k => $ks => ", join(($ks eq "charset") ? " " : "", @{$headers->{$part}->{$k}->{$ks}}), "\n";
40 } else {
41 print "$part => $k => $ks => ", $headers->{$part}->{$k}->{$ks}, "\n";
42 }
43 print "$part => $k => $ks => ", $headers->{$part}->{$k}->{$ks}, "\n";
44 }
45 } else {
46 print "$part => $k => ", $headers->{$part}->{$k}, "\n";
47 }
48 }
49 }
50
51 =head1 説明
52
53 MIME::ExplodeはシングルあるいはマルチパートのMIMEメッセージを
54 解析、デーコードし、そのデコードされた構成物を与えられたディレクトリに
55 出力するためのモジュールです。
56 つまりこのモジュールは、ユーザーがMIMEでエンコードされたeメール・
57 メッセージやメールボックスの添付ファイルを取り出すことを可能にします。
58
59 =head1 メソッド
60
61 =head2 new([, OPTION ...])
62
63 このメソッドは新しいMIME::Explodeオブジェクトを作成します。以下のキーを
64 利用することができます:
65
66 =over 5
67
68 =item output_dir
69
70 デコードされたファイルが置かれるディレクトリ
71
72 =item mkdir => octal_number
73
74 値に8進数の数字が設定されていれば、output_dirディレクトリを作成します。
75 (例: mkdir => 0755).
76
77 =item check_content_type => 0 あるいは 1
78
79 値が1に設定されると、ファイルのcontent-typeがチェックされます。
80
81 =item decode_subject => 0 あるいは 1
82
83 値が1に設定されると、件名がリストにデコードされます。
84
85 $header->{'0.0'}->{subject}->{value} = [ARRAYREF];
86 $header->{'0.0'}->{subject}->{charset} = [ARRAYREF];
87 $subject = join("", @{$header->{'0.0'}->{subject}->{value}});
88
89 =item exclude_types => [ARRAYREF]
90
91 指定されたcontent-typeのファイルを保存しません。
92
93 =back
94
95 =head2 parse(FILEHANDLE, FILEHANDLE)
96
97 このメソッドはストリムを解析し、それを構成している要素に分割します。
98 このメソッドは全ての部品を持ったハッシュ・リファレンスを返します。
99 FILEHANDLEはBLOBへのリファレンスでなければなりません。
100 2番目の引数はオプションです。
101
102
103 =head2 nmsgs()
104
105 解析されたメッセージの数を返します。
106
107 =head1 作者
108
109 Henrique Dias <hdias@esb.ucp.pt>
110
111 =head1 参考資料
112
113 MIME::Tools, perl(1).
114
115 =head1 翻訳者
116
117 川合孝典 (kwitknr@cpan.org)

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26