tmail 1.1.1 → 1.2.0

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 (62) hide show
  1. data/CHANGES +5 -0
  2. data/NOTES +84 -0
  3. data/README +6 -1
  4. data/ext/Makefile +20 -0
  5. data/ext/{tmail/base64 → mailscanner/tmail}/MANIFEST +1 -1
  6. data/ext/mailscanner/tmail/depend +1 -0
  7. data/ext/mailscanner/tmail/extconf.rb +24 -0
  8. data/ext/{tmail/scanner_c/scanner_c.c → mailscanner/tmail/mailscanner.c} +8 -7
  9. data/lib/tmail/base64.rb +29 -52
  10. data/lib/tmail/encode.rb +37 -38
  11. data/lib/tmail/interface.rb +632 -49
  12. data/lib/tmail/main.rb +4 -0
  13. data/lib/tmail/net.rb +0 -35
  14. data/lib/tmail/quoting.rb +8 -8
  15. data/lib/tmail/scanner.rb +10 -6
  16. data/lib/tmail/scanner_r.rb +3 -5
  17. data/lib/tmail/version.rb +2 -2
  18. data/log/ChangeLog.txt +1131 -0
  19. data/log/History.txt +40 -0
  20. data/log/Todo.txt +32 -0
  21. data/meta/MANIFEST +118 -0
  22. data/meta/ROLLRC +3 -0
  23. data/meta/icli.yaml +2 -2
  24. data/meta/{tmail-1.1.1.roll → project.yaml} +3 -7
  25. data/sample/bench_base64.rb +48 -0
  26. data/{bat → script}/changelog +0 -0
  27. data/script/clobber/distclean +8 -0
  28. data/{bat → script}/clobber/package +0 -0
  29. data/script/compile +32 -0
  30. data/{bat → script}/config.yaml +2 -2
  31. data/{bat → script}/prepare +4 -2
  32. data/{bat → script}/publish +0 -0
  33. data/{bat → script}/release +0 -0
  34. data/{bat → script}/setup +0 -0
  35. data/{bat → script}/stats +0 -0
  36. data/{bat → script}/tag +0 -0
  37. data/script/test +36 -0
  38. data/test/fixtures/raw_email_reply +32 -0
  39. data/test/fixtures/raw_email_with_bad_date +48 -0
  40. data/test/test_address.rb +1 -3
  41. data/test/test_attachments.rb +1 -2
  42. data/test/test_base64.rb +3 -2
  43. data/test/test_encode.rb +1 -0
  44. data/test/test_header.rb +2 -3
  45. data/test/test_helper.rb +8 -2
  46. data/test/test_mail.rb +45 -16
  47. data/test/test_mbox.rb +1 -1
  48. data/test/test_port.rb +1 -1
  49. data/test/test_scanner.rb +1 -1
  50. data/test/test_utils.rb +1 -2
  51. metadata +82 -76
  52. data/bat/compile +0 -42
  53. data/bat/rdoc +0 -42
  54. data/bat/test +0 -25
  55. data/ext/tmail/Makefile +0 -25
  56. data/ext/tmail/base64/base64.c +0 -264
  57. data/ext/tmail/base64/depend +0 -1
  58. data/ext/tmail/base64/extconf.rb +0 -38
  59. data/ext/tmail/scanner_c/MANIFEST +0 -4
  60. data/ext/tmail/scanner_c/depend +0 -1
  61. data/ext/tmail/scanner_c/extconf.rb +0 -38
  62. data/lib/tmail/tmail.rb +0 -1
@@ -1,8 +1,6 @@
1
1
  $:.unshift File.dirname(__FILE__)
2
- require 'tmail/address'
3
- require 'extctrl'
4
- require 'test/unit'
5
2
  require 'test_helper'
3
+ require 'tmail/address'
6
4
 
7
5
  class TestAddress < Test::Unit::TestCase
8
6
 
@@ -1,6 +1,5 @@
1
- require 'tmail'
2
- require 'test/unit'
3
1
  require 'test_helper'
2
+ require 'tmail'
4
3
 
5
4
  class TestAttachments < Test::Unit::TestCase
6
5
 
@@ -1,12 +1,13 @@
1
+ require 'test_helper'
1
2
  require 'tmail/base64'
2
3
  require 'test/unit'
3
4
 
4
5
  class TestTMailBase64 < Test::Unit::TestCase
5
6
  def try(orig)
6
7
  ok = [orig].pack('m').delete("\r\n")
7
- result = TMail::Base64.c_encode(orig)
8
+ result = TMail::Base64.encode(orig)
8
9
  assert_equal ok, result, "str=#{orig.inspect}"
9
- assert_equal orig, TMail::Base64.c_decode(result), "str=#{orig.inspect}"
10
+ assert_equal orig, TMail::Base64.decode(result), "str=#{orig.inspect}"
10
11
  end
11
12
 
12
13
  def test_normal
@@ -1,3 +1,4 @@
1
+ require 'test_helper'
1
2
  require 'tmail/port'
2
3
  require 'tmail/encode'
3
4
  require 'nkf'
@@ -1,11 +1,9 @@
1
1
  $:.unshift File.dirname(__FILE__)
2
+ require 'test_helper'
2
3
  require 'tmail'
3
4
  require 'tmail/header'
4
5
  require 'kcode'
5
- require 'extctrl'
6
- require 'test/unit'
7
6
  require 'time'
8
- require 'test_helper'
9
7
 
10
8
  class UnstructuredHeaderTester < Test::Unit::TestCase
11
9
  def test_s_new
@@ -420,6 +418,7 @@ Received: by mebius with Microsoft Mail
420
418
  =end
421
419
 
422
420
  # word + domain-literal in FROM
421
+
423
422
  h = TMail::HeaderField.new('Received',
424
423
  'from localhost [192.168.1.1]; Sat, 19 Dec 1998 22:19:50 PST')
425
424
  assert_equal 'localhost', h.from
@@ -1,2 +1,8 @@
1
- require 'rubygems'
2
- require 'ruby-debug'
1
+ # Add in the local library for the load path so we get that before any possible
2
+ # gem that is already installed.
3
+ $:.unshift File.dirname(__FILE__) + "/../lib"
4
+ $:.unshift File.dirname(__FILE__) + "/../lib/tmail"
5
+ require 'test/unit'
6
+ require 'extctrl'
7
+ require 'test/unit'
8
+ require 'tmail'
@@ -1,10 +1,8 @@
1
1
  $:.unshift File.dirname(__FILE__)
2
+ require 'test_helper'
2
3
  require 'tmail'
3
4
  require 'kcode'
4
- require 'extctrl'
5
- require 'test/unit'
6
5
  require 'time'
7
- require 'test_helper'
8
6
 
9
7
  class TestMail < Test::Unit::TestCase
10
8
  include TMail::TextUtils
@@ -292,6 +290,28 @@ EOS
292
290
  assert_equal nil, @mail.reply_to
293
291
  assert_equal 'DEFAULT VALUE', @mail.reply_to('DEFAULT VALUE')
294
292
  end
293
+
294
+ def test_reply_to_with_blank_reply_to
295
+ @mail = TMail::Mail.new
296
+ from_addr = TMail::Address.parse("Mikel Lindsaar <mikel@lindsaar.net>")
297
+ @mail.from = from_addr
298
+
299
+ # No reply_to set, should return from address
300
+ assert_equal([from_addr], @mail.reply_addresses)
301
+
302
+ # reply_to and from set, should return reply_to
303
+ reply_addr = TMail::Address.parse("Bob <bob@you.net>")
304
+ @mail.reply_to = reply_addr
305
+ assert_equal([reply_addr], @mail.reply_addresses)
306
+
307
+ # reply_to set but nil, should return from address
308
+ @mail.reply_to = nil
309
+ assert_equal([from_addr], @mail.reply_addresses)
310
+
311
+ # from and reply_to set, but nil, should return empty array
312
+ @mail.from = nil
313
+ assert_equal([], @mail.reply_addresses)
314
+ end
295
315
 
296
316
  def do_test_address_attr( name )
297
317
  addr = 'Minero Aoki <aamine@loveruby.net>'
@@ -571,8 +591,7 @@ EOF
571
591
  end
572
592
 
573
593
  def test_nested_attachments_are_recognized_correctly
574
- fixture = File.read("#{File.dirname(__FILE__)}/fixtures/raw_email_with_nested_attachment")
575
- mail = TMail::Mail.parse(fixture)
594
+ mail = TMail::Mail.load("#{File.dirname(__FILE__)}/fixtures/raw_email_with_nested_attachment")
576
595
  assert_equal 2, mail.attachments.length
577
596
  assert_equal "image/png", mail.attachments.first.content_type
578
597
  assert_equal 1902, mail.attachments.first.length
@@ -580,44 +599,54 @@ EOF
580
599
  end
581
600
 
582
601
  def test_decode_attachment_without_charset
583
- fixture = File.read(File.dirname(__FILE__) + "/fixtures/raw_email3")
584
- mail = TMail::Mail.parse(fixture)
602
+ mail = TMail::Mail.load("#{File.dirname(__FILE__)}/fixtures/raw_email3")
585
603
  attachment = mail.attachments.last
586
604
  assert_equal 1026, attachment.read.length
587
605
  end
588
606
 
589
607
  def test_decode_message_without_content_type
590
- fixture = File.read(File.dirname(__FILE__) + "/fixtures/raw_email4")
591
- mail = TMail::Mail.parse(fixture)
608
+ mail = TMail::Mail.load("#{File.dirname(__FILE__)}/fixtures/raw_email4")
592
609
  assert_nothing_raised { mail.body }
593
610
  end
594
611
 
595
612
  def test_quoting_of_illegal_boundary_when_doing_mail_to_s
596
- fixture = File.read(File.dirname(__FILE__) + "/fixtures/raw_email_with_illegal_boundary")
597
- mail = TMail::Mail.parse(fixture)
613
+ mail = TMail::Mail.load("#{File.dirname(__FILE__)}/fixtures/raw_email_with_illegal_boundary")
598
614
  assert_equal(true, mail.multipart?)
599
615
  assert_equal('multipart/alternative; boundary="----=_NextPart_000_0093_01C81419.EB75E850"', mail['content-type'].to_s)
600
616
  end
601
617
 
602
618
  def test_quoted_illegal_boundary_when_doing_mail_to_s
603
- fixture = File.read(File.dirname(__FILE__) + "/fixtures/raw_email_with_quoted_illegal_boundary")
604
- mail = TMail::Mail.parse(fixture)
619
+ mail = TMail::Mail.load("#{File.dirname(__FILE__)}/fixtures/raw_email_with_quoted_illegal_boundary")
605
620
  assert_equal(true, mail.multipart?)
606
621
  assert_equal('multipart/alternative; boundary="----=_NextPart_000_0093_01C81419.EB75E850"', mail['content-type'].to_s)
607
622
  end
608
623
 
609
624
  def test_quoted_illegal_boundary_with_multipart_mixed_when_doing_mail_to_s
610
- fixture = File.read(File.dirname(__FILE__) + "/fixtures/raw_email_with_multipart_mixed_quoted_boundary")
611
- mail = TMail::Mail.parse(fixture)
625
+ mail = TMail::Mail.load("#{File.dirname(__FILE__)}/fixtures/raw_email_with_multipart_mixed_quoted_boundary")
612
626
  assert_equal(true, mail.multipart?)
613
627
  assert_equal('multipart/mixed; boundary="----=_Part_2192_32400445.1115745999735"', mail['content-type'].to_s)
614
628
  end
615
629
 
616
630
  def test_when_opening_a_base64_encoded_email_and_re_parsing_it_keeps_the_transfer_encoding_correct
617
- mail = TMail::Mail.load(File.dirname(__FILE__) + "/fixtures/raw_base64_email")
631
+ mail = TMail::Mail.load("#{File.dirname(__FILE__)}/fixtures/raw_base64_email")
618
632
  assert_equal("Base64", mail['Content-Transfer-Encoding'].to_s)
619
633
  decoded_mail = TMail::Mail.parse(mail.to_s)
620
634
  assert_equal("Base64", decoded_mail['Content-Transfer-Encoding'].to_s)
621
635
  end
622
636
 
637
+ def test_create_reply
638
+ mail = TMail::Mail.load("#{File.dirname(__FILE__)}/fixtures/raw_email")
639
+ reply = mail.create_reply
640
+ assert_equal(["<d3b8cf8e49f04480850c28713a1f473e@37signals.com>"], reply.in_reply_to)
641
+ assert_equal(["<d3b8cf8e49f04480850c28713a1f473e@37signals.com>"], reply.references)
642
+ assert_equal(TMail::Mail, mail.create_reply.class)
643
+ end
644
+
645
+ def test_create_forward
646
+ mail = TMail::Mail.load("#{File.dirname(__FILE__)}/fixtures/raw_email")
647
+ forward = mail.create_forward
648
+ assert_equal(true, forward.multipart?)
649
+ assert_equal(TMail::Mail, forward.class)
650
+ end
651
+
623
652
  end
@@ -1,6 +1,6 @@
1
+ require 'test_helper'
1
2
  require 'tmail/mailbox'
2
3
  require 'fileutils'
3
- require 'test/unit'
4
4
 
5
5
  class MailboxTester < Test::Unit::TestCase
6
6
  include FileUtils
@@ -1,7 +1,7 @@
1
+ require 'test_helper'
1
2
  require 'tmail/loader'
2
3
  require 'tmail/port'
3
4
  require 'fileutils'
4
- require 'test/unit'
5
5
 
6
6
  class FilePortTester < Test::Unit::TestCase
7
7
  include FileUtils
@@ -1,7 +1,7 @@
1
1
  $:.unshift File.dirname(__FILE__)
2
+ require 'test_helper'
2
3
  require 'tmail/scanner'
3
4
  require 'test/unit'
4
- require 'extctrl'
5
5
 
6
6
  class ScannerTester < Test::Unit::TestCase
7
7
  DEBUG = false
@@ -1,7 +1,6 @@
1
+ require 'test_helper'
1
2
  require 'tmail'
2
3
  require 'tmail/utils'
3
- require 'test/unit'
4
- require 'test_helper'
5
4
 
6
5
  class TestUtils < Test::Unit::TestCase
7
6
 
metadata CHANGED
@@ -1,74 +1,38 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.4.6
3
- specification_version: 2
4
2
  name: tmail
5
3
  version: !ruby/object:Gem::Version
6
- version: 1.1.1
7
- date: 2007-11-07 00:00:00 -05:00
8
- summary: Ruby Mail Handler
9
- require_paths:
10
- - lib
11
- email: tmail-talk@rubyforge.org
12
- homepage:
13
- rubyforge_project:
14
- description: TMail is a Ruby-based mail handler. It allows you to compose stadards compliant emails in a very Ruby-way.
4
+ version: 1.2.0
5
+ platform: ruby
6
+ authors:
7
+ -
15
8
  autorequire:
16
- default_executable:
17
9
  bindir: bin
18
- has_rdoc:
19
- required_ruby_version: !ruby/object:Gem::Requirement
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: "0"
24
- version:
25
- required_rubygems_version: !ruby/object:Gem::Requirement
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- version: "0"
30
- version:
31
- platform: ruby
32
- signing_key:
33
10
  cert_chain: []
34
11
 
35
- post_install_message:
36
- extensions_fallback:
37
- authors:
38
- -
12
+ date: 2007-12-02 00:00:00 +11:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: TMail is a Ruby-based mail handler. It allows you to compose stadards compliant emails in a very Ruby-way.
17
+ email: tmail-talk@rubyforge.org
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files: []
23
+
39
24
  files:
40
- - LICENSE
41
- - README
42
- - bat
43
- - bat/changelog
44
- - bat/clobber
45
- - bat/clobber/package
46
- - bat/compile
47
- - bat/config.yaml
48
- - bat/prepare
49
- - bat/publish
50
- - bat/rdoc
51
- - bat/release
52
- - bat/setup
53
- - bat/stats
54
- - bat/tag
55
- - bat/test
25
+ - CHANGES
56
26
  - ext
57
- - ext/tmail
58
- - ext/tmail/Makefile
59
- - ext/tmail/base64
60
- - ext/tmail/base64/MANIFEST
61
- - ext/tmail/base64/base64.c
62
- - ext/tmail/base64/depend
63
- - ext/tmail/base64/extconf.rb
64
- - ext/tmail/scanner_c
65
- - ext/tmail/scanner_c/MANIFEST
66
- - ext/tmail/scanner_c/depend
67
- - ext/tmail/scanner_c/extconf.rb
68
- - ext/tmail/scanner_c/scanner_c.c
27
+ - ext/mailscanner
28
+ - ext/mailscanner/tmail
29
+ - ext/mailscanner/tmail/depend
30
+ - ext/mailscanner/tmail/extconf.rb
31
+ - ext/mailscanner/tmail/mailscanner.c
32
+ - ext/mailscanner/tmail/MANIFEST
33
+ - ext/Makefile
69
34
  - lib
70
35
  - lib/tmail
71
- - lib/tmail/Makefile
72
36
  - lib/tmail/address.rb
73
37
  - lib/tmail/attachments.rb
74
38
  - lib/tmail/base64.rb
@@ -82,8 +46,9 @@ files:
82
46
  - lib/tmail/loader.rb
83
47
  - lib/tmail/mail.rb
84
48
  - lib/tmail/mailbox.rb
49
+ - lib/tmail/main.rb
50
+ - lib/tmail/Makefile
85
51
  - lib/tmail/mbox.rb
86
- - lib/tmail/mswin32
87
52
  - lib/tmail/net.rb
88
53
  - lib/tmail/obsolete.rb
89
54
  - lib/tmail/parser.rb
@@ -94,14 +59,23 @@ files:
94
59
  - lib/tmail/scanner.rb
95
60
  - lib/tmail/scanner_r.rb
96
61
  - lib/tmail/stringio.rb
97
- - lib/tmail/tmail.rb
98
62
  - lib/tmail/utils.rb
99
63
  - lib/tmail/version.rb
100
64
  - lib/tmail.rb
65
+ - LICENSE
66
+ - log
67
+ - log/ChangeLog.txt
68
+ - log/History.txt
69
+ - log/Todo.txt
101
70
  - meta
102
71
  - meta/icli.yaml
103
- - meta/tmail-1.1.1.roll
72
+ - meta/MANIFEST
73
+ - meta/project.yaml
74
+ - meta/ROLLRC
75
+ - NOTES
76
+ - README
104
77
  - sample
78
+ - sample/bench_base64.rb
105
79
  - sample/data
106
80
  - sample/data/multipart
107
81
  - sample/data/normal
@@ -114,6 +88,20 @@ files:
114
88
  - sample/parse-bench.rb
115
89
  - sample/parse-test.rb
116
90
  - sample/sendmail.rb
91
+ - script
92
+ - script/changelog
93
+ - script/clobber
94
+ - script/clobber/distclean
95
+ - script/clobber/package
96
+ - script/compile
97
+ - script/config.yaml
98
+ - script/prepare
99
+ - script/publish
100
+ - script/release
101
+ - script/setup
102
+ - script/stats
103
+ - script/tag
104
+ - script/test
117
105
  - test
118
106
  - test/extctrl.rb
119
107
  - test/fixtures
@@ -134,7 +122,9 @@ files:
134
122
  - test/fixtures/raw_email8
135
123
  - test/fixtures/raw_email9
136
124
  - test/fixtures/raw_email_quoted_with_0d0a
125
+ - test/fixtures/raw_email_reply
137
126
  - test/fixtures/raw_email_simple
127
+ - test/fixtures/raw_email_with_bad_date
138
128
  - test/fixtures/raw_email_with_illegal_boundary
139
129
  - test/fixtures/raw_email_with_multipart_mixed_quoted_boundary
140
130
  - test/fixtures/raw_email_with_nested_attachment
@@ -152,6 +142,33 @@ files:
152
142
  - test/test_port.rb
153
143
  - test/test_scanner.rb
154
144
  - test/test_utils.rb
145
+ has_rdoc:
146
+ homepage:
147
+ post_install_message:
148
+ rdoc_options: []
149
+
150
+ require_paths:
151
+ - lib
152
+ - ext/tmail
153
+ required_ruby_version: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ version: "0"
158
+ version:
159
+ required_rubygems_version: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - ">="
162
+ - !ruby/object:Gem::Version
163
+ version: "0"
164
+ version:
165
+ requirements: []
166
+
167
+ rubyforge_project:
168
+ rubygems_version: 0.9.5
169
+ signing_key:
170
+ specification_version: 2
171
+ summary: Ruby Mail Handler
155
172
  test_files:
156
173
  - test/extctrl.rb
157
174
  - test/fixtures
@@ -172,7 +189,9 @@ test_files:
172
189
  - test/fixtures/raw_email8
173
190
  - test/fixtures/raw_email9
174
191
  - test/fixtures/raw_email_quoted_with_0d0a
192
+ - test/fixtures/raw_email_reply
175
193
  - test/fixtures/raw_email_simple
194
+ - test/fixtures/raw_email_with_bad_date
176
195
  - test/fixtures/raw_email_with_illegal_boundary
177
196
  - test/fixtures/raw_email_with_multipart_mixed_quoted_boundary
178
197
  - test/fixtures/raw_email_with_nested_attachment
@@ -190,16 +209,3 @@ test_files:
190
209
  - test/test_port.rb
191
210
  - test/test_scanner.rb
192
211
  - test/test_utils.rb
193
- rdoc_options: []
194
-
195
- extra_rdoc_files: []
196
-
197
- executables: []
198
-
199
- extensions:
200
- - ./ext/tmail/base64/extconf.rb
201
- - ./ext/tmail/scanner_c/extconf.rb
202
- requirements: []
203
-
204
- dependencies: []
205
-