tmail 1.2.1 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. data/CHANGES +50 -5
  2. data/MANIFEST +188 -0
  3. data/NOTES +1 -1
  4. data/README +10 -4
  5. data/Rakefile +1 -10
  6. data/lib/tmail.rb +1 -0
  7. data/lib/tmail/Makefile +0 -1
  8. data/lib/tmail/address.rb +190 -17
  9. data/lib/tmail/attachments.rb +1 -1
  10. data/lib/tmail/base64.rb +4 -10
  11. data/lib/tmail/compat.rb +8 -6
  12. data/lib/tmail/config.rb +2 -6
  13. data/lib/tmail/core_extensions.rb +14 -18
  14. data/lib/tmail/encode.rb +47 -12
  15. data/lib/tmail/header.rb +7 -10
  16. data/lib/tmail/index.rb +2 -1
  17. data/lib/tmail/interface.rb +14 -12
  18. data/lib/tmail/loader.rb +2 -0
  19. data/lib/tmail/mail.rb +83 -24
  20. data/lib/tmail/mailbox.rb +70 -10
  21. data/lib/tmail/main.rb +2 -0
  22. data/lib/tmail/mbox.rb +2 -0
  23. data/lib/tmail/net.rb +16 -15
  24. data/lib/tmail/obsolete.rb +7 -12
  25. data/lib/tmail/parser.rb +1 -0
  26. data/lib/tmail/require_arch.rb +2 -0
  27. data/lib/tmail/scanner.rb +2 -1
  28. data/lib/tmail/scanner_r.rb +11 -10
  29. data/lib/tmail/utils.rb +83 -26
  30. data/lib/tmail/version.rb +3 -2
  31. data/log/BugTrackingLog.txt +1208 -0
  32. data/log/{ChangeLog.txt → Changelog-0.txt} +36 -0
  33. data/log/Changelog.txt +534 -0
  34. data/log/Testlog.txt +114 -0
  35. data/log/Todo.txt +0 -2
  36. data/meta/VERSION +1 -0
  37. data/meta/project.yaml +8 -5
  38. data/meta/unixname +1 -0
  39. data/setup.rb +1481 -0
  40. data/site/contributing/index.html +183 -0
  41. data/site/css/clean.css +27 -0
  42. data/site/css/layout.css +31 -0
  43. data/site/css/style.css +60 -0
  44. data/site/download/index.html +61 -0
  45. data/site/img/envelope.jpg +0 -0
  46. data/site/img/mailman.gif +0 -0
  47. data/site/img/stamp-sm.jpg +0 -0
  48. data/site/img/stamp.jpg +0 -0
  49. data/site/img/stampborder.jpg +0 -0
  50. data/site/img/tfire.jpg +0 -0
  51. data/site/img/tmail.png +0 -0
  52. data/site/index.html +270 -0
  53. data/site/js/jquery.js +31 -0
  54. data/site/log/Changelog.xsl +33 -0
  55. data/site/log/changelog.xml +1677 -0
  56. data/site/outdated/BUGS +3 -0
  57. data/site/outdated/DEPENDS +1 -0
  58. data/site/outdated/Incompatibilities +89 -0
  59. data/site/outdated/Incompatibilities.ja +102 -0
  60. data/site/outdated/NEWS +9 -0
  61. data/site/outdated/README.ja +73 -0
  62. data/site/outdated/doc.ja/address.html +275 -0
  63. data/site/outdated/doc.ja/basics.html +405 -0
  64. data/site/outdated/doc.ja/config.html +49 -0
  65. data/site/outdated/doc.ja/details.html +146 -0
  66. data/site/outdated/doc.ja/index.html +39 -0
  67. data/site/outdated/doc.ja/mail.html +793 -0
  68. data/site/outdated/doc.ja/mailbox.html +265 -0
  69. data/site/outdated/doc.ja/port.html +95 -0
  70. data/site/outdated/doc.ja/tmail.html +58 -0
  71. data/site/outdated/doc.ja/usage.html +202 -0
  72. data/site/outdated/rdd/address.rrd.m +229 -0
  73. data/site/outdated/rdd/basics.rd.m +275 -0
  74. data/site/outdated/rdd/config.rrd.m +26 -0
  75. data/site/outdated/rdd/details.rd.m +117 -0
  76. data/site/outdated/rdd/index.rhtml.m +54 -0
  77. data/site/outdated/rdd/mail.rrd.m +701 -0
  78. data/site/outdated/rdd/mailbox.rrd.m +228 -0
  79. data/site/outdated/rdd/port.rrd.m +69 -0
  80. data/site/outdated/rdd/tmail.rrd.m +33 -0
  81. data/site/outdated/rdd/usage.rd.m +247 -0
  82. data/site/quickstart/index.html +69 -0
  83. data/site/quickstart/quickstart.html +52 -0
  84. data/site/quickstart/usage.html +193 -0
  85. data/site/reference/address.html +247 -0
  86. data/site/reference/config.html +30 -0
  87. data/site/reference/index.html +101 -0
  88. data/site/reference/mail.html +726 -0
  89. data/site/reference/mailbox.html +245 -0
  90. data/site/reference/port.html +75 -0
  91. data/site/reference/tmail.html +35 -0
  92. data/test/fixtures/mailbox +405 -4
  93. data/test/fixtures/raw_email_multiple_from +30 -0
  94. data/test/kcode.rb +2 -2
  95. data/test/temp_test_one.rb +46 -0
  96. data/test/test_address.rb +77 -38
  97. data/test/test_encode.rb +0 -2
  98. data/test/test_header.rb +47 -24
  99. data/test/test_mail.rb +52 -9
  100. data/test/test_mbox.rb +28 -0
  101. data/test/test_port.rb +33 -27
  102. data/test/test_quote.rb +35 -8
  103. data/work/script/make +26 -0
  104. data/work/script/rdoc +39 -0
  105. data/{script → work/script}/setup +0 -0
  106. data/work/script/test +30 -0
  107. metadata +249 -184
  108. data/log/History.txt +0 -40
  109. data/meta/config.yaml +0 -8
  110. data/meta/icli.yaml +0 -16
  111. data/meta/tmail.roll +0 -3
  112. data/script/changelog +0 -19
  113. data/script/clobber/distclean +0 -8
  114. data/script/clobber/package +0 -10
  115. data/script/compile +0 -32
  116. data/script/pack/gem +0 -93
  117. data/script/pack/tgz +0 -41
  118. data/script/pack/zip +0 -41
  119. data/script/prepare +0 -15
  120. data/script/publish +0 -51
  121. data/script/rdoc +0 -42
  122. data/script/release +0 -10
  123. data/script/stamp +0 -33
  124. data/script/stats +0 -138
  125. data/script/tag +0 -25
  126. data/script/test +0 -36
@@ -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
@@ -0,0 +1,270 @@
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"</p>
79
+
80
+ <p>TMail is written in Ruby and a (very) small bit of supporting C
81
+ that has pure ruby replacements if you can't compile on your computer.
82
+ This means TMail will work, out of the box, on any platform that
83
+ can run Ruby 1.8 or Ruby 1.9.</p>
84
+
85
+ <p>TMail is a commonly used library and is production ready. The
86
+ ActionMailer component of Ruby on Rails uses it as well as the the
87
+ Nitro web framework and many and others - including the Ruby-Talk mail gateway.</p>
88
+
89
+ <p>What TMail does is allow you to play with Emails like you would
90
+ any Ruby object. So to change the To address of an email, instead
91
+ of something like:</p>
92
+
93
+ <pre class="ruby">
94
+ my_message = "From mikel@example.org\nReceived by.... etc"
95
+ my_message.sub(/^To: .*?@.*?$/, "To: mikel@elsewhere.org")
96
+ </pre>
97
+
98
+ <p>Which (a) will break easily and (b) is just not the Ruby-Way&trade; You can do:</p>
99
+
100
+ <pre class="ruby">
101
+ email = TMail::Mail.parse("From mikel@example.org\nReceived by.... etc")
102
+ email['to'] = 'mikel@elsewhere.org'
103
+ </pre>
104
+
105
+ <p>And TMail will take care of the details. Isn't that nicer?</p>
106
+
107
+ <p>TMail was created by Minero Aoki. It is currently maintained
108
+ by <a href="http://lindsaar.net/">Mikel</a> and Trans as
109
+ a <a href="http://rubyforge.org/projects/tmail/"
110
+ title="RubyForge: TMail: Project Info">RubyForge Project</a> &nbsp;&nbsp;.</p>
111
+
112
+ <p>For the impatient there is a <a href="quickstart/index.html">
113
+ quickstart</a> guide that will get you up and running with TMail
114
+ in a few minutes, for the rest, there is the full documentation by
115
+ <a href="rdoc/index.html">RDoc</a> (comming soon) as well as an online
116
+ <a href="manual/index.html">user manual</a> (needs updating).</p>
117
+ </div>
118
+
119
+ <div class="important_note">
120
+ <h2>Important Note For Rails and Nitro Users</h2>
121
+
122
+ <p>If you are using the Rails or the Nitro Web Framework, and are reading this
123
+ page, you probably know that your framework of choice uses TMail as it's email
124
+ handler library already.</p>
125
+
126
+ <p>What you may not know, is that if you install the latest TMail gem, your
127
+ library will use the latest Gem version. Nitro does this because it lists
128
+ TMail as a dependency, Rails does this because since 2.0RC1, the ActionMailer
129
+ section of Rails checks for a newer version of the TMail gem as it is loading
130
+ up and if it finds a Gem version newer than 1.1.0, it will load the Gem version
131
+ instead of the bundled version.</p>
132
+
133
+ <p>So to take advantage of the bug fixes, you can do:</p>
134
+
135
+ <pre class="shell">
136
+ $ sudo gem install tmail
137
+ </pre>
138
+
139
+ <p>And get the latest version installed (1.2) and your web framework will
140
+ automatically update.</p>
141
+
142
+ <p>Rails 1.2 can not do this directly, but if you go to the
143
+ <a href="http://lindsaar.net/2007/12/11/using-tmail-gem-in-rails-1-2-6"
144
+ title="lindsaar.net Using TMail Gem in Rails 1.2.6">TMail blog</a>, I have
145
+ written up how to patch ActionMailer 1.2.x to load the gem version of TMail
146
+ in preference to the bundled version.</p>
147
+
148
+ </div>
149
+
150
+ <div class="news">
151
+ <h2>News</h2>
152
+
153
+ <ul>
154
+ <li>15th of January, 2007
155
+ <a href="http://rubyforge.org/forum/forum.php?forum_id=20747">
156
+ 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'
157
+ </li>
158
+ <li>11th of January, 2007
159
+ <a href="http://rubyforge.org/frs/?group_id=4512&release_id=18049">
160
+ New Release - 1.2.1</a> - Bug fixes on address handling as well as unix mailbox handling. More documentation and tests as well.
161
+ </li>
162
+ <li>14th of December, 2007
163
+ <a href="http://tmail.rubyforge.org/rdoc/index.html">
164
+ New RDoc Put online</a> - Fixed up and released a lot more examples and comments for the TMail::Mail class.
165
+ </li>
166
+ <li>2nd of December, 2007
167
+ <a href="https://rubyforge.org/frs/?group_id=4512&release_id=16737">
168
+ New Release - 1.2.0</a> - bug fixes for Attachments and the pure Ruby version of Scanner
169
+ </li>
170
+ <li>19th of November, 2007
171
+ <a href="http://rubyforge.org/tracker/index.php?func=detail&aid=15445&group_id=4512&atid=17370">
172
+ Create forward now returns a mail object in trunk</a>
173
+ </li>
174
+ <li>8th of November, 2007
175
+ <a href="http://rubyforge.org/forum/forum.php?forum_id=18816">
176
+ New Release - 1.1.1</a> - bug fixes &amp; Windows/Unix in one Gem
177
+ </li>
178
+ <li> 30th of October, 2007
179
+ <a href="http://rubyforge.org/forum/forum.php?forum_id=18551">
180
+ New Release - 1.1.0</a> - Now a Gem!
181
+ </li>
182
+ <li> 24th of October, 2007
183
+ <a href="http://rubyforge.org/frs/?group_id=4512&amp;release_id=15695">
184
+ New Release - 0.11.0
185
+ </a>
186
+ </li>
187
+ <li> 23rd of October, 2007
188
+ <a href="http://rubyforge.org/forum/forum.php?forum_id=18391">
189
+ TMail Talk Mailing List Created
190
+ </a>
191
+ </li>
192
+ </ul>
193
+
194
+ <br />
195
+ <a href="http://rubyforge.org/news/?group_id=4512">More TMail News...</a>
196
+ </div>
197
+
198
+ <br />
199
+
200
+ <div class="docs">
201
+ <h2>Documentation</h2>
202
+
203
+ <p>Documentation is the focus of development right now, so be sure to check
204
+ back with what is happening. Each new release adds some more documentation
205
+ to the mix. If you want to help out, please let us know!</p>
206
+
207
+ <p>In the mean time, you can select from below, you can also always ask questions
208
+ to the <a href="http://rubyforge.org/mailman/listinfo/tmail-talk">TMail-Talk</a>
209
+ Mailing list and we will do our best to answer.</p>
210
+
211
+ <ul>
212
+ <li><a href="quickstart/index.html">Quick Start Guide</a></li>
213
+ <li><a href="manual/index.html">User Manual - needs updating</a></li>
214
+ <li><a href="rdoc/index.html">RDocs - now online!</a></li>
215
+ </ul>
216
+ </div>
217
+
218
+ <br />
219
+
220
+ <div class="development">
221
+ <h2>Developement</h2>
222
+
223
+ <p>
224
+ If you want to help with the TMail project, please see our
225
+ <a href="http://tmail.rubyforge.org/contributing/index.html"
226
+ title="TMail &mdash; Contributing to the best Ruby email handler ever!">
227
+ contributing to TMail</a> page.
228
+ </p>
229
+
230
+ <p>Right now we could do with a lot of documentation work, dive in and send
231
+ your patches!</p>
232
+
233
+ <p>For the impatient, anonymous subversion repository is accessable via:</p>
234
+
235
+ <pre class="shell">
236
+ $ svn checkout http://tmail.rubyforge.org/svn/trunk/ tmail
237
+ </pre>
238
+
239
+ <p>Use the following links to view or sumbit Bugs, Patches and Feature Requests:</p>
240
+ <ul>
241
+ <li>
242
+ <a href="http://rubyforge.org/tracker/?group_id=4512">
243
+ Review All
244
+ </a>
245
+ </li>
246
+ <li>
247
+ <a href="http://rubyforge.org/tracker/?func=add&amp;group_id=4512&amp;atid=17370">
248
+ Report a Bug
249
+ </a>
250
+ </li>
251
+ <li>
252
+ <a href="http://rubyforge.org/tracker/?func=add&amp;group_id=4512&amp;atid=17373">
253
+ Request a Feature
254
+ </a>
255
+ </li>
256
+ <li>
257
+ <a href="http://rubyforge.org/tracker/?func=add&amp;group_id=4512&amp;atid=17372">
258
+ Submit a Patch
259
+ </a>
260
+ </li>
261
+ </ul>
262
+ </div>
263
+
264
+ </div>
265
+ <div class="footer">
266
+ Copyright (c) 2007 TMail Project &reg; All Rights Reserved
267
+ </div>
268
+ </div>
269
+ </body>
270
+ </html>