ledermann-tmail 1.2.5

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 (164) hide show
  1. data/CHANGES +74 -0
  2. data/LICENSE +21 -0
  3. data/NOTES +7 -0
  4. data/README +179 -0
  5. data/Rakefile +2 -0
  6. data/ext/Makefile +20 -0
  7. data/ext/tmailscanner/tmail/MANIFEST +4 -0
  8. data/ext/tmailscanner/tmail/depend +1 -0
  9. data/ext/tmailscanner/tmail/extconf.rb +33 -0
  10. data/ext/tmailscanner/tmail/tmailscanner.c +614 -0
  11. data/lib/tmail.rb +6 -0
  12. data/lib/tmail/Makefile +18 -0
  13. data/lib/tmail/address.rb +392 -0
  14. data/lib/tmail/attachments.rb +65 -0
  15. data/lib/tmail/base64.rb +46 -0
  16. data/lib/tmail/compat.rb +41 -0
  17. data/lib/tmail/config.rb +67 -0
  18. data/lib/tmail/core_extensions.rb +63 -0
  19. data/lib/tmail/encode.rb +590 -0
  20. data/lib/tmail/header.rb +962 -0
  21. data/lib/tmail/index.rb +9 -0
  22. data/lib/tmail/interface.rb +1162 -0
  23. data/lib/tmail/loader.rb +3 -0
  24. data/lib/tmail/mail.rb +578 -0
  25. data/lib/tmail/mailbox.rb +496 -0
  26. data/lib/tmail/main.rb +6 -0
  27. data/lib/tmail/mbox.rb +3 -0
  28. data/lib/tmail/net.rb +250 -0
  29. data/lib/tmail/obsolete.rb +132 -0
  30. data/lib/tmail/parser.rb +1060 -0
  31. data/lib/tmail/parser.y +416 -0
  32. data/lib/tmail/port.rb +379 -0
  33. data/lib/tmail/quoting.rb +155 -0
  34. data/lib/tmail/require_arch.rb +58 -0
  35. data/lib/tmail/scanner.rb +49 -0
  36. data/lib/tmail/scanner_r.rb +261 -0
  37. data/lib/tmail/stringio.rb +280 -0
  38. data/lib/tmail/utils.rb +361 -0
  39. data/lib/tmail/version.rb +39 -0
  40. data/log/BugTrackingLog.txt +1245 -0
  41. data/log/Changelog.txt +534 -0
  42. data/log/Testlog.txt +2340 -0
  43. data/log/Todo.txt +30 -0
  44. data/meta/MANIFEST +128 -0
  45. data/meta/VERSION +1 -0
  46. data/meta/project.yaml +30 -0
  47. data/meta/unixname +1 -0
  48. data/sample/bench_base64.rb +48 -0
  49. data/sample/data/multipart +23 -0
  50. data/sample/data/normal +29 -0
  51. data/sample/data/sendtest +5 -0
  52. data/sample/data/simple +14 -0
  53. data/sample/data/test +27 -0
  54. data/sample/extract-attachements.rb +33 -0
  55. data/sample/from-check.rb +26 -0
  56. data/sample/multipart.rb +26 -0
  57. data/sample/parse-bench.rb +68 -0
  58. data/sample/parse-test.rb +19 -0
  59. data/sample/sendmail.rb +94 -0
  60. data/setup.rb +1482 -0
  61. data/site/contributing/index.html +183 -0
  62. data/site/css/clean.css +27 -0
  63. data/site/css/layout.css +31 -0
  64. data/site/css/style.css +60 -0
  65. data/site/download/index.html +61 -0
  66. data/site/img/envelope.jpg +0 -0
  67. data/site/img/mailman.gif +0 -0
  68. data/site/img/stamp-sm.jpg +0 -0
  69. data/site/img/stamp.jpg +0 -0
  70. data/site/img/stampborder.jpg +0 -0
  71. data/site/img/tfire.jpg +0 -0
  72. data/site/img/tmail.png +0 -0
  73. data/site/index.html +272 -0
  74. data/site/js/jquery.js +31 -0
  75. data/site/log/Changelog.xsl +33 -0
  76. data/site/log/changelog.xml +1677 -0
  77. data/site/outdated/BUGS +3 -0
  78. data/site/outdated/DEPENDS +1 -0
  79. data/site/outdated/Incompatibilities +89 -0
  80. data/site/outdated/Incompatibilities.ja +102 -0
  81. data/site/outdated/NEWS +9 -0
  82. data/site/outdated/README.ja +73 -0
  83. data/site/outdated/doc.ja/address.html +275 -0
  84. data/site/outdated/doc.ja/basics.html +405 -0
  85. data/site/outdated/doc.ja/config.html +49 -0
  86. data/site/outdated/doc.ja/details.html +146 -0
  87. data/site/outdated/doc.ja/index.html +39 -0
  88. data/site/outdated/doc.ja/mail.html +793 -0
  89. data/site/outdated/doc.ja/mailbox.html +265 -0
  90. data/site/outdated/doc.ja/port.html +95 -0
  91. data/site/outdated/doc.ja/tmail.html +58 -0
  92. data/site/outdated/doc.ja/usage.html +202 -0
  93. data/site/outdated/rdd/address.rrd.m +229 -0
  94. data/site/outdated/rdd/basics.rd.m +275 -0
  95. data/site/outdated/rdd/config.rrd.m +26 -0
  96. data/site/outdated/rdd/details.rd.m +117 -0
  97. data/site/outdated/rdd/index.rhtml.m +54 -0
  98. data/site/outdated/rdd/mail.rrd.m +701 -0
  99. data/site/outdated/rdd/mailbox.rrd.m +228 -0
  100. data/site/outdated/rdd/port.rrd.m +69 -0
  101. data/site/outdated/rdd/tmail.rrd.m +33 -0
  102. data/site/outdated/rdd/usage.rd.m +247 -0
  103. data/site/quickstart/index.html +69 -0
  104. data/site/quickstart/quickstart.html +52 -0
  105. data/site/quickstart/usage.html +193 -0
  106. data/site/reference/address.html +247 -0
  107. data/site/reference/config.html +30 -0
  108. data/site/reference/index.html +101 -0
  109. data/site/reference/mail.html +726 -0
  110. data/site/reference/mailbox.html +245 -0
  111. data/site/reference/port.html +75 -0
  112. data/site/reference/tmail.html +35 -0
  113. data/test/extctrl.rb +6 -0
  114. data/test/fixtures/mailbox +414 -0
  115. data/test/fixtures/mailbox_without_any_from_or_sender +10 -0
  116. data/test/fixtures/mailbox_without_from +11 -0
  117. data/test/fixtures/mailbox_without_return_path +12 -0
  118. data/test/fixtures/raw_attack_email_with_zero_length_whitespace +29 -0
  119. data/test/fixtures/raw_base64_decoded_string +0 -0
  120. data/test/fixtures/raw_base64_email +83 -0
  121. data/test/fixtures/raw_base64_encoded_string +1 -0
  122. data/test/fixtures/raw_email +14 -0
  123. data/test/fixtures/raw_email10 +20 -0
  124. data/test/fixtures/raw_email11 +34 -0
  125. data/test/fixtures/raw_email12 +32 -0
  126. data/test/fixtures/raw_email13 +29 -0
  127. data/test/fixtures/raw_email2 +114 -0
  128. data/test/fixtures/raw_email3 +70 -0
  129. data/test/fixtures/raw_email4 +59 -0
  130. data/test/fixtures/raw_email5 +19 -0
  131. data/test/fixtures/raw_email6 +20 -0
  132. data/test/fixtures/raw_email7 +66 -0
  133. data/test/fixtures/raw_email8 +47 -0
  134. data/test/fixtures/raw_email9 +28 -0
  135. data/test/fixtures/raw_email_multiple_from +30 -0
  136. data/test/fixtures/raw_email_quoted_with_0d0a +14 -0
  137. data/test/fixtures/raw_email_reply +32 -0
  138. data/test/fixtures/raw_email_simple +11 -0
  139. data/test/fixtures/raw_email_with_bad_date +48 -0
  140. data/test/fixtures/raw_email_with_illegal_boundary +58 -0
  141. data/test/fixtures/raw_email_with_mimepart_without_content_type +94 -0
  142. data/test/fixtures/raw_email_with_multipart_mixed_quoted_boundary +50 -0
  143. data/test/fixtures/raw_email_with_nested_attachment +100 -0
  144. data/test/fixtures/raw_email_with_partially_quoted_subject +14 -0
  145. data/test/fixtures/raw_email_with_quoted_illegal_boundary +58 -0
  146. data/test/kcode.rb +14 -0
  147. data/test/temp_test_one.rb +46 -0
  148. data/test/test_address.rb +1216 -0
  149. data/test/test_attachments.rb +131 -0
  150. data/test/test_base64.rb +64 -0
  151. data/test/test_encode.rb +139 -0
  152. data/test/test_header.rb +1021 -0
  153. data/test/test_helper.rb +9 -0
  154. data/test/test_mail.rb +756 -0
  155. data/test/test_mbox.rb +184 -0
  156. data/test/test_port.rb +440 -0
  157. data/test/test_quote.rb +107 -0
  158. data/test/test_scanner.rb +209 -0
  159. data/test/test_utils.rb +36 -0
  160. data/work/script/make +26 -0
  161. data/work/script/rdoc +39 -0
  162. data/work/script/setup +1616 -0
  163. data/work/script/test +30 -0
  164. metadata +297 -0
@@ -0,0 +1,183 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html lang="en">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=utf8">
5
+ <meta http-equiv="Content-Language" content="en">
6
+
7
+ <link rel="stylesheet" href="../css/clean.css" type="text/css" media="screen, projection, print"/>
8
+ <link rel="stylesheet" href="../css/layout.css" type="text/css" media="screen, projection, print"/>
9
+ <link rel="stylesheet" href="../css/style.css" type="text/css" media="screen, projection, print"/>
10
+
11
+ <link rel="icon" href="../img/tfire.jpg" type="image/x-icon"/>
12
+
13
+ <title>TMail &mdash; Contributing to the best Ruby email handler ever!</title>
14
+
15
+ <script type="text/javascript" src="../js/jquery.js"></script>
16
+
17
+ </head>
18
+ <body>
19
+ <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
20
+ </script>
21
+ <script type="text/javascript">
22
+ _uacct = "UA-2871747-1";
23
+ urchinTracker();
24
+ </script>
25
+
26
+ <div class="container">
27
+
28
+ <div class="logo">
29
+ <img src="../img/stamp-sm.jpg"/>
30
+ </div>
31
+
32
+ <div class="title">
33
+ <h1>TMail</h1>
34
+ <h2>Ruby on Mail</h2>
35
+ </div>
36
+
37
+ <div class="menu">
38
+ &nbsp;
39
+ <a href="../index.html">Home</a> &nbsp;&nbsp;
40
+ <a href="../quickstart/index.html">Quickstart</a> &nbsp;&nbsp;
41
+ <a href="http://lindsaar.net/tmail/" onClick="javascript:urchinTracker('/outgoing/rubyforge.org/blog_page');">Blog</a> &nbsp;&nbsp;
42
+ <a href="http://rubyforge.org/frs/?group_id=4512" onClick="javascript:urchinTracker('/outgoing/rubyforge.org/download_page');">Download</a> &nbsp;&nbsp;
43
+ <a href="http://rubyforge.org/mailman/listinfo/tmail-talk">Mailing List</a> &nbsp;&nbsp;
44
+ <a href="../reference/index.html">Reference</a> &nbsp;&nbsp;
45
+ <a href="../rdoc/index.html">RDocs</a> &nbsp;&nbsp;
46
+ <a href="http://rubyforge.org/projects/tmail/" onClick="javascript:urchinTracker('/outgoing/rubyforge.org/project_page');">Project</a> &nbsp;&nbsp;
47
+ <a href="../contributing/index.html">Contributing</a>
48
+ </div>
49
+
50
+ <div class="main">
51
+ <h1>Contributing to TMail</h1>
52
+
53
+ <p>
54
+ Here is a blunt truth, TMail is what we (that is you and me) make it.
55
+ </p>
56
+
57
+ <p>
58
+ I have had a few people asking how to contribute to TMail, so I thought I
59
+ would quickly do a write up on how to go about it.
60
+ </p>
61
+
62
+ <p>
63
+ First things first, go to the <a href="http://rubyforge.org/mailman/listinfo/tmail-talk"
64
+ title="Tmail-talk Info Page">TMail Mailing list</a> and subscribe and let us
65
+ know what you want to attack, while this is definitely not a requirement to
66
+ writing a patch, maybe someone else has the same problem and / or is mid
67
+ fixing it, plus, we're basically a nice bunch of people ;)
68
+ </p>
69
+
70
+ <p>
71
+ Then, if you are new to this sort of thing you should go and read this great write up
72
+ by <a href="http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/"
73
+ title="Dr Nic &raquo; 8 steps for fixing other people&#8217;s code">Dr Nic</a>
74
+ which covers the basic steps on how to check out, patch and submit fixes to
75
+ code. This also applied very well to TMail.
76
+ </p>
77
+
78
+ <p>
79
+ Then, you need to get a copy of the latest TMail trunk code. You do this like so:
80
+ </p>
81
+
82
+ <pre class="shell">
83
+ baci:~ mikel$ svn checkout http://tmail.rubyforge.org/svn/trunk tmail
84
+ </pre>
85
+
86
+ <p>
87
+ This will check out the most recent version of TMail from the source tree at
88
+ RubyForge. Once you have this, the first thing you should do is run the test
89
+ suite. There are over 4000 assertions run by the test suite to make sure all
90
+ is OK. This also gives you a stable datum of "When I got it, it was working
91
+ so I just have to make sure it stays working...". To run the tests, do this:
92
+ </p>
93
+
94
+
95
+ <pre class="shell">
96
+ baci:~ mikel$ cd tmail
97
+ baci:~/tmail mikel$ rake test
98
+ (in /Users/mikel/tmail)
99
+ /usr/local/bin/ruby -Ilib:test ((SNIP))
100
+ Loaded suite /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake/rake_test_loader
101
+ Started
102
+ ........................................................................
103
+ ........................................................................
104
+ ............................................................
105
+ Finished in 0.456426 seconds.
106
+
107
+ 204 tests, 4014 assertions, 0 failures, 0 errors
108
+ </pre>
109
+
110
+ <p>
111
+ If you get any errors at this point, post to the TMail Mailing list and let us
112
+ know, tell us what version of Ruby you are running, and what platform you are on
113
+ as well as any error output from the tests. If you can fix it, go ahead!
114
+ </p>
115
+
116
+ <p>
117
+ Now that you have the trunk version, you need to write your patch and submit it.
118
+ If you are making a code change, you should write a test driven change, if you
119
+ are new to this, you can find a great screen cast by James Edward Gray II on
120
+ <a href="http://macromates.com/screencast/ruby_quiz_screencast.mov">TDD with Textmate.</a>
121
+ This will give you the basics of what a test drive change is and how to go about it.
122
+ For all you RSpec fans, I am seriously considering moving the testing framework over
123
+ to BDD and RSpec, if you want to get on board and help out, that would be great!
124
+ </p>
125
+
126
+ <p>
127
+ Once you have written your test, run rake test again and watch it fail. This is a
128
+ key part of Test Driven Development. Then write your change in the code.
129
+ </p>
130
+
131
+ <p>
132
+ Once you have written your code, run rake test again, and your test should now pass
133
+ and every OTHER test should also pass. If this is the case, then well done! You
134
+ have just made a test driven change to the TMail library.
135
+ </p>
136
+
137
+ <p>
138
+ Now you need to make the diff file of what you have done against the library. You
139
+ do this using the svn diff command. First however, you should update your code, just
140
+ in case someone else has updated the source tree between you checking it out and
141
+ writing your patch. So, you do both like this:
142
+ </p>
143
+
144
+ <pre class="shell">
145
+ baci:~/tmail mikel$ svn up
146
+ At revision 206.
147
+ baci:~/tmail mikel$ svn diff > my_well_named_patch_file.diff
148
+ baci:~/tmail mikel$
149
+ </pre>
150
+
151
+ <p>
152
+ Note: If while doing the SVN UP anything was updated, you should re-run your
153
+ tests using rake test to make sure your patch didn't just go stale :)
154
+ </p>
155
+
156
+ <p>
157
+ Next step is peer review. Go open a patch ticket on the
158
+ <a href="http://rubyforge.org/tracker/?group_id=4512" title="RubyForge: TMail:">
159
+ RubyForge tracker</a>, in it, select the right category and group for the patch
160
+ you have made (if there isn't one that matches, leave it as none and then mention
161
+ this in the description field). Give your ticket a name, and then attach your file.
162
+ </p>
163
+
164
+ <p>
165
+ It is a good idea to then go to the TMail Talk list and let everyone know about your
166
+ patch. Then we can check it out, suggest changes or commit it if all is good.
167
+ </p>
168
+
169
+ <p>
170
+ That's it! Easy hey? Once you have submitted patches, it gets easier and you get
171
+ to bask in the glory of being a committer to Ruby's most popular mail handling
172
+ library.
173
+ </p>
174
+
175
+ </div>
176
+
177
+ <div class="footer">
178
+ Copyright (c) 2007 TMail Project &reg; All Rights Reserved
179
+ </div>
180
+
181
+ </div>
182
+ </body>
183
+ </html>
@@ -0,0 +1,27 @@
1
+ * {
2
+ background: transparent;
3
+ }
4
+
5
+ body {
6
+ margin: 0;
7
+ padding: 0;
8
+ font-size: 12px;
9
+ color: #333333;
10
+ }
11
+
12
+ div {
13
+ font-size: 15px;
14
+ }
15
+
16
+ p {
17
+ font-size: 15px;
18
+ line-height: 19px;
19
+ }
20
+
21
+ pre {
22
+ font-size: 13px;
23
+ font-family: Courier, sans-serif;
24
+ background-color: #EEE;
25
+ display: block;
26
+ border: 1px solid #999;
27
+ }
@@ -0,0 +1,31 @@
1
+
2
+ .container{
3
+ width: 800px;
4
+ margin: 0 auto;
5
+ padding: 10px 20px 10px 20px;
6
+ }
7
+
8
+ .logo {
9
+ float: right;
10
+ width: 150px;
11
+ padding: 0 0 10px 0;
12
+ text-align: right;
13
+ }
14
+
15
+ .menu {
16
+ margin-top: 30px;
17
+ width: 650px;
18
+ }
19
+
20
+ .menu a {
21
+ text-decoration: none;
22
+ }
23
+
24
+ .main {
25
+ clear: both;
26
+ padding: 10px 20px;
27
+ }
28
+
29
+ .footer {
30
+ margin: 30px 0 10px 0;
31
+ }
@@ -0,0 +1,60 @@
1
+ body {
2
+ background: #FFFFFF;
3
+ }
4
+
5
+ .container {
6
+ background: white;
7
+ }
8
+
9
+ .title h1 {
10
+ color: red;
11
+ font-size: 72px;
12
+ font-family: Times New Roman;
13
+ font-weight: bold;
14
+ margin: 0;
15
+ padding: 0px;
16
+ }
17
+
18
+ .title h2 {
19
+ color: #cc5500;
20
+ font-size: 16px;
21
+ font-family: Times New Roman;
22
+ font-weight: bold;
23
+ margin: 0;
24
+ padding: 0 12px;
25
+ letter-spacing: 8px;
26
+ }
27
+
28
+ .menu {
29
+ text-align: left;
30
+ color: red;
31
+ font-size: 14px;
32
+ }
33
+
34
+ .main {
35
+ border: 1px solid orange;
36
+ }
37
+
38
+ .footer {
39
+ color: gray;
40
+ font-size: .9em;
41
+ }
42
+
43
+ pre {
44
+ border: 1px solid #dddddd;
45
+ font-family: monospace;
46
+ font-size: 0.8em;
47
+ line-height: 1.6em;
48
+ }
49
+
50
+ pre.ruby {
51
+ color: red;
52
+ background: #eeeeee;
53
+ padding: 10px;
54
+ }
55
+
56
+ pre.shell {
57
+ color: green;
58
+ background: #eeeeee;
59
+ padding: 10px;
60
+ }
@@ -0,0 +1,61 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html lang="en">
3
+ <head>
4
+ <title>TMail &mdash; A Ruby Email Handler</title>
5
+
6
+ <link rel="icon" href="../img/tfire.jpg" type="image/x-icon"/>
7
+
8
+ <link rel="stylesheet" href="../css/clean.css" type="text/css" media="screen, projection, print"/>
9
+ <link rel="stylesheet" href="../css/layout.css" type="text/css" media="screen, projection, print"/>
10
+ <link rel="stylesheet" href="../css/style.css" type="text/css" media="screen, projection, print"/>
11
+
12
+ <META HTTP-EQUIV="Refresh" CONTENT="1; URL=http://rubyforge.org/frs/?group_id=4512">
13
+
14
+ </head>
15
+ <body>
16
+ <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
17
+ </script>
18
+ <script type="text/javascript">
19
+ _uacct = "UA-2871747-1";
20
+ urchinTracker();
21
+ </script>
22
+ <div class="container">
23
+ <div style="height: 155px;">
24
+ <div class="logo">
25
+ <img id="logo_img" src="../img/stamp-sm.jpg"/>
26
+ </div>
27
+
28
+ <div class="title">
29
+ <h1>TMail</h1>
30
+ <h2>Ruby on Mail</h2>
31
+ </div>
32
+
33
+ <div class="menu">
34
+ &nbsp;
35
+ <a href="../index.html">Home</a> &nbsp;&nbsp;
36
+ <a href="../quickstart/index.html">Quickstart</a> &nbsp;&nbsp;
37
+ <a href="http://lindsaar.net/tmail/" onClick="javascript:urchinTracker('/outgoing/rubyforge.org/blog_page');">Blog</a> &nbsp;&nbsp;
38
+ <a href="http://rubyforge.org/frs/?group_id=4512" onClick="javascript:urchinTracker('/outgoing/rubyforge.org/download_page');">Download</a> &nbsp;&nbsp;
39
+ <a href="http://rubyforge.org/mailman/listinfo/tmail-talk">Mailing List</a> &nbsp;&nbsp;
40
+ <a href="../reference/index.html">Reference</a> &nbsp;&nbsp;
41
+ <a href="../rdoc/index.html">RDocs</a> &nbsp;&nbsp;
42
+ <a href="http://rubyforge.org/projects/tmail/" onClick="javascript:urchinTracker('/outgoing/rubyforge.org/project_page');">Project</a> &nbsp;&nbsp;
43
+ <a href="../contributing/index.html">Contributing</a>
44
+ </div>
45
+ </div>
46
+ <div class="main">
47
+ <h1>Ruby Email Handler</h1>
48
+
49
+ <div class="about">
50
+
51
+ You are about to be redirected to the Ruby Forge download page at <a
52
+ href="http://rubyforge.org/frs/?group_id=4512">http://rubyforge.org/frs/?group_id=4512/</a>.
53
+
54
+ </div>
55
+
56
+ <div class="footer">
57
+ Copyright (c) 2007 TMail Project &reg; All Rights Reserved
58
+ </div>
59
+ </div>
60
+ </body>
61
+ </html>
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
data/site/index.html ADDED
@@ -0,0 +1,272 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html lang="en">
3
+ <head>
4
+ <title>TMail &mdash; A Ruby Email Handler</title>
5
+
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf8">
7
+ <meta http-equiv="Content-Language" content="en">
8
+
9
+ <link rel="stylesheet" href="css/clean.css" type="text/css" media="screen, projection, print"/>
10
+ <link rel="stylesheet" href="css/layout.css" type="text/css" media="screen, projection, print"/>
11
+ <link rel="stylesheet" href="css/style.css" type="text/css" media="screen, projection, print"/>
12
+
13
+ <link rel="icon" href="img/tfire.jpg" type="image/x-icon"/>
14
+
15
+ <script type="text/javascript" src="js/jquery.js"></script>
16
+
17
+ <script>
18
+ $(document).ready(function(){
19
+ $("#logo_img").hover(function () {
20
+ $(this).fadeOut('normal', function() {
21
+ $(this).attr('src', 'img/mailman.gif');
22
+ $(this).fadeIn('normal');
23
+ });
24
+ }, function () {
25
+ $(this).fadeOut('normal', function() {
26
+ $(this).attr('src', 'img/stamp-sm.jpg');
27
+ $(this).fadeIn('normal');
28
+ });
29
+ });
30
+ });
31
+ </script>
32
+ </head>
33
+ <body>
34
+ <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
35
+ </script>
36
+ <script type="text/javascript">
37
+ _uacct = "UA-2871747-1";
38
+ urchinTracker();
39
+ </script>
40
+
41
+ <div class="container">
42
+
43
+ <div style="height: 155px;">
44
+ <div class="logo">
45
+ <img id="logo_img" src="img/stamp-sm.jpg"/>
46
+ </div>
47
+
48
+ <div class="title">
49
+ <h1>TMail</h1>
50
+ <h2>Ruby on Mail</h2>
51
+ </div>
52
+
53
+ <div class="menu">
54
+ &nbsp;
55
+ <a href="index.html">Home</a> &nbsp;&nbsp;
56
+ <a href="/quickstart/index.html">Quickstart</a> &nbsp;&nbsp;
57
+ <a href="http://lindsaar.net/tmail/" onClick="javascript:urchinTracker('/outgoing/rubyforge.org/blog_page');">Blog</a> &nbsp;&nbsp;
58
+ <a href="http://rubyforge.org/frs/?group_id=4512" onClick="javascript:urchinTracker('/outgoing/rubyforge.org/download_page');">Download</a> &nbsp;&nbsp;
59
+ <a href="http://rubyforge.org/mailman/listinfo/tmail-talk">Mailing List</a> &nbsp;&nbsp;
60
+ <a href="./reference/index.html">Reference</a> &nbsp;&nbsp;
61
+ <a href="./rdoc/index.html">RDocs</a> &nbsp;&nbsp;
62
+ <a href="http://rubyforge.org/projects/tmail/" onClick="javascript:urchinTracker('/outgoing/rubyforge.org/project_page');">Project</a> &nbsp;&nbsp;
63
+ <a href="./contributing/index.html">Contributing</a>
64
+ </div>
65
+ </div>
66
+
67
+ <div class="main">
68
+ <h1>Ruby Email Handler</h1>
69
+
70
+ <div class="about">
71
+ <p>TMail is an email handler library for Ruby. TMail can
72
+ extract data from mail, and write data to mail following
73
+ the relevant RFCs on the subject.</p>
74
+
75
+ <p>You can get the latest version of TMail from the TMail
76
+ <a href="http://rubyforge.org/frs/?group_id=4512&amp;release_id=15889"
77
+ title="RubyForge: TMail: Project Filelist">RubyForge</a> project
78
+ or via Ruby Gems "tmail", or feel free to grab the source code and
79
+ submit patches via the <a href="http://github.com/mikel/tmail/tree/master"
80
+ title="mikel's tmail at master - GitHub">GitHub TMail</a> site.</p>
81
+
82
+ <p>TMail is written in Ruby and a (very) small bit of supporting C
83
+ that has pure ruby replacements if you can't compile on your computer.
84
+ This means TMail will work, out of the box, on any platform that
85
+ can run Ruby 1.8 or Ruby 1.9.</p>
86
+
87
+ <p>TMail is a commonly used library and is production ready. The
88
+ ActionMailer component of Ruby on Rails uses it as well as the the
89
+ Nitro web framework and many and others - including the Ruby-Talk mail gateway.</p>
90
+
91
+ <p>What TMail does is allow you to play with Emails like you would
92
+ any Ruby object. So to change the To address of an email, instead
93
+ of something like:</p>
94
+
95
+ <pre class="ruby">
96
+ my_message = "From mikel@example.org\nReceived by.... etc"
97
+ my_message.sub(/^To: .*?@.*?$/, "To: mikel@elsewhere.org")
98
+ </pre>
99
+
100
+ <p>Which (a) will break easily and (b) is just not the Ruby-Way&trade; You can do:</p>
101
+
102
+ <pre class="ruby">
103
+ email = TMail::Mail.parse("From mikel@example.org\nReceived by.... etc")
104
+ email['to'] = 'mikel@elsewhere.org'
105
+ </pre>
106
+
107
+ <p>And TMail will take care of the details. Isn't that nicer?</p>
108
+
109
+ <p>TMail was created by Minero Aoki. It is currently maintained
110
+ by <a href="http://lindsaar.net/">Mikel</a> and Trans as
111
+ a <a href="http://rubyforge.org/projects/tmail/"
112
+ title="RubyForge: TMail: Project Info">RubyForge Project</a> &nbsp;&nbsp;.</p>
113
+
114
+ <p>For the impatient there is a <a href="quickstart/index.html">
115
+ quickstart</a> guide that will get you up and running with TMail
116
+ in a few minutes, for the rest, there is the full documentation by
117
+ <a href="rdoc/index.html">RDoc</a> (comming soon) as well as an online
118
+ <a href="manual/index.html">user manual</a> (needs updating).</p>
119
+ </div>
120
+
121
+ <div class="important_note">
122
+ <h2>Important Note For Rails and Nitro Users</h2>
123
+
124
+ <p>If you are using the Rails or the Nitro Web Framework, and are reading this
125
+ page, you probably know that your framework of choice uses TMail as it's email
126
+ handler library already.</p>
127
+
128
+ <p>What you may not know, is that if you install the latest TMail gem, your
129
+ library will use the latest Gem version. Nitro does this because it lists
130
+ TMail as a dependency, Rails does this because since 2.0RC1, the ActionMailer
131
+ section of Rails checks for a newer version of the TMail gem as it is loading
132
+ up and if it finds a Gem version newer than 1.1.0, it will load the Gem version
133
+ instead of the bundled version.</p>
134
+
135
+ <p>So to take advantage of the bug fixes, you can do:</p>
136
+
137
+ <pre class="shell">
138
+ $ sudo gem install tmail
139
+ </pre>
140
+
141
+ <p>And get the latest version installed (1.2) and your web framework will
142
+ automatically update.</p>
143
+
144
+ <p>Rails 1.2 can not do this directly, but if you go to the
145
+ <a href="http://lindsaar.net/2007/12/11/using-tmail-gem-in-rails-1-2-6"
146
+ title="lindsaar.net Using TMail Gem in Rails 1.2.6">TMail blog</a>, I have
147
+ written up how to patch ActionMailer 1.2.x to load the gem version of TMail
148
+ in preference to the bundled version.</p>
149
+
150
+ </div>
151
+
152
+ <div class="news">
153
+ <h2>News</h2>
154
+
155
+ <ul>
156
+ <li>15th of January, 2007
157
+ <a href="http://rubyforge.org/forum/forum.php?forum_id=20747">
158
+ TMail Trunk is now compatible with Ruby 1.9</a> - Next release (1.2.2) will include this 1.9 compatibility, if you need this now, you can get it by getting the source code with 'svn checkout -r 197 http://tmail.rubyforge.org/svn/trunk/ TMail'
159
+ </li>
160
+ <li>11th of January, 2007
161
+ <a href="http://rubyforge.org/frs/?group_id=4512&release_id=18049">
162
+ New Release - 1.2.1</a> - Bug fixes on address handling as well as unix mailbox handling. More documentation and tests as well.
163
+ </li>
164
+ <li>14th of December, 2007
165
+ <a href="http://tmail.rubyforge.org/rdoc/index.html">
166
+ New RDoc Put online</a> - Fixed up and released a lot more examples and comments for the TMail::Mail class.
167
+ </li>
168
+ <li>2nd of December, 2007
169
+ <a href="https://rubyforge.org/frs/?group_id=4512&release_id=16737">
170
+ New Release - 1.2.0</a> - bug fixes for Attachments and the pure Ruby version of Scanner
171
+ </li>
172
+ <li>19th of November, 2007
173
+ <a href="http://rubyforge.org/tracker/index.php?func=detail&aid=15445&group_id=4512&atid=17370">
174
+ Create forward now returns a mail object in trunk</a>
175
+ </li>
176
+ <li>8th of November, 2007
177
+ <a href="http://rubyforge.org/forum/forum.php?forum_id=18816">
178
+ New Release - 1.1.1</a> - bug fixes &amp; Windows/Unix in one Gem
179
+ </li>
180
+ <li> 30th of October, 2007
181
+ <a href="http://rubyforge.org/forum/forum.php?forum_id=18551">
182
+ New Release - 1.1.0</a> - Now a Gem!
183
+ </li>
184
+ <li> 24th of October, 2007
185
+ <a href="http://rubyforge.org/frs/?group_id=4512&amp;release_id=15695">
186
+ New Release - 0.11.0
187
+ </a>
188
+ </li>
189
+ <li> 23rd of October, 2007
190
+ <a href="http://rubyforge.org/forum/forum.php?forum_id=18391">
191
+ TMail Talk Mailing List Created
192
+ </a>
193
+ </li>
194
+ </ul>
195
+
196
+ <br />
197
+ <a href="http://rubyforge.org/news/?group_id=4512">More TMail News...</a>
198
+ </div>
199
+
200
+ <br />
201
+
202
+ <div class="docs">
203
+ <h2>Documentation</h2>
204
+
205
+ <p>Documentation is the focus of development right now, so be sure to check
206
+ back with what is happening. Each new release adds some more documentation
207
+ to the mix. If you want to help out, please let us know!</p>
208
+
209
+ <p>In the mean time, you can select from below, you can also always ask questions
210
+ to the <a href="http://rubyforge.org/mailman/listinfo/tmail-talk">TMail-Talk</a>
211
+ Mailing list and we will do our best to answer.</p>
212
+
213
+ <ul>
214
+ <li><a href="quickstart/index.html">Quick Start Guide</a></li>
215
+ <li><a href="manual/index.html">User Manual - needs updating</a></li>
216
+ <li><a href="rdoc/index.html">RDocs - now online!</a></li>
217
+ </ul>
218
+ </div>
219
+
220
+ <br />
221
+
222
+ <div class="development">
223
+ <h2>Developement</h2>
224
+
225
+ <p>
226
+ If you want to help with the TMail project, please see our
227
+ <a href="http://tmail.rubyforge.org/contributing/index.html"
228
+ title="TMail &mdash; Contributing to the best Ruby email handler ever!">
229
+ contributing to TMail</a> page.
230
+ </p>
231
+
232
+ <p>Right now we could do with a lot of documentation work, dive in and send
233
+ your patches!</p>
234
+
235
+ <p>For the impatient, anonymous subversion repository is accessable via:</p>
236
+
237
+ <pre class="shell">
238
+ $ svn checkout http://tmail.rubyforge.org/svn/trunk/ tmail
239
+ </pre>
240
+
241
+ <p>Use the following links to view or sumbit Bugs, Patches and Feature Requests:</p>
242
+ <ul>
243
+ <li>
244
+ <a href="http://rubyforge.org/tracker/?group_id=4512">
245
+ Review All
246
+ </a>
247
+ </li>
248
+ <li>
249
+ <a href="http://rubyforge.org/tracker/?func=add&amp;group_id=4512&amp;atid=17370">
250
+ Report a Bug
251
+ </a>
252
+ </li>
253
+ <li>
254
+ <a href="http://rubyforge.org/tracker/?func=add&amp;group_id=4512&amp;atid=17373">
255
+ Request a Feature
256
+ </a>
257
+ </li>
258
+ <li>
259
+ <a href="http://rubyforge.org/tracker/?func=add&amp;group_id=4512&amp;atid=17372">
260
+ Submit a Patch
261
+ </a>
262
+ </li>
263
+ </ul>
264
+ </div>
265
+
266
+ </div>
267
+ <div class="footer">
268
+ Copyright (c) 2007 TMail Project &reg; All Rights Reserved
269
+ </div>
270
+ </div>
271
+ </body>
272
+ </html>