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.
- data/CHANGES +74 -0
- data/LICENSE +21 -0
- data/NOTES +7 -0
- data/README +179 -0
- data/Rakefile +2 -0
- data/ext/Makefile +20 -0
- data/ext/tmailscanner/tmail/MANIFEST +4 -0
- data/ext/tmailscanner/tmail/depend +1 -0
- data/ext/tmailscanner/tmail/extconf.rb +33 -0
- data/ext/tmailscanner/tmail/tmailscanner.c +614 -0
- data/lib/tmail.rb +6 -0
- data/lib/tmail/Makefile +18 -0
- data/lib/tmail/address.rb +392 -0
- data/lib/tmail/attachments.rb +65 -0
- data/lib/tmail/base64.rb +46 -0
- data/lib/tmail/compat.rb +41 -0
- data/lib/tmail/config.rb +67 -0
- data/lib/tmail/core_extensions.rb +63 -0
- data/lib/tmail/encode.rb +590 -0
- data/lib/tmail/header.rb +962 -0
- data/lib/tmail/index.rb +9 -0
- data/lib/tmail/interface.rb +1162 -0
- data/lib/tmail/loader.rb +3 -0
- data/lib/tmail/mail.rb +578 -0
- data/lib/tmail/mailbox.rb +496 -0
- data/lib/tmail/main.rb +6 -0
- data/lib/tmail/mbox.rb +3 -0
- data/lib/tmail/net.rb +250 -0
- data/lib/tmail/obsolete.rb +132 -0
- data/lib/tmail/parser.rb +1060 -0
- data/lib/tmail/parser.y +416 -0
- data/lib/tmail/port.rb +379 -0
- data/lib/tmail/quoting.rb +155 -0
- data/lib/tmail/require_arch.rb +58 -0
- data/lib/tmail/scanner.rb +49 -0
- data/lib/tmail/scanner_r.rb +261 -0
- data/lib/tmail/stringio.rb +280 -0
- data/lib/tmail/utils.rb +361 -0
- data/lib/tmail/version.rb +39 -0
- data/log/BugTrackingLog.txt +1245 -0
- data/log/Changelog.txt +534 -0
- data/log/Testlog.txt +2340 -0
- data/log/Todo.txt +30 -0
- data/meta/MANIFEST +128 -0
- data/meta/VERSION +1 -0
- data/meta/project.yaml +30 -0
- data/meta/unixname +1 -0
- data/sample/bench_base64.rb +48 -0
- data/sample/data/multipart +23 -0
- data/sample/data/normal +29 -0
- data/sample/data/sendtest +5 -0
- data/sample/data/simple +14 -0
- data/sample/data/test +27 -0
- data/sample/extract-attachements.rb +33 -0
- data/sample/from-check.rb +26 -0
- data/sample/multipart.rb +26 -0
- data/sample/parse-bench.rb +68 -0
- data/sample/parse-test.rb +19 -0
- data/sample/sendmail.rb +94 -0
- data/setup.rb +1482 -0
- data/site/contributing/index.html +183 -0
- data/site/css/clean.css +27 -0
- data/site/css/layout.css +31 -0
- data/site/css/style.css +60 -0
- data/site/download/index.html +61 -0
- data/site/img/envelope.jpg +0 -0
- data/site/img/mailman.gif +0 -0
- data/site/img/stamp-sm.jpg +0 -0
- data/site/img/stamp.jpg +0 -0
- data/site/img/stampborder.jpg +0 -0
- data/site/img/tfire.jpg +0 -0
- data/site/img/tmail.png +0 -0
- data/site/index.html +272 -0
- data/site/js/jquery.js +31 -0
- data/site/log/Changelog.xsl +33 -0
- data/site/log/changelog.xml +1677 -0
- data/site/outdated/BUGS +3 -0
- data/site/outdated/DEPENDS +1 -0
- data/site/outdated/Incompatibilities +89 -0
- data/site/outdated/Incompatibilities.ja +102 -0
- data/site/outdated/NEWS +9 -0
- data/site/outdated/README.ja +73 -0
- data/site/outdated/doc.ja/address.html +275 -0
- data/site/outdated/doc.ja/basics.html +405 -0
- data/site/outdated/doc.ja/config.html +49 -0
- data/site/outdated/doc.ja/details.html +146 -0
- data/site/outdated/doc.ja/index.html +39 -0
- data/site/outdated/doc.ja/mail.html +793 -0
- data/site/outdated/doc.ja/mailbox.html +265 -0
- data/site/outdated/doc.ja/port.html +95 -0
- data/site/outdated/doc.ja/tmail.html +58 -0
- data/site/outdated/doc.ja/usage.html +202 -0
- data/site/outdated/rdd/address.rrd.m +229 -0
- data/site/outdated/rdd/basics.rd.m +275 -0
- data/site/outdated/rdd/config.rrd.m +26 -0
- data/site/outdated/rdd/details.rd.m +117 -0
- data/site/outdated/rdd/index.rhtml.m +54 -0
- data/site/outdated/rdd/mail.rrd.m +701 -0
- data/site/outdated/rdd/mailbox.rrd.m +228 -0
- data/site/outdated/rdd/port.rrd.m +69 -0
- data/site/outdated/rdd/tmail.rrd.m +33 -0
- data/site/outdated/rdd/usage.rd.m +247 -0
- data/site/quickstart/index.html +69 -0
- data/site/quickstart/quickstart.html +52 -0
- data/site/quickstart/usage.html +193 -0
- data/site/reference/address.html +247 -0
- data/site/reference/config.html +30 -0
- data/site/reference/index.html +101 -0
- data/site/reference/mail.html +726 -0
- data/site/reference/mailbox.html +245 -0
- data/site/reference/port.html +75 -0
- data/site/reference/tmail.html +35 -0
- data/test/extctrl.rb +6 -0
- data/test/fixtures/mailbox +414 -0
- data/test/fixtures/mailbox_without_any_from_or_sender +10 -0
- data/test/fixtures/mailbox_without_from +11 -0
- data/test/fixtures/mailbox_without_return_path +12 -0
- data/test/fixtures/raw_attack_email_with_zero_length_whitespace +29 -0
- data/test/fixtures/raw_base64_decoded_string +0 -0
- data/test/fixtures/raw_base64_email +83 -0
- data/test/fixtures/raw_base64_encoded_string +1 -0
- data/test/fixtures/raw_email +14 -0
- data/test/fixtures/raw_email10 +20 -0
- data/test/fixtures/raw_email11 +34 -0
- data/test/fixtures/raw_email12 +32 -0
- data/test/fixtures/raw_email13 +29 -0
- data/test/fixtures/raw_email2 +114 -0
- data/test/fixtures/raw_email3 +70 -0
- data/test/fixtures/raw_email4 +59 -0
- data/test/fixtures/raw_email5 +19 -0
- data/test/fixtures/raw_email6 +20 -0
- data/test/fixtures/raw_email7 +66 -0
- data/test/fixtures/raw_email8 +47 -0
- data/test/fixtures/raw_email9 +28 -0
- data/test/fixtures/raw_email_multiple_from +30 -0
- data/test/fixtures/raw_email_quoted_with_0d0a +14 -0
- data/test/fixtures/raw_email_reply +32 -0
- data/test/fixtures/raw_email_simple +11 -0
- data/test/fixtures/raw_email_with_bad_date +48 -0
- data/test/fixtures/raw_email_with_illegal_boundary +58 -0
- data/test/fixtures/raw_email_with_mimepart_without_content_type +94 -0
- data/test/fixtures/raw_email_with_multipart_mixed_quoted_boundary +50 -0
- data/test/fixtures/raw_email_with_nested_attachment +100 -0
- data/test/fixtures/raw_email_with_partially_quoted_subject +14 -0
- data/test/fixtures/raw_email_with_quoted_illegal_boundary +58 -0
- data/test/kcode.rb +14 -0
- data/test/temp_test_one.rb +46 -0
- data/test/test_address.rb +1216 -0
- data/test/test_attachments.rb +131 -0
- data/test/test_base64.rb +64 -0
- data/test/test_encode.rb +139 -0
- data/test/test_header.rb +1021 -0
- data/test/test_helper.rb +9 -0
- data/test/test_mail.rb +756 -0
- data/test/test_mbox.rb +184 -0
- data/test/test_port.rb +440 -0
- data/test/test_quote.rb +107 -0
- data/test/test_scanner.rb +209 -0
- data/test/test_utils.rb +36 -0
- data/work/script/make +26 -0
- data/work/script/rdoc +39 -0
- data/work/script/setup +1616 -0
- data/work/script/test +30 -0
- 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 — 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
|
+
|
|
39
|
+
<a href="../index.html">Home</a>
|
|
40
|
+
<a href="../quickstart/index.html">Quickstart</a>
|
|
41
|
+
<a href="http://lindsaar.net/tmail/" onClick="javascript:urchinTracker('/outgoing/rubyforge.org/blog_page');">Blog</a>
|
|
42
|
+
<a href="http://rubyforge.org/frs/?group_id=4512" onClick="javascript:urchinTracker('/outgoing/rubyforge.org/download_page');">Download</a>
|
|
43
|
+
<a href="http://rubyforge.org/mailman/listinfo/tmail-talk">Mailing List</a>
|
|
44
|
+
<a href="../reference/index.html">Reference</a>
|
|
45
|
+
<a href="../rdoc/index.html">RDocs</a>
|
|
46
|
+
<a href="http://rubyforge.org/projects/tmail/" onClick="javascript:urchinTracker('/outgoing/rubyforge.org/project_page');">Project</a>
|
|
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 » 8 steps for fixing other people’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 ® All Rights Reserved
|
|
179
|
+
</div>
|
|
180
|
+
|
|
181
|
+
</div>
|
|
182
|
+
</body>
|
|
183
|
+
</html>
|
data/site/css/clean.css
ADDED
|
@@ -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
|
+
}
|
data/site/css/layout.css
ADDED
|
@@ -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
|
+
}
|
data/site/css/style.css
ADDED
|
@@ -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 — 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
|
+
|
|
35
|
+
<a href="../index.html">Home</a>
|
|
36
|
+
<a href="../quickstart/index.html">Quickstart</a>
|
|
37
|
+
<a href="http://lindsaar.net/tmail/" onClick="javascript:urchinTracker('/outgoing/rubyforge.org/blog_page');">Blog</a>
|
|
38
|
+
<a href="http://rubyforge.org/frs/?group_id=4512" onClick="javascript:urchinTracker('/outgoing/rubyforge.org/download_page');">Download</a>
|
|
39
|
+
<a href="http://rubyforge.org/mailman/listinfo/tmail-talk">Mailing List</a>
|
|
40
|
+
<a href="../reference/index.html">Reference</a>
|
|
41
|
+
<a href="../rdoc/index.html">RDocs</a>
|
|
42
|
+
<a href="http://rubyforge.org/projects/tmail/" onClick="javascript:urchinTracker('/outgoing/rubyforge.org/project_page');">Project</a>
|
|
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 ® All Rights Reserved
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
60
|
+
</body>
|
|
61
|
+
</html>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
data/site/img/stamp.jpg
ADDED
|
Binary file
|
|
Binary file
|
data/site/img/tfire.jpg
ADDED
|
Binary file
|
data/site/img/tmail.png
ADDED
|
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 — 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
|
+
|
|
55
|
+
<a href="index.html">Home</a>
|
|
56
|
+
<a href="/quickstart/index.html">Quickstart</a>
|
|
57
|
+
<a href="http://lindsaar.net/tmail/" onClick="javascript:urchinTracker('/outgoing/rubyforge.org/blog_page');">Blog</a>
|
|
58
|
+
<a href="http://rubyforge.org/frs/?group_id=4512" onClick="javascript:urchinTracker('/outgoing/rubyforge.org/download_page');">Download</a>
|
|
59
|
+
<a href="http://rubyforge.org/mailman/listinfo/tmail-talk">Mailing List</a>
|
|
60
|
+
<a href="./reference/index.html">Reference</a>
|
|
61
|
+
<a href="./rdoc/index.html">RDocs</a>
|
|
62
|
+
<a href="http://rubyforge.org/projects/tmail/" onClick="javascript:urchinTracker('/outgoing/rubyforge.org/project_page');">Project</a>
|
|
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&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™ 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> .</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 & 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&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 — 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&group_id=4512&atid=17370">
|
|
250
|
+
Report a Bug
|
|
251
|
+
</a>
|
|
252
|
+
</li>
|
|
253
|
+
<li>
|
|
254
|
+
<a href="http://rubyforge.org/tracker/?func=add&group_id=4512&atid=17373">
|
|
255
|
+
Request a Feature
|
|
256
|
+
</a>
|
|
257
|
+
</li>
|
|
258
|
+
<li>
|
|
259
|
+
<a href="http://rubyforge.org/tracker/?func=add&group_id=4512&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 ® All Rights Reserved
|
|
269
|
+
</div>
|
|
270
|
+
</div>
|
|
271
|
+
</body>
|
|
272
|
+
</html>
|