tmail 1.2.3.1 → 1.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. data/README +10 -0
  2. data/ext/tmailscanner/tmail/tmailscanner.c +39 -8
  3. data/lib/tmail.rb +1 -0
  4. data/lib/tmail/address.rb +6 -40
  5. data/lib/tmail/attachments.rb +41 -22
  6. data/lib/tmail/encode.rb +9 -0
  7. data/lib/tmail/header.rb +5 -3
  8. data/lib/tmail/interface.rb +40 -3
  9. data/lib/tmail/mail.rb +3 -3
  10. data/lib/tmail/mailbox.rb +3 -2
  11. data/lib/tmail/net.rb +3 -1
  12. data/lib/tmail/parser.rb +204 -620
  13. data/lib/tmail/parser.y +38 -3
  14. data/lib/tmail/quoting.rb +38 -1
  15. data/lib/tmail/utils.rb +28 -4
  16. data/lib/tmail/vendor/rchardet-1.3/COPYING +504 -0
  17. data/lib/tmail/vendor/rchardet-1.3/README +12 -0
  18. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet.rb +67 -0
  19. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/big5freq.rb +927 -0
  20. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/big5prober.rb +42 -0
  21. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/chardistribution.rb +237 -0
  22. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/charsetgroupprober.rb +112 -0
  23. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/charsetprober.rb +75 -0
  24. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/codingstatemachine.rb +64 -0
  25. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/constants.rb +42 -0
  26. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/escprober.rb +90 -0
  27. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/escsm.rb +244 -0
  28. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/eucjpprober.rb +88 -0
  29. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/euckrfreq.rb +596 -0
  30. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/euckrprober.rb +42 -0
  31. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/euctwfreq.rb +430 -0
  32. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/euctwprober.rb +42 -0
  33. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/gb2312freq.rb +474 -0
  34. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/gb2312prober.rb +42 -0
  35. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/hebrewprober.rb +289 -0
  36. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/jisfreq.rb +570 -0
  37. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/jpcntx.rb +229 -0
  38. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/langbulgarianmodel.rb +229 -0
  39. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/langcyrillicmodel.rb +330 -0
  40. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/langgreekmodel.rb +227 -0
  41. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/langhebrewmodel.rb +202 -0
  42. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/langhungarianmodel.rb +226 -0
  43. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/langthaimodel.rb +201 -0
  44. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/latin1prober.rb +147 -0
  45. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/mbcharsetprober.rb +89 -0
  46. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/mbcsgroupprober.rb +47 -0
  47. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/mbcssm.rb +542 -0
  48. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/sbcharsetprober.rb +124 -0
  49. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/sbcsgroupprober.rb +58 -0
  50. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/sjisprober.rb +88 -0
  51. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/universaldetector.rb +166 -0
  52. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/utf8prober.rb +87 -0
  53. data/lib/tmail/version.rb +1 -1
  54. data/setup.rb +2 -2
  55. data/test/fixtures/apple_unquoted_content_type +44 -0
  56. data/test/fixtures/inline_attachment.txt +2095 -0
  57. data/test/fixtures/iso_8859_1_email_without_encoding_and_message_id.txt +16 -0
  58. data/test/fixtures/mailbox.zip +0 -0
  59. data/test/fixtures/marked_as_iso_8859_1_but_it_is_utf_8.txt +33 -0
  60. data/test/fixtures/marked_as_utf_8_but_it_is_iso_8859_1.txt +56 -0
  61. data/test/fixtures/raw_email_bad_time +62 -0
  62. data/test/fixtures/raw_email_double_at_in_header +14 -0
  63. data/test/fixtures/raw_email_only_attachment +17 -0
  64. data/test/fixtures/raw_email_string_in_date_field +17 -0
  65. data/test/fixtures/raw_email_trailing_dot +21 -0
  66. data/test/fixtures/raw_email_with_quoted_attachment_filename +60 -0
  67. data/test/fixtures/raw_email_with_wrong_splitted_multibyte_encoded_word_subject +15 -0
  68. data/test/fixtures/the_only_part_is_a_word_document.txt +425 -0
  69. data/test/fixtures/unquoted_filename_in_attachment +177 -0
  70. data/test/test_address.rb +114 -92
  71. data/test/test_attachments.rb +84 -1
  72. data/test/test_encode.rb +54 -0
  73. data/test/test_header.rb +60 -2
  74. data/test/test_mail.rb +22 -15
  75. data/test/test_mbox.rb +12 -3
  76. data/test/test_port.rb +13 -9
  77. data/test/test_quote.rb +9 -0
  78. data/tmail.gemspec +34 -0
  79. metadata +68 -167
  80. data/MANIFEST +0 -191
  81. data/log/BugTrackingLog.txt +0 -1231
  82. data/log/Changelog.txt +0 -534
  83. data/log/Fixme.txt +0 -6
  84. data/log/Testlog.txt +0 -2340
  85. data/log/Todo.txt +0 -30
  86. data/log/fixme.rdoc +0 -6
  87. data/meta/MANIFEST +0 -128
  88. data/meta/VERSION +0 -1
  89. data/meta/project.yaml +0 -30
  90. data/meta/unixname +0 -1
  91. data/sample/bench_base64.rb +0 -48
  92. data/sample/data/multipart +0 -23
  93. data/sample/data/normal +0 -29
  94. data/sample/data/sendtest +0 -5
  95. data/sample/data/simple +0 -14
  96. data/sample/data/test +0 -27
  97. data/sample/extract-attachements.rb +0 -33
  98. data/sample/from-check.rb +0 -26
  99. data/sample/multipart.rb +0 -26
  100. data/sample/parse-bench.rb +0 -68
  101. data/sample/parse-test.rb +0 -19
  102. data/sample/sendmail.rb +0 -94
  103. data/site/contributing/index.html +0 -183
  104. data/site/css/clean.css +0 -27
  105. data/site/css/layout.css +0 -31
  106. data/site/css/style.css +0 -60
  107. data/site/download/index.html +0 -61
  108. data/site/img/envelope.jpg +0 -0
  109. data/site/img/mailman.gif +0 -0
  110. data/site/img/stamp-sm.jpg +0 -0
  111. data/site/img/stamp.jpg +0 -0
  112. data/site/img/stampborder.jpg +0 -0
  113. data/site/img/tfire.jpg +0 -0
  114. data/site/img/tmail.png +0 -0
  115. data/site/index.html +0 -270
  116. data/site/js/jquery.js +0 -31
  117. data/site/log/Changelog.xsl +0 -33
  118. data/site/log/changelog.xml +0 -1677
  119. data/site/outdated/BUGS +0 -3
  120. data/site/outdated/DEPENDS +0 -1
  121. data/site/outdated/Incompatibilities +0 -89
  122. data/site/outdated/Incompatibilities.ja +0 -102
  123. data/site/outdated/NEWS +0 -9
  124. data/site/outdated/README.ja +0 -73
  125. data/site/outdated/doc.ja/address.html +0 -275
  126. data/site/outdated/doc.ja/basics.html +0 -405
  127. data/site/outdated/doc.ja/config.html +0 -49
  128. data/site/outdated/doc.ja/details.html +0 -146
  129. data/site/outdated/doc.ja/index.html +0 -39
  130. data/site/outdated/doc.ja/mail.html +0 -793
  131. data/site/outdated/doc.ja/mailbox.html +0 -265
  132. data/site/outdated/doc.ja/port.html +0 -95
  133. data/site/outdated/doc.ja/tmail.html +0 -58
  134. data/site/outdated/doc.ja/usage.html +0 -202
  135. data/site/outdated/rdd/address.rrd.m +0 -229
  136. data/site/outdated/rdd/basics.rd.m +0 -275
  137. data/site/outdated/rdd/config.rrd.m +0 -26
  138. data/site/outdated/rdd/details.rd.m +0 -117
  139. data/site/outdated/rdd/index.rhtml.m +0 -54
  140. data/site/outdated/rdd/mail.rrd.m +0 -701
  141. data/site/outdated/rdd/mailbox.rrd.m +0 -228
  142. data/site/outdated/rdd/port.rrd.m +0 -69
  143. data/site/outdated/rdd/tmail.rrd.m +0 -33
  144. data/site/outdated/rdd/usage.rd.m +0 -247
  145. data/site/quickstart/index.html +0 -69
  146. data/site/quickstart/quickstart.html +0 -52
  147. data/site/quickstart/usage.html +0 -193
  148. data/site/reference/address.html +0 -247
  149. data/site/reference/config.html +0 -30
  150. data/site/reference/index.html +0 -101
  151. data/site/reference/mail.html +0 -726
  152. data/site/reference/mailbox.html +0 -245
  153. data/site/reference/port.html +0 -75
  154. data/site/reference/tmail.html +0 -35
  155. data/work/script/make +0 -26
  156. data/work/script/rdoc +0 -39
  157. data/work/script/setup +0 -1616
  158. data/work/script/test +0 -30
@@ -1,26 +0,0 @@
1
- = class TMail::Config
2
-
3
- == Class Methods
4
-
5
- : new(strict) -> TMail::Config
6
- strict: true | false
7
-
8
- j
9
- TMail::Config オブジェクトを生成します。strict が真の場合、
10
- 生成された Config オブジェクトのすべての strict_* フラグを
11
- オンにします。
12
- e
13
- create a TMail::Config object.
14
- set true to all strict_* attributes if STRICT is true.
15
- .
16
-
17
- == Instance Methods
18
-
19
- : strict_parse?
20
- j
21
- 真ならば TMail のパーサはヘッダパース中に発生した
22
- TMail::SyntaxError を返します。
23
- e
24
- If this flag is true, TMail's parsers may raise
25
- TMail::SyntaxError. If not, it never raises SynaxError.
26
- .
@@ -1,117 +0,0 @@
1
- e
2
- = Feature Details
3
- j
4
- = 仕様の詳細
5
- .
6
-
7
- e
8
- == Character Encodings
9
-
10
- I DO NOT support non-Japanese character encodings until
11
- ruby implements M17N functions. It's too complex for me.
12
-
13
- j
14
- == 文字コードの扱いについて
15
-
16
- === 入力
17
-
18
- 基本的には、パーサへの入力は RFC に沿って正しいエンコードが
19
- なされているものと想定しています。ですが現実にはそうでない
20
- メールも多いので、ある程度の規格外メールは許容しています。
21
- たとえば以下のようなヘッダは TMail のサポート対象です。
22
- (ただし $KCODE が適切にセットされていなければいけません)
23
- --
24
- To: 日本語 <aamine@loveruby.net>
25
- Content-Disposition: attached; filename=日本語.doc
26
- --
27
-
28
- また $KCODE=EUC/SJIS の場合は以下のようなヘッダもパース
29
- します。('日本語' は生の iso-2022-jp)
30
- --
31
- To: 日本語 <aamine@loveruby.net>
32
- To: "日本語" <aamine@loveruby.net>
33
- To: Minero Aoki <aamine@loveruby.net> (日本語)
34
- Content-Disposition: attached; filename=日本語.doc
35
- Content-Disposition: attached; filename="日本語.doc"
36
- --
37
- クオートやコメント内に EUC や SJIS、UTF8 を生で入れている
38
- ヘッダはあまりに邪悪すぎるのでサポートしません。
39
-
40
- いわゆる半角文字および機種依存文字はとりあえず考慮していません。
41
- が、近くない将来ならば多少はなんとかできるかもしれません。
42
-
43
- 日本語以外のエンコーディングには、M17N Ruby が安定版として
44
- リリースされるまでは対応しません。
45
-
46
- === デコード出力
47
-
48
- TMail の大部分のメソッドは特に断りがない限りデコードした
49
- 文字列を返します。文字列の中に日本語文字列が存在する場合は、
50
- $KCODE に従いエンコードを変換して返します。ただしサポート
51
- するのは $KCODE=EUC/SJIS の場合のみで、それ以外 (つまり NONE か UTF8)
52
- のときはエンコーディングは一切変換されません。
53
- Ruby 1.6 以降では $KCODE=NONE がデフォルトなので注意してください。
54
-
55
- === エンコード出力
56
-
57
- encoded メソッドを代表としたエンコード出力メソッドはすべて
58
- RFC 的に正しいエンコードを行います (と思います)。出力側で
59
- サポートする文字エンコーディングは iso-2022-jp、MIME エン
60
- コーディングは Base64/B のみです。これは将来に渡って変えません。
61
-
62
-
63
- e
64
- == Header Comments
65
-
66
- TMail discards ALL comments on converting HeaderField objects
67
- into strings, because I cannot preserve position of comments.
68
-
69
- j
70
- == コメント
71
-
72
- ヘッダにはコメントを含められます。たとえば以下のうち括弧で
73
- くくられた部分がコメントです。
74
- --
75
- To: aamine@loveruby.net (This is comment.)
76
- --
77
- TMail のパーサはコメントをパースしてヘッダオブジェクトの
78
- comments に格納しますが、再文字列化するときはすべて捨てる
79
- ようになっています。なぜかというと、メールヘッダのコメントは
80
- 本当にどこにでも置けるようになっているので、パースした後から
81
- ではコメントがどの場所にあったのか判断できないからです。
82
- たとえば以下のようなヘッダはよく見かけます。
83
- --
84
- Received: from mail.loveruby.net (mail.loveruby.net [192.168.1.1])
85
- by doraemon.edit.ne.jp (8.12.1/8.12.0) with ESMTP id g0CGj4bo035
86
- for <aamine@mx.edit.ne.jp>; Sun, 13 Jan 2002 01:45:05 +0900 (JST)
87
- --
88
- こういう場合、各コメントをどの要素に所属させるかは人間で
89
- なければ判断できません。ある程度ヒューリスティックにやることは
90
- 可能ですが、いったん外れたら完璧に失敗してしまうでしょう。
91
- 元のヘッダを再生できるように見せかけておいて時々失敗すると
92
- いうのはあまりに有害ですから、それよりは潔く全部捨てる、
93
- というのがいまのところの結論です。どうせコメントはコメントで
94
- あって本質には関係ないのですから、もうコメントに頼るのは
95
- やめましょう。
96
-
97
- 特に、アドレスフィールドにおいて本名をコメントに入れたりする
98
- のは最低です。ちゃんと文法的に名前を格納する場所があるのに、
99
- わざわざコメントを使う理由は全くありません。そういうヘッダ
100
- 設定をしている人はすぐにメーラか設定かどちらかを変えましょう。
101
-
102
- もっとも、大抵の場合にはこれで問題ないのですが、メールの内容を
103
- フィルタリングするような場合は致命傷になりえます。たとえば ML
104
- ドライバでは Subject を加工したりしたいでしょうから、次のような
105
- コードを書きたくなります。
106
- --
107
- mail = TMail::Mail.load(filename)
108
- mail.subject = "[my-list:#{number}] " + mail.subject
109
- mail.write_back
110
- --
111
- しかしこれではコメントが失われてしまいます。消えてもいい
112
- コメントもありますが、Received: のコメントなどは非常に
113
- 重要です。
114
-
115
- これを避けるには、ひとつの TMail::Mail オブジェクトは常に
116
- 情報取得か出力のどちらかだけに限定して使うことです。将来は
117
- もう少しいい方法を考えます。
@@ -1,54 +0,0 @@
1
- j
2
- <h1>TMail ユーザーマニュアル</h1>
3
- e
4
- <h1>TMail User Manual</h1>
5
- .
6
-
7
- <p>
8
- j
9
- バージョン 0.10 対応
10
- e
11
- for version 0.10
12
- .
13
- </p>
14
-
15
- <ul>
16
- j
17
- <li><a href="basics.html" >メールシステムの基礎 </a>
18
- <li><a href="usage.html" >TMail の基本 </a>
19
- <li><a href="details.html">仕様の詳細 </a>
20
- <li><a href="mail.html" >Mail クラスリファレンス </a>
21
- <li><a href="address.html">アドレスクラスリファレンス </a>
22
- <li><a href="mailbox.html">メールボックスクラスリファレンス </a>
23
- <li><a href="port.html" >ポートクラスリファレンス </a>
24
- <li><a href="config.html" >Config クラスリファレンス </a>
25
- <li><a href="tmail.html" >TMail モジュールリファレンス </a>
26
- <% if FileTest.exist?(destdir + '/BUGS') %>
27
- <li><a href="BUGS" >既知のバグ </a>
28
- <% end %>
29
- <% if FileTest.exist?(destdir + '/TODO') %>
30
- <li><a href="TODO" >ToDo </a>
31
- <% end %>
32
- <% if FileTest.exist?(destdir + '/ChangeLog') %>
33
- <li><a href="ChangeLog" >変更履歴 </a>
34
- <% end %>
35
- e
36
- <li><a href="usage.html" >Usage </a>
37
- <li><a href="details.html">Feature Details </a>
38
- <li><a href="mail.html" >Mail Message Class </a>
39
- <li><a href="address.html">Mail Address Classes </a>
40
- <li><a href="mailbox.html">Mailbox Classes </a>
41
- <li><a href="port.html" >Port and Stream Classes </a>
42
- <li><a href="config.html" >Config Class </a>
43
- <li><a href="tmail.html" >TMail Module </a>
44
- <% if FileTest.exist?(destdir + '/BUGS') %>
45
- <li><a href="BUGS" >Known Bugs </a>
46
- <% end %>
47
- <% if FileTest.exist?(destdir + '/TODO') %>
48
- <li><a href="TODO" >To Do List </a>
49
- <% end %>
50
- <% if FileTest.exist?(destdir + '/ChangeLog') %>
51
- <li><a href="ChangeLog" >Change Log </a>
52
- <% end %>
53
- .
54
- </ul>
@@ -1,701 +0,0 @@
1
- @nocode MH
2
- = class TMail::Mail
3
-
4
- == Class Methods
5
-
6
- : new(port = TMail::StringPort.new, config = DEFAULT_CONFIG) -> TMail::Mail
7
- port: TMail::Port
8
- config: TMail::Config
9
-
10
- j
11
- port から Mail オブジェクトを作成します。
12
- e
13
- creates a new 'TMail::Mail' object from PORT.
14
- .
15
-
16
- : load(filename) -> TMail::Mail
17
- filename: String
18
-
19
- j
20
- ファイル filename からメールをロードして Mail オブジェクトを作成します。
21
- ロードするファイルは MH のメールのようにメール一通がファイルひとつに
22
- 対応していなければいけません。
23
-
24
- ,UNIX mbox のような形式は単独では対応していません。
25
- <a href="mbox.html">メールボックスクラス</a>を使ってください。
26
- e
27
- creates a new 'TMail::Mail' object. FILENAME is the name of file
28
- which contains just one mail (e.g. MH mail file).
29
- .
30
-
31
- : parse(str) -> TMail::Mail
32
- str: String
33
-
34
- j
35
- 文字列 str をパースして TMail::Mail オブジェクトを作成します。
36
- str はメール一通分でなければいけません。
37
- e
38
- parses STR and creates a new 'TMail::Mail' object.
39
- .
40
-
41
- == Instance Methods
42
-
43
- : port -> TMail::Port
44
- j
45
- このメールオブジェクトの生成元のポートです。
46
- e
47
- the source port of this mail.
48
- .
49
-
50
- : body_port -> TMail::Port
51
- j
52
- メール本文を保存しているポートを返します。
53
-
54
- ただしここに書きこんでもロード元のファイル(や文字列)は変更されません。
55
- 実際に変更するためにはこのポートに書きこんだ後 #write_back を呼ぶ
56
- 必要があります。
57
- e
58
- the port to save body of this mail.
59
- .
60
-
61
- : each {|line| .... }
62
- line: String
63
-
64
- j
65
- 本文文字列の各行に対する繰り返し。
66
- body_port.ropen {|f| f.each } と同じです。
67
- e
68
- iterates for each lines of mail body.
69
- .
70
-
71
- : body -> String
72
- : preamble -> String
73
- j
74
- メールボディ(本文)全てを文字列として返します。
75
- MIME マルチパートメールのときは preamble に相当します。
76
- この返り値を変更してもオリジナルは変更されません。
77
- e
78
- the mail body. If the mail is a MIME multipart mail,
79
- this attribute represents "preamble".
80
- .
81
-
82
- : parts -> [TMail::Mail]
83
- j
84
- メールが MIME マルチパートメールの時、各パートが TMail::Mail の配列として
85
- 格納されています。マルチパートメールでないときは空の配列です。
86
-
87
- ただしここに書きこんでもロード元のファイル(や文字列)は変更されません。
88
- 実際に変更するためにはこのオブジェクトに書きこんだあと #write_back を
89
- 呼ぶ必要があります。
90
- e
91
- parts of this mail. (valid only if this mail is a MIME multipart mail)
92
- .
93
-
94
- : epilogue -> String
95
- j
96
- MIME マルチパートメールでの epilogue に相当する文字列です。
97
- 通常のメールのときは空文字列が入っています。
98
-
99
- ただしここに書きこんでもロード元のファイル(や文字列)は変更されません。
100
- 実際に変更するためには書きこんだ後 #write_back を呼ぶ必要があります。
101
- e
102
- If the mail was MIME multipart mail, this represent "epilogue" string.
103
- Else, empty string.
104
- .
105
-
106
- : multipart?
107
- j
108
- メールが MIME マルチパートのとき真。
109
- このメソッドは Content-Type ヘッダの内容で真偽を判断します。
110
- e
111
- true if the message is a multi-part mail.
112
- .
113
-
114
- : encoded(eol = "\n", encoding = 'j') -> String
115
- eol: String
116
- encoding: String
117
-
118
- j
119
- メールを RFC2822 形式にエンコードした文字列に変換します。
120
- その際、ヘッダの行末コードを eol に、ヘッダ内のエンコード前の
121
- 日本語文字列の文字コードを encoding に変換します。
122
- ただし現在 encoding は "j" (JIS) しか正常に動作しません。
123
-
124
- バージョン 0.9 からは #to_s は #decoded の別名になったので、この
125
- メソッドとは違うはたらきをします。
126
- e
127
- converts the mail object to a MIME encoded string.
128
- .
129
-
130
- : decoded(eol = "\n", encoding = 'e') -> String
131
- : to_s(eol = "\n", encoding = 'e') -> String
132
- eol: String
133
- encoding: String
134
-
135
- j
136
- メールをデコードされた文字列に変換します。その際、ヘッダの行末
137
- コードを eol に、ヘッダ内のエンコード前の日本語文字列の文字コードを
138
- encoding に変換します。
139
-
140
- バージョン 0.9 以降は #to_s はこのメソッドの別名になりました。
141
- e
142
- converts the mail object to a decoded string.
143
- .
144
-
145
- : inspect -> String
146
- j
147
- 以前は #decoded の別名でしたがバージョン 0.9 からは
148
- "#<TMail::Mail port=<StringPort:str=...>>"
149
- のような簡潔な文字列化を行います。
150
- e
151
- returns simple string representation like
152
- '"#<TMail::Mail port=<StringPort:str=...>>"'
153
- .
154
-
155
- : write_back(eol = "\n", encoding = 'e')
156
- eol: String
157
- encoding: String
158
-
159
- j
160
- メール全体を文字列化し body_port に書き戻します。その際、ヘッダの
161
- 行末コードを eol に、ヘッダ内の日本語文字列の文字コードを encoding に
162
- 変換します。
163
- e
164
- converts this mail into string and write back to 'body_port',
165
- setting line terminator to EOL.
166
- .
167
-
168
- j
169
- === 属性アクセスのためのメソッド
170
- e
171
- === Property Access Method
172
- .
173
-
174
- : date(default = nil) -> Time
175
- : date=(datetime)
176
- datetime: Time
177
- default: Object
178
-
179
- j
180
- Date: ヘッダに対応する Time オブジェクト。
181
- 常にローカルタイムに変換されます。
182
- e
183
- a Time object of Date: header field.
184
- .
185
-
186
- : strftime(format, default = nil) -> String
187
- format: String
188
- default: Object
189
-
190
- j
191
- Date: ヘッダに表現された時刻と対応する Time オブジェクトに対し
192
- strftime を呼びます。Date: ヘッダが存在しない場合は default を
193
- 返します。
194
- e
195
- is equals to 'date.strftime(format)'.
196
- If date is not exist, this method does nothing and
197
- returns DEFAULT.
198
- .
199
-
200
- : to(default = nil) -> [String]
201
- : to=(specs)
202
- specs: String | [String]
203
- default: Object
204
-
205
- j
206
- To: アドレスの spec の配列。
207
- e
208
- address specs for To: header field.
209
- .
210
-
211
- : to_addrs(default = nil) -> [TMail::Address | TMail::AddressGroup]
212
- : to_addrs=(addrs)
213
- addrs: TMail::Address | [TMail::Address]
214
- default: Object
215
-
216
- j
217
- To: アドレスの配列。
218
- e
219
- adresses which is represented in To: header field.
220
- .
221
-
222
- : cc(default = nil) -> [String]
223
- : cc=(specs)
224
- specs: String | [String]
225
- default: Object
226
-
227
- j
228
- Cc: アドレスの spec の配列。
229
- e
230
- address specs for Cc: header field.
231
- .
232
-
233
- : cc_addrs(default = nil) -> [TMail::Address]
234
- : cc_addrs=(addrs)
235
- addrs: TMail::Address | [TMail::Address]
236
- default: Object
237
-
238
- j
239
- Cc: アドレスの配列。
240
- e
241
- addresses which is represented in Cc: header field.
242
- .
243
-
244
- : bcc(default = nil) -> [String]
245
- : bcc=(specs)
246
- specs: String | [String]
247
- default: Object
248
-
249
- j
250
- Bcc: アドレスの spec の配列。
251
- e
252
- address specs for Bcc: header field.
253
- .
254
-
255
- : bcc_addrs(default = nil) -> [TMail::Address]
256
- : bcc_addrs=(addrs)
257
- addrs: TMail::Address | [TMail::Address]
258
- default: Object
259
-
260
- j
261
- Bcc: アドレスの配列。
262
- e
263
- adresses which is represented in Bcc: header field.
264
- .
265
-
266
- : from(default = nil) -> [String]
267
- : from=(specs)
268
- specs: String | [String]
269
- default: Object
270
-
271
- j
272
- From: アドレスの spec の配列。
273
- e
274
- address specs for From: header field.
275
- .
276
-
277
- : from_addrs(default = nil) -> [TMail::Address]
278
- : from_addrs=(addrs)
279
- addrs: TMail::Address | [TMail::Address]
280
- default: Object
281
-
282
- j
283
- From: アドレスの配列。
284
- e
285
- adresses which is represented in From: header field.
286
- .
287
-
288
- : friendly_from(default = nil) -> String
289
- default: Object
290
-
291
- j
292
- From: の最初のアドレスの phrase または spec。
293
- From: が存在しないときは default を返します。
294
- e
295
- a "phrase" part or address spec of the first From: address.
296
- .
297
-
298
- : reply_to(default = nil) -> [String]
299
- : reply_to=(specs)
300
- specs: String | [String]
301
- default: Object
302
-
303
- j
304
- Reply-To: アドレスの spec の配列。
305
- e
306
- address specs of Reply-To: header field.
307
- .
308
-
309
- : reply_to_addrs(default = nil) -> [TMail::Address]
310
- : reply_to_addrs=(addrs)
311
- addrs: TMail::Address | [TMail::Address]
312
- default: Object
313
-
314
- j
315
- Reply-To: アドレスの配列。
316
- e
317
- adresses which is represented in Reply-To: header field.
318
- .
319
-
320
- : sender(default = nil) -> String
321
- : sender=(spec)
322
- spec: String
323
-
324
- j
325
- Sender: アドレスの spec
326
- e
327
- address spec for Sender: header field.
328
- .
329
-
330
- : sender_addr(default = nil) -> TMail::Address
331
- : sender_addr=(addr)
332
- addr: TMail::Address
333
-
334
- j
335
- Sender: アドレス
336
- e
337
- an address which is represented in Sender: header field.
338
- .
339
-
340
- : subject(default = nil) -> String
341
- : subject=(sbj)
342
- sbj: String
343
-
344
- j
345
- Subject: の内容。
346
- Subject: が存在しないときは default を返します。
347
- e
348
- the subject of the message.
349
- .
350
-
351
- : message_id(default = nil) -> String
352
- : message_id=(id)
353
- id: String
354
-
355
- j
356
- メールのメッセージ ID。
357
- e
358
- message ID string.
359
- .
360
-
361
- : in_reply_to(default = nil) -> [String]
362
- : in_reply_to=(ids)
363
- ids: String | [String]
364
-
365
- j
366
- In-Reply-To: に含まれるメッセージ ID のリスト。
367
- e
368
- message IDs of replying mails.
369
- .
370
-
371
- : references(default = nil) -> [String]
372
- : references=(ids)
373
- ids: String | [String]
374
-
375
- j
376
- References: に含まれるメッセージ ID のリスト。
377
- 現在は References: にはメッセージ ID 以外は
378
- 含められません。(RFC2822)
379
- e
380
- message IDs of all referencing (replying) mails.
381
- .
382
-
383
- : mime_version(default = nil) -> String
384
- : mime_version=(ver)
385
- ver: String
386
-
387
- j
388
- MIME バージョン。現在は常に "1.0" です。
389
- ヘッダが存在しない場合は default を返します。
390
- e
391
- MIME version.
392
- If it does not exist, returns the DEFAULT.
393
- .
394
-
395
- : set_mime_version(major, minor)
396
- major: Integer
397
- minor: Integer
398
-
399
- j
400
- MIME バージョンをセットします。
401
- e
402
- set MIME version from integers.
403
- .
404
-
405
- : content_type(default = nil) -> String
406
- j
407
- メール本体のファイルタイプを示す文字列。例えば "text/plain"。
408
- ヘッダが存在しない場合は default を返します。
409
- e
410
- the content type of the mail message (e.g. "text/plain").
411
- If it does not exist, returns the DEFAULT.
412
- .
413
-
414
- : main_type(default = nil) -> String
415
- j
416
- メール本体のメインタイプ (例:"text")。
417
- 常に小文字に統一されます。
418
- ヘッダが存在しない場合は default を返します。
419
- e
420
- the main content type of the mail message. (e.g. "text")
421
- If it does not exist, returns the DEFAULT.
422
- .
423
-
424
- : sub_type(default = nil) -> String
425
- j
426
- メール本体のサブタイプ (例:"plain")。
427
- 常に小文字に統一されます。
428
- ヘッダが存在しない場合は default を返します。
429
- e
430
- the sub content type of the mail message. (e.g. "plain")
431
- If it does not exist, returns the DEFAULT.
432
- .
433
-
434
- : content_type=(ctype)
435
- ctype: String
436
-
437
- j
438
- Content-Type のメインタイプ・サブタイプを main_sub からセット
439
- します。main_sub は例えば "text/plain" のような形式でなければ
440
- いけません。
441
- e
442
- set content type to STR.
443
- .
444
-
445
- : set_content_type(main, sub, params = nil)
446
- main: String
447
- sub: String
448
- params: {String => String}
449
-
450
- j
451
- コンテントタイプを main/sub; param; param; ... のように設定します。
452
- e
453
- set Content-type: header as "main/sub; param=val; param=val; ...".
454
- .
455
-
456
- : type_param(name, default = nil) -> String
457
- name: String
458
-
459
- j
460
- Content-Type の name パラメータの値を返します。
461
- name に対応する値やヘッダそのものが存在しない場合は default を
462
- 返します。
463
- e
464
- returns the value corresponding to the case-insensitive
465
- NAME of Content-Type parameter.
466
- If it does not exist, returns the DEFAULT.
467
- .
468
- --
469
- # example
470
- mail['Content-Type'] = 'text/plain; charset=iso-2022-jp'
471
- p mail.type_param('charset') # "iso-2022-jp"
472
- --
473
-
474
- : multipart? -> true | false
475
- j
476
- Content-Type が MIME マルチパートメールであることを
477
- 示す内容ならば真。
478
- e
479
- judge if this mail is MIME multi part mail,
480
- by inspecting Content-Type: header field.
481
- .
482
-
483
- : transfer_encoding(default = nil) -> String
484
- : transfer_encoding=(encoding)
485
- encoding: String
486
- j
487
- 転送時に適用したエンコーディング (Content-Transfer-Encoding)。
488
- '7bit' '8bit' 'Base64' 'Binary' など。
489
- e
490
- Content-Transfer-Encoding. (e.g. "7bit" "Base64")
491
- .
492
-
493
- : disposition(default = nil) -> String
494
- : disposition=(pos)
495
- pos: String
496
-
497
- j
498
- Content-Disposition の主値 (文字列)。返り値は常に小文字に統一されます。
499
- name に対応する値やヘッダそのものが存在しない場合は default を
500
- 返します。
501
- e
502
- Content-Disposition main value (e.g. "attachment").
503
- If it does not exist, returns the DEFAULT.
504
- .
505
- --
506
- # example
507
- mail['Content-Disposition'] = 'attachement; filename="test.rb"'
508
- p mail.disposition # "attachment"
509
- --
510
-
511
- : set_content_disposition(pos, params = nil)
512
- pos: String
513
- params: {String => String}
514
-
515
- j
516
- disposition 文字列とパラメータのハッシュから Content-Disposition を
517
- セットします。
518
- e
519
- set content disposition.
520
- .
521
-
522
- : disposition_param(key, default = nil) -> String
523
- key: String
524
-
525
- j
526
- Content-Disposition の付加パラメータの name の値を取得します。
527
- name に対応する値やヘッダそのものが存在しない場合は default を
528
- 返します。
529
- e
530
- returns a value corresponding to the Content-Disposition
531
- parameter NAME (e.g. filename).
532
- If it does not exist, returns the DEFAULT.
533
- .
534
- --
535
- # example
536
- mail.disposition_param('filename')
537
- --
538
-
539
- : destinations(default = nil) -> [String]
540
- j
541
- To、Cc、Bcc すべてのアドレススペック文字列の配列を
542
- 返します。ひとつも存在しなければ default を返します。
543
- e
544
- all address specs which are contained in To:, Cc: and
545
- Bcc: header fields.
546
- .
547
-
548
- : reply_addresses(default = nil) -> [TMail::Address]
549
- j
550
- 返信すべきアドレスを判断し、Address オブジェクトの
551
- 配列で返します。返信すべきアドレスがみつからなければ
552
- DEFAULT を返します。
553
- e
554
- addresses to we reply to.
555
- .
556
-
557
- : error_reply_addresses(default = nil) -> [TMail::Address]
558
- j
559
- エラーメールを返送すべきアドレスを判断し、Address オブジェクトの
560
- 配列で返します。返送すべきアドレスがみつからなければ default を返します。
561
- e
562
- addresses to use when returning error message.
563
- .
564
-
565
- j
566
- === ヘッダフィールド直接操作用メソッド
567
- e
568
- === Direct Header Handling Methods
569
- .
570
-
571
- : clear
572
- j
573
- ヘッダを全て消去します。
574
- e
575
- clears all header.
576
- .
577
-
578
- : keys -> [TMail::HeaderField]
579
- j
580
- ヘッダ名の配列を返します。
581
- e
582
- returns an array of contained header names.
583
- .
584
-
585
- : [](name) -> TMail::HeaderField
586
- name: String
587
-
588
- j
589
- ヘッダ名からヘッダオブジェクトを返します。
590
- e
591
- returns a header field object corresponding to the case-insensitive
592
- key NAME. e.g. mail["To"]
593
- .
594
-
595
- : []=(name, field)
596
- name: String
597
- field: TMail::HeaderField
598
-
599
- j
600
- name ヘッダに field を設定します。field は文字列か TMail::HeaderField オブジェクトです。
601
- Received など一部のヘッダに対してはさらにその配列も与えることができます。
602
- e
603
- set NAME header field to FIELD.
604
- .
605
-
606
- : delete(name)
607
- name: String
608
- j
609
- name ヘッダを消します。
610
- e
611
- deletes header corresponding to case-insensitive key NAME.
612
- .
613
-
614
- : delete_if {|name, field| .... }
615
- name: String
616
- field: TMail::HeaderField
617
-
618
- j
619
- ヘッダ名とヘッダを与えてブロックを評価し、真ならその関連づけを消します。
620
- e
621
- evaluates block with a name of header and header field object,
622
- and delete the header if block returns true.
623
- .
624
-
625
- : each_header {|name, field| .... }
626
- : each_pair {|name, field| .... }
627
- name: String
628
- field: TMail::HeaderField
629
-
630
- j
631
- 全てのヘッダ名とヘッダオブジェクトに対するくりかえし。
632
- e
633
- iterates for each header name and its field object.
634
- .
635
-
636
- : each_header_name {|name| .... }
637
- : each_key {|name| .... }
638
- name: String
639
-
640
- j
641
- 全てのヘッダ名に対するくりかえし。
642
- e
643
- iterates for each contained header names.
644
- .
645
-
646
- : each_field {|field| .... }
647
- : each_value {|field| .... }
648
- field: TMail::HeaderField
649
-
650
- j
651
- 全てのヘッダオブジェクトに対するくりかえし。
652
- e
653
- iterates for each header field objects.
654
-
655
- : orderd_each {|name, field| .... }
656
- name: String
657
- field: TMail::HeaderField
658
-
659
- j
660
- ヘッダの順序指定付きの each_header です。最初に指定したものが指定した
661
- 順番で並び、その他のヘッダがランダムに続きます。順序は文字列の配列
662
- TMail::Mail::FIELD_ORDER で設定してください(詳細はソースコードを参照)。
663
- e
664
- iterates for each header field objects, in canonical order.
665
- .
666
-
667
- : key?(name)
668
- name: String
669
-
670
- j
671
- name ヘッダがあれば真。
672
- e
673
- returns true if the mail has NAME header.
674
- .
675
-
676
- : value?(field)
677
- field: TMail::HeaderField
678
-
679
- j
680
- field ヘッダオブジェクトがあれば真。
681
- e
682
- returns true if the mail has FIELD header field object.
683
- .
684
-
685
- : values_at(*names) -> [TMail::HeaderField]
686
- : indexes(*names) -> [TMail::HeaderField]
687
- : indices(*names) -> [TMail::HeaderField]
688
- names: [String]
689
-
690
- j
691
- 全ての names について fetch した結果の配列を返します。
692
- e
693
- equals to 'names.collect {|k| mail[k] }'.
694
- .
695
-
696
- : values -> [TMail::HeaderField]
697
- j
698
- 登録されている全てのヘッダオブジェクトの配列を返します。
699
- e
700
- returns an array of all header field object.
701
- .