mail 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of mail might be problematic. Click here for more details.
- data/.gitignore +4 -0
- data/Manifest.txt +106 -0
- data/README.rdoc +441 -0
- data/Rakefile +38 -0
- data/lib/mail.rb +86 -0
- data/lib/mail/attachment.rb +90 -0
- data/lib/mail/body.rb +149 -0
- data/lib/mail/configuration.rb +90 -0
- data/lib/mail/core_extensions.rb +6 -0
- data/lib/mail/core_extensions/blank.rb +41 -0
- data/lib/mail/core_extensions/nil.rb +15 -0
- data/lib/mail/core_extensions/string.rb +31 -0
- data/lib/mail/elements/address.rb +293 -0
- data/lib/mail/elements/address_list.rb +62 -0
- data/lib/mail/elements/content_disposition_element.rb +34 -0
- data/lib/mail/elements/content_transfer_encoding_element.rb +21 -0
- data/lib/mail/elements/content_type_element.rb +39 -0
- data/lib/mail/elements/date_time_element.rb +26 -0
- data/lib/mail/elements/envelope_from_element.rb +34 -0
- data/lib/mail/elements/message_ids_element.rb +29 -0
- data/lib/mail/elements/mime_version_element.rb +26 -0
- data/lib/mail/elements/phrase_list.rb +21 -0
- data/lib/mail/elements/received_element.rb +30 -0
- data/lib/mail/encodings/base64.rb +17 -0
- data/lib/mail/encodings/encodings.rb +24 -0
- data/lib/mail/encodings/quoted_printable.rb +26 -0
- data/lib/mail/envelope.rb +35 -0
- data/lib/mail/field.rb +202 -0
- data/lib/mail/field_list.rb +33 -0
- data/lib/mail/fields/bcc_field.rb +40 -0
- data/lib/mail/fields/cc_field.rb +40 -0
- data/lib/mail/fields/comments_field.rb +41 -0
- data/lib/mail/fields/common/common_address.rb +62 -0
- data/lib/mail/fields/common/common_date.rb +35 -0
- data/lib/mail/fields/common/common_field.rb +128 -0
- data/lib/mail/fields/common/common_message_id.rb +35 -0
- data/lib/mail/fields/content_description_field.rb +15 -0
- data/lib/mail/fields/content_disposition_field.rb +34 -0
- data/lib/mail/fields/content_id_field.rb +50 -0
- data/lib/mail/fields/content_transfer_encoding_field.rb +28 -0
- data/lib/mail/fields/content_type_field.rb +50 -0
- data/lib/mail/fields/date_field.rb +44 -0
- data/lib/mail/fields/from_field.rb +40 -0
- data/lib/mail/fields/in_reply_to_field.rb +42 -0
- data/lib/mail/fields/keywords_field.rb +22 -0
- data/lib/mail/fields/message_id_field.rb +70 -0
- data/lib/mail/fields/mime_version_field.rb +42 -0
- data/lib/mail/fields/optional_field.rb +11 -0
- data/lib/mail/fields/received_field.rb +49 -0
- data/lib/mail/fields/references_field.rb +42 -0
- data/lib/mail/fields/reply_to_field.rb +40 -0
- data/lib/mail/fields/resent_bcc_field.rb +40 -0
- data/lib/mail/fields/resent_cc_field.rb +40 -0
- data/lib/mail/fields/resent_date_field.rb +16 -0
- data/lib/mail/fields/resent_from_field.rb +40 -0
- data/lib/mail/fields/resent_message_id_field.rb +20 -0
- data/lib/mail/fields/resent_sender_field.rb +48 -0
- data/lib/mail/fields/resent_to_field.rb +40 -0
- data/lib/mail/fields/return_path_field.rb +34 -0
- data/lib/mail/fields/sender_field.rb +48 -0
- data/lib/mail/fields/structured_field.rb +32 -0
- data/lib/mail/fields/subject_field.rb +14 -0
- data/lib/mail/fields/to_field.rb +40 -0
- data/lib/mail/fields/unstructured_field.rb +27 -0
- data/lib/mail/header.rb +213 -0
- data/lib/mail/mail.rb +120 -0
- data/lib/mail/message.rb +648 -0
- data/lib/mail/network/deliverable.rb +42 -0
- data/lib/mail/network/retrievable.rb +63 -0
- data/lib/mail/parsers/address_lists.rb +61 -0
- data/lib/mail/parsers/address_lists.treetop +19 -0
- data/lib/mail/parsers/content_disposition.rb +358 -0
- data/lib/mail/parsers/content_disposition.treetop +45 -0
- data/lib/mail/parsers/content_transfer_encoding.rb +179 -0
- data/lib/mail/parsers/content_transfer_encoding.treetop +25 -0
- data/lib/mail/parsers/content_type.rb +507 -0
- data/lib/mail/parsers/content_type.treetop +58 -0
- data/lib/mail/parsers/date_time.rb +111 -0
- data/lib/mail/parsers/date_time.treetop +11 -0
- data/lib/mail/parsers/envelope_from.rb +188 -0
- data/lib/mail/parsers/envelope_from.treetop +32 -0
- data/lib/mail/parsers/message_ids.rb +42 -0
- data/lib/mail/parsers/message_ids.treetop +15 -0
- data/lib/mail/parsers/mime_version.rb +141 -0
- data/lib/mail/parsers/mime_version.treetop +19 -0
- data/lib/mail/parsers/phrase_lists.rb +42 -0
- data/lib/mail/parsers/phrase_lists.treetop +15 -0
- data/lib/mail/parsers/received.rb +68 -0
- data/lib/mail/parsers/received.treetop +11 -0
- data/lib/mail/parsers/rfc2045.rb +406 -0
- data/lib/mail/parsers/rfc2045.treetop +35 -0
- data/lib/mail/parsers/rfc2822.rb +5005 -0
- data/lib/mail/parsers/rfc2822.treetop +402 -0
- data/lib/mail/parsers/rfc2822_obsolete.rb +3607 -0
- data/lib/mail/parsers/rfc2822_obsolete.treetop +241 -0
- data/lib/mail/part.rb +120 -0
- data/lib/mail/patterns.rb +42 -0
- data/lib/mail/utilities.rb +142 -0
- data/lib/mail/version.rb +10 -0
- data/lib/mail/version_specific/multibyte.rb +62 -0
- data/lib/mail/version_specific/multibyte/chars.rb +701 -0
- data/lib/mail/version_specific/multibyte/exceptions.rb +8 -0
- data/lib/mail/version_specific/multibyte/unicode_database.rb +71 -0
- data/lib/mail/version_specific/ruby_1_8.rb +61 -0
- data/lib/mail/version_specific/ruby_1_8_string.rb +88 -0
- data/lib/mail/version_specific/ruby_1_9.rb +49 -0
- metadata +192 -0
@@ -0,0 +1,71 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Mail #:nodoc:
|
4
|
+
module Multibyte #:nodoc:
|
5
|
+
# Holds data about a codepoint in the Unicode database
|
6
|
+
class Codepoint
|
7
|
+
attr_accessor :code, :combining_class, :decomp_type, :decomp_mapping, :uppercase_mapping, :lowercase_mapping
|
8
|
+
end
|
9
|
+
|
10
|
+
# Holds static data from the Unicode database
|
11
|
+
class UnicodeDatabase
|
12
|
+
ATTRIBUTES = :codepoints, :composition_exclusion, :composition_map, :boundary, :cp1252
|
13
|
+
|
14
|
+
attr_writer(*ATTRIBUTES)
|
15
|
+
|
16
|
+
def initialize
|
17
|
+
@codepoints = Hash.new(Codepoint.new)
|
18
|
+
@composition_exclusion = []
|
19
|
+
@composition_map = {}
|
20
|
+
@boundary = {}
|
21
|
+
@cp1252 = {}
|
22
|
+
end
|
23
|
+
|
24
|
+
# Lazy load the Unicode database so it's only loaded when it's actually used
|
25
|
+
ATTRIBUTES.each do |attr_name|
|
26
|
+
class_eval(<<-EOS, __FILE__, __LINE__)
|
27
|
+
def #{attr_name} # def codepoints
|
28
|
+
load # load
|
29
|
+
@#{attr_name} # @codepoints
|
30
|
+
end # end
|
31
|
+
EOS
|
32
|
+
end
|
33
|
+
|
34
|
+
# Loads the Unicode database and returns all the internal objects of UnicodeDatabase.
|
35
|
+
def load
|
36
|
+
begin
|
37
|
+
@codepoints, @composition_exclusion, @composition_map, @boundary, @cp1252 = File.open(self.class.filename, 'rb') { |f| Marshal.load f.read }
|
38
|
+
rescue Exception => e
|
39
|
+
raise IOError.new("Couldn't load the Unicode tables for UTF8Handler (#{e.message}), ActiveSupport::Multibyte is unusable")
|
40
|
+
end
|
41
|
+
|
42
|
+
# Redefine the === method so we can write shorter rules for grapheme cluster breaks
|
43
|
+
@boundary.each do |k,_|
|
44
|
+
@boundary[k].instance_eval do
|
45
|
+
def ===(other)
|
46
|
+
detect { |i| i === other } ? true : false
|
47
|
+
end
|
48
|
+
end if @boundary[k].kind_of?(Array)
|
49
|
+
end
|
50
|
+
|
51
|
+
# define attr_reader methods for the instance variables
|
52
|
+
class << self
|
53
|
+
attr_reader(*ATTRIBUTES)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
# Returns the directory in which the data files are stored
|
58
|
+
def self.dirname
|
59
|
+
File.dirname(__FILE__) + '/../values/'
|
60
|
+
end
|
61
|
+
|
62
|
+
# Returns the filename for the data file for this version
|
63
|
+
def self.filename
|
64
|
+
File.expand_path File.join(dirname, "unicode_tables.dat")
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
# UniCode Database
|
69
|
+
UCD = UnicodeDatabase.new
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mail
|
3
|
+
class Ruby18
|
4
|
+
require 'base64'
|
5
|
+
|
6
|
+
# Escapes any parenthesis in a string that are unescaped. This can't
|
7
|
+
# use the Ruby 1.9.1 regexp feature of negative look behind so we have
|
8
|
+
# to do two replacement, first unescape everything, then re-escape it
|
9
|
+
def Ruby18.escape_paren( str )
|
10
|
+
re = /\\\)/
|
11
|
+
str = str.gsub(re) { |s| ')'}
|
12
|
+
re = /\\\(/
|
13
|
+
str = str.gsub(re) { |s| '('}
|
14
|
+
re = /([\(\)])/ # Only match unescaped parens
|
15
|
+
str.gsub(re) { |s| '\\' + s }
|
16
|
+
end
|
17
|
+
|
18
|
+
def Ruby18.paren( str )
|
19
|
+
str = $1 if str =~ /^\((.*)?\)$/
|
20
|
+
str = escape_paren( str )
|
21
|
+
'(' + str + ')'
|
22
|
+
end
|
23
|
+
|
24
|
+
def Ruby18.decode_base64(str)
|
25
|
+
Base64.decode64(str)
|
26
|
+
end
|
27
|
+
|
28
|
+
def Ruby18.encode_base64(str)
|
29
|
+
Base64.encode64(str)
|
30
|
+
end
|
31
|
+
|
32
|
+
def Ruby18.has_constant?(klass, string)
|
33
|
+
klass.constants.include?( string )
|
34
|
+
end
|
35
|
+
|
36
|
+
def Ruby18.get_constant(klass, string)
|
37
|
+
klass.const_get( string )
|
38
|
+
end
|
39
|
+
|
40
|
+
def Ruby18.b_encode(str, encoding)
|
41
|
+
# Ruby 1.8 requires an encoding to work
|
42
|
+
raise ArgumentError, "Must supply an encoding" if encoding.nil?
|
43
|
+
return str if str.ascii_only?
|
44
|
+
encoding = encoding.to_s.upcase.gsub('_', '-')
|
45
|
+
string = Encodings::Base64.encode(str)
|
46
|
+
"=?#{encoding}?B?#{string.chomp}?="
|
47
|
+
end
|
48
|
+
|
49
|
+
def Ruby18.q_encode(str, encoding)
|
50
|
+
# Ruby 1.8 requires an encoding to work
|
51
|
+
raise ArgumentError, "Must supply an encoding" if encoding.nil?
|
52
|
+
return str if str.ascii_only?
|
53
|
+
encoding = encoding.to_s.upcase.gsub('_', '-')
|
54
|
+
string = Encodings::QuotedPrintable.encode(str)
|
55
|
+
"=?#{encoding}?Q?#{string.chomp}?="
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
|
61
|
+
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# :nodoc:
|
3
|
+
# OK... serious code smell in here... I just took the whole multibyte_chars code out of
|
4
|
+
# ActiveSupport.... hacked it to fit... like a mallet bashing a square peg... the thing
|
5
|
+
# fits in the hole... really!
|
6
|
+
#
|
7
|
+
# Bah... I'll get the first gem out and we'll fix this up.
|
8
|
+
require File.join(File.dirname(__FILE__), 'multibyte')
|
9
|
+
|
10
|
+
module Mail
|
11
|
+
|
12
|
+
# Taken from Rails::Mail::Multibyte
|
13
|
+
module Multibyte
|
14
|
+
|
15
|
+
unless '1.9'.respond_to?(:force_encoding)
|
16
|
+
# == Multibyte proxy
|
17
|
+
#
|
18
|
+
# +mb_chars+ is a multibyte safe proxy for string methods.
|
19
|
+
#
|
20
|
+
# In Ruby 1.8 and older it creates and returns an instance of the Mail::Multibyte::Chars class which
|
21
|
+
# encapsulates the original string. A Unicode safe version of all the String methods are defined on this proxy
|
22
|
+
# class. If the proxy class doesn't respond to a certain method, it's forwarded to the encapsuled string.
|
23
|
+
#
|
24
|
+
# name = 'Claus Müller'
|
25
|
+
# name.reverse #=> "rell??M sualC"
|
26
|
+
# name.length #=> 13
|
27
|
+
#
|
28
|
+
# name.mb_chars.reverse.to_s #=> "rellüM sualC"
|
29
|
+
# name.mb_chars.length #=> 12
|
30
|
+
#
|
31
|
+
# In Ruby 1.9 and newer +mb_chars+ returns +self+ because String is (mostly) encoding aware. This means that
|
32
|
+
# it becomes easy to run one version of your code on multiple Ruby versions.
|
33
|
+
#
|
34
|
+
# == Method chaining
|
35
|
+
#
|
36
|
+
# All the methods on the Chars proxy which normally return a string will return a Chars object. This allows
|
37
|
+
# method chaining on the result of any of these methods.
|
38
|
+
#
|
39
|
+
# name.mb_chars.reverse.length #=> 12
|
40
|
+
#
|
41
|
+
# == Interoperability and configuration
|
42
|
+
#
|
43
|
+
# The Chars object tries to be as interchangeable with String objects as possible: sorting and comparing between
|
44
|
+
# String and Char work like expected. The bang! methods change the internal string representation in the Chars
|
45
|
+
# object. Interoperability problems can be resolved easily with a +to_s+ call.
|
46
|
+
#
|
47
|
+
# For more information about the methods defined on the Chars proxy see Mail::Multibyte::Chars. For
|
48
|
+
# information about how to change the default Multibyte behaviour see Mail::Multibyte.
|
49
|
+
def mb_chars
|
50
|
+
if Mail::Multibyte.proxy_class.wants?(self)
|
51
|
+
Mail::Multibyte.proxy_class.new(self)
|
52
|
+
else
|
53
|
+
self
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
# Returns true if the string has UTF-8 semantics (a String used for purely byte resources is unlikely to have
|
58
|
+
# them), returns false otherwise.
|
59
|
+
def is_utf8?
|
60
|
+
Mail::Multibyte::Chars.consumes?(self)
|
61
|
+
end
|
62
|
+
|
63
|
+
unless '1.8.7 and later'.respond_to?(:chars)
|
64
|
+
def chars
|
65
|
+
Mail::Deprecation.warn('String#chars has been deprecated in favor of String#mb_chars.', caller)
|
66
|
+
mb_chars
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
else
|
71
|
+
def mb_chars #:nodoc
|
72
|
+
self
|
73
|
+
end
|
74
|
+
|
75
|
+
def is_utf8? #:nodoc
|
76
|
+
case encoding
|
77
|
+
when Encoding::UTF_8
|
78
|
+
valid_encoding?
|
79
|
+
when Encoding::ASCII_8BIT, Encoding::US_ASCII
|
80
|
+
dup.force_encoding(Encoding::UTF_8).valid_encoding?
|
81
|
+
else
|
82
|
+
false
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mail
|
3
|
+
class Ruby19
|
4
|
+
|
5
|
+
# Escapes any parenthesis in a string that are unescaped this uses
|
6
|
+
# a Ruby 1.9.1 regexp feature of negative look behind
|
7
|
+
def Ruby19.escape_paren( str )
|
8
|
+
re = /(?<!\\)([\(\)])/ # Only match unescaped parens
|
9
|
+
str.gsub(re) { |s| '\\' + s }
|
10
|
+
end
|
11
|
+
|
12
|
+
def Ruby19.paren( str )
|
13
|
+
str = $1 if str =~ /^\((.*)?\)$/
|
14
|
+
str = escape_paren( str )
|
15
|
+
'(' + str + ')'
|
16
|
+
end
|
17
|
+
|
18
|
+
def Ruby19.decode_base64(str)
|
19
|
+
str.unpack( 'm' ).first.force_encoding(Encoding::BINARY)
|
20
|
+
end
|
21
|
+
|
22
|
+
def Ruby19.encode_base64(str)
|
23
|
+
[str].pack( 'm' )
|
24
|
+
end
|
25
|
+
|
26
|
+
def Ruby19.has_constant?(klass, string)
|
27
|
+
klass.constants.include?( string.to_sym )
|
28
|
+
end
|
29
|
+
|
30
|
+
def Ruby19.get_constant(klass, string)
|
31
|
+
klass.const_get( string.to_sym )
|
32
|
+
end
|
33
|
+
|
34
|
+
def Ruby19.b_encode(str, encoding = nil)
|
35
|
+
return str if str.ascii_only?
|
36
|
+
encoding = str.encoding.to_s
|
37
|
+
string = Encodings::Base64.encode(str)
|
38
|
+
"=?#{encoding}?B?#{string.chomp}?="
|
39
|
+
end
|
40
|
+
|
41
|
+
def Ruby19.q_encode(str, encoding = nil)
|
42
|
+
return str if str.ascii_only?
|
43
|
+
encoding = str.encoding.to_s
|
44
|
+
string = Encodings::QuotedPrintable.encode(str)
|
45
|
+
"=?#{encoding}?Q?#{string.chomp}?="
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
metadata
ADDED
@@ -0,0 +1,192 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mail
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Mikel Lindsaar
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-10-25 00:00:00 +11:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: treetop
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: "1.4"
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: mime-types
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: "1.0"
|
34
|
+
version:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: rspec
|
37
|
+
type: :development
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 1.2.9
|
44
|
+
version:
|
45
|
+
description: A really Ruby Mail handler.
|
46
|
+
email: raasdnil@gmail.com
|
47
|
+
executables: []
|
48
|
+
|
49
|
+
extensions: []
|
50
|
+
|
51
|
+
extra_rdoc_files:
|
52
|
+
- README.rdoc
|
53
|
+
files:
|
54
|
+
- ./.gitignore
|
55
|
+
- ./Manifest.txt
|
56
|
+
- ./README.rdoc
|
57
|
+
- ./Rakefile
|
58
|
+
- ./lib/mail.rb
|
59
|
+
- ./lib/mail/attachment.rb
|
60
|
+
- ./lib/mail/body.rb
|
61
|
+
- ./lib/mail/configuration.rb
|
62
|
+
- ./lib/mail/core_extensions/blank.rb
|
63
|
+
- ./lib/mail/core_extensions/nil.rb
|
64
|
+
- ./lib/mail/core_extensions/string.rb
|
65
|
+
- ./lib/mail/core_extensions.rb
|
66
|
+
- ./lib/mail/elements/address.rb
|
67
|
+
- ./lib/mail/elements/address_list.rb
|
68
|
+
- ./lib/mail/elements/content_disposition_element.rb
|
69
|
+
- ./lib/mail/elements/content_transfer_encoding_element.rb
|
70
|
+
- ./lib/mail/elements/content_type_element.rb
|
71
|
+
- ./lib/mail/elements/date_time_element.rb
|
72
|
+
- ./lib/mail/elements/envelope_from_element.rb
|
73
|
+
- ./lib/mail/elements/message_ids_element.rb
|
74
|
+
- ./lib/mail/elements/mime_version_element.rb
|
75
|
+
- ./lib/mail/elements/phrase_list.rb
|
76
|
+
- ./lib/mail/elements/received_element.rb
|
77
|
+
- ./lib/mail/encodings/base64.rb
|
78
|
+
- ./lib/mail/encodings/encodings.rb
|
79
|
+
- ./lib/mail/encodings/quoted_printable.rb
|
80
|
+
- ./lib/mail/envelope.rb
|
81
|
+
- ./lib/mail/field.rb
|
82
|
+
- ./lib/mail/field_list.rb
|
83
|
+
- ./lib/mail/fields/bcc_field.rb
|
84
|
+
- ./lib/mail/fields/cc_field.rb
|
85
|
+
- ./lib/mail/fields/comments_field.rb
|
86
|
+
- ./lib/mail/fields/common/common_address.rb
|
87
|
+
- ./lib/mail/fields/common/common_date.rb
|
88
|
+
- ./lib/mail/fields/common/common_field.rb
|
89
|
+
- ./lib/mail/fields/common/common_message_id.rb
|
90
|
+
- ./lib/mail/fields/content_description_field.rb
|
91
|
+
- ./lib/mail/fields/content_disposition_field.rb
|
92
|
+
- ./lib/mail/fields/content_id_field.rb
|
93
|
+
- ./lib/mail/fields/content_transfer_encoding_field.rb
|
94
|
+
- ./lib/mail/fields/content_type_field.rb
|
95
|
+
- ./lib/mail/fields/date_field.rb
|
96
|
+
- ./lib/mail/fields/from_field.rb
|
97
|
+
- ./lib/mail/fields/in_reply_to_field.rb
|
98
|
+
- ./lib/mail/fields/keywords_field.rb
|
99
|
+
- ./lib/mail/fields/message_id_field.rb
|
100
|
+
- ./lib/mail/fields/mime_version_field.rb
|
101
|
+
- ./lib/mail/fields/optional_field.rb
|
102
|
+
- ./lib/mail/fields/received_field.rb
|
103
|
+
- ./lib/mail/fields/references_field.rb
|
104
|
+
- ./lib/mail/fields/reply_to_field.rb
|
105
|
+
- ./lib/mail/fields/resent_bcc_field.rb
|
106
|
+
- ./lib/mail/fields/resent_cc_field.rb
|
107
|
+
- ./lib/mail/fields/resent_date_field.rb
|
108
|
+
- ./lib/mail/fields/resent_from_field.rb
|
109
|
+
- ./lib/mail/fields/resent_message_id_field.rb
|
110
|
+
- ./lib/mail/fields/resent_sender_field.rb
|
111
|
+
- ./lib/mail/fields/resent_to_field.rb
|
112
|
+
- ./lib/mail/fields/return_path_field.rb
|
113
|
+
- ./lib/mail/fields/sender_field.rb
|
114
|
+
- ./lib/mail/fields/structured_field.rb
|
115
|
+
- ./lib/mail/fields/subject_field.rb
|
116
|
+
- ./lib/mail/fields/to_field.rb
|
117
|
+
- ./lib/mail/fields/unstructured_field.rb
|
118
|
+
- ./lib/mail/header.rb
|
119
|
+
- ./lib/mail/mail.rb
|
120
|
+
- ./lib/mail/message.rb
|
121
|
+
- ./lib/mail/network/deliverable.rb
|
122
|
+
- ./lib/mail/network/retrievable.rb
|
123
|
+
- ./lib/mail/parsers/address_lists.rb
|
124
|
+
- ./lib/mail/parsers/address_lists.treetop
|
125
|
+
- ./lib/mail/parsers/content_disposition.rb
|
126
|
+
- ./lib/mail/parsers/content_disposition.treetop
|
127
|
+
- ./lib/mail/parsers/content_transfer_encoding.rb
|
128
|
+
- ./lib/mail/parsers/content_transfer_encoding.treetop
|
129
|
+
- ./lib/mail/parsers/content_type.rb
|
130
|
+
- ./lib/mail/parsers/content_type.treetop
|
131
|
+
- ./lib/mail/parsers/date_time.rb
|
132
|
+
- ./lib/mail/parsers/date_time.treetop
|
133
|
+
- ./lib/mail/parsers/envelope_from.rb
|
134
|
+
- ./lib/mail/parsers/envelope_from.treetop
|
135
|
+
- ./lib/mail/parsers/message_ids.rb
|
136
|
+
- ./lib/mail/parsers/message_ids.treetop
|
137
|
+
- ./lib/mail/parsers/mime_version.rb
|
138
|
+
- ./lib/mail/parsers/mime_version.treetop
|
139
|
+
- ./lib/mail/parsers/phrase_lists.rb
|
140
|
+
- ./lib/mail/parsers/phrase_lists.treetop
|
141
|
+
- ./lib/mail/parsers/received.rb
|
142
|
+
- ./lib/mail/parsers/received.treetop
|
143
|
+
- ./lib/mail/parsers/rfc2045.rb
|
144
|
+
- ./lib/mail/parsers/rfc2045.treetop
|
145
|
+
- ./lib/mail/parsers/rfc2822.rb
|
146
|
+
- ./lib/mail/parsers/rfc2822.treetop
|
147
|
+
- ./lib/mail/parsers/rfc2822_obsolete.rb
|
148
|
+
- ./lib/mail/parsers/rfc2822_obsolete.treetop
|
149
|
+
- ./lib/mail/part.rb
|
150
|
+
- ./lib/mail/patterns.rb
|
151
|
+
- ./lib/mail/utilities.rb
|
152
|
+
- ./lib/mail/version.rb
|
153
|
+
- ./lib/mail/version_specific/ruby_1_8.rb
|
154
|
+
- ./lib/mail/version_specific/ruby_1_8_string.rb
|
155
|
+
- ./lib/mail/version_specific/ruby_1_9.rb
|
156
|
+
- ./lib/mail/version_specific/multibyte.rb
|
157
|
+
- ./lib/mail/version_specific/multibyte/chars.rb
|
158
|
+
- ./lib/mail/version_specific/multibyte/exceptions.rb
|
159
|
+
- ./lib/mail/version_specific/multibyte/unicode_database.rb
|
160
|
+
- README.rdoc
|
161
|
+
has_rdoc: true
|
162
|
+
homepage: http://github.com/mikel/mail
|
163
|
+
licenses: []
|
164
|
+
|
165
|
+
post_install_message:
|
166
|
+
rdoc_options:
|
167
|
+
- --charset=UTF-8
|
168
|
+
require_paths:
|
169
|
+
- lib
|
170
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
171
|
+
requirements:
|
172
|
+
- - ">="
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: "0"
|
175
|
+
version:
|
176
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: 1.2.0
|
181
|
+
version:
|
182
|
+
requirements:
|
183
|
+
- treetop, Treetop is a Ruby-based DSL for text parsing and interpretation
|
184
|
+
- mime/types, A list of a lot of Mime Types
|
185
|
+
- tlsmail, Used for encrypted SMTP, only if you are on RUBY_VERSION <= 1.8.6
|
186
|
+
rubyforge_project:
|
187
|
+
rubygems_version: 1.3.5
|
188
|
+
signing_key:
|
189
|
+
specification_version: 3
|
190
|
+
summary: Mail provides a nice Ruby DSL for making, sending and reading emails.
|
191
|
+
test_files: []
|
192
|
+
|