mail 2.7.0 → 2.8.0.rc1

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 (125) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +45 -28
  3. data/lib/mail/attachments_list.rb +2 -5
  4. data/lib/mail/body.rb +33 -50
  5. data/lib/mail/constants.rb +27 -5
  6. data/lib/mail/elements/address.rb +27 -27
  7. data/lib/mail/elements/address_list.rb +1 -1
  8. data/lib/mail/elements/content_disposition_element.rb +1 -1
  9. data/lib/mail/elements/content_location_element.rb +1 -1
  10. data/lib/mail/elements/content_transfer_encoding_element.rb +1 -1
  11. data/lib/mail/elements/content_type_element.rb +8 -4
  12. data/lib/mail/elements/date_time_element.rb +1 -1
  13. data/lib/mail/elements/envelope_from_element.rb +13 -7
  14. data/lib/mail/elements/message_ids_element.rb +14 -5
  15. data/lib/mail/elements/mime_version_element.rb +1 -1
  16. data/lib/mail/elements/phrase_list.rb +7 -2
  17. data/lib/mail/elements/received_element.rb +20 -6
  18. data/lib/mail/encodings/7bit.rb +5 -0
  19. data/lib/mail/encodings/base64.rb +2 -2
  20. data/lib/mail/encodings/quoted_printable.rb +2 -2
  21. data/lib/mail/encodings/transfer_encoding.rb +1 -1
  22. data/lib/mail/encodings/unix_to_unix.rb +1 -0
  23. data/lib/mail/encodings.rb +30 -59
  24. data/lib/mail/envelope.rb +11 -14
  25. data/lib/mail/field.rb +39 -53
  26. data/lib/mail/field_list.rb +60 -7
  27. data/lib/mail/fields/bcc_field.rb +34 -52
  28. data/lib/mail/fields/cc_field.rb +28 -49
  29. data/lib/mail/fields/comments_field.rb +27 -37
  30. data/lib/mail/fields/common_address_field.rb +170 -0
  31. data/lib/mail/fields/common_date_field.rb +58 -0
  32. data/lib/mail/fields/common_field.rb +77 -0
  33. data/lib/mail/fields/common_message_id_field.rb +42 -0
  34. data/lib/mail/fields/content_description_field.rb +7 -14
  35. data/lib/mail/fields/content_disposition_field.rb +13 -38
  36. data/lib/mail/fields/content_id_field.rb +24 -51
  37. data/lib/mail/fields/content_location_field.rb +11 -25
  38. data/lib/mail/fields/content_transfer_encoding_field.rb +31 -31
  39. data/lib/mail/fields/content_type_field.rb +47 -72
  40. data/lib/mail/fields/date_field.rb +23 -51
  41. data/lib/mail/fields/from_field.rb +28 -49
  42. data/lib/mail/fields/in_reply_to_field.rb +38 -49
  43. data/lib/mail/fields/keywords_field.rb +18 -31
  44. data/lib/mail/fields/message_id_field.rb +25 -71
  45. data/lib/mail/fields/mime_version_field.rb +19 -30
  46. data/lib/mail/fields/named_structured_field.rb +11 -0
  47. data/lib/mail/fields/named_unstructured_field.rb +11 -0
  48. data/lib/mail/fields/optional_field.rb +5 -6
  49. data/lib/mail/fields/{common/parameter_hash.rb → parameter_hash.rb} +12 -10
  50. data/lib/mail/fields/received_field.rb +43 -57
  51. data/lib/mail/fields/references_field.rb +35 -49
  52. data/lib/mail/fields/reply_to_field.rb +28 -49
  53. data/lib/mail/fields/resent_bcc_field.rb +28 -49
  54. data/lib/mail/fields/resent_cc_field.rb +28 -49
  55. data/lib/mail/fields/resent_date_field.rb +5 -29
  56. data/lib/mail/fields/resent_from_field.rb +28 -49
  57. data/lib/mail/fields/resent_message_id_field.rb +5 -29
  58. data/lib/mail/fields/resent_sender_field.rb +27 -56
  59. data/lib/mail/fields/resent_to_field.rb +28 -49
  60. data/lib/mail/fields/return_path_field.rb +50 -54
  61. data/lib/mail/fields/sender_field.rb +34 -55
  62. data/lib/mail/fields/structured_field.rb +3 -30
  63. data/lib/mail/fields/subject_field.rb +9 -11
  64. data/lib/mail/fields/to_field.rb +28 -49
  65. data/lib/mail/fields/unstructured_field.rb +16 -48
  66. data/lib/mail/header.rb +69 -110
  67. data/lib/mail/matchers/attachment_matchers.rb +15 -0
  68. data/lib/mail/message.rb +47 -66
  69. data/lib/mail/multibyte/chars.rb +8 -166
  70. data/lib/mail/multibyte/unicode.rb +10 -10
  71. data/lib/mail/multibyte/utils.rb +26 -43
  72. data/lib/mail/multibyte.rb +1 -11
  73. data/lib/mail/network/delivery_methods/exim.rb +5 -4
  74. data/lib/mail/network/delivery_methods/file_delivery.rb +11 -10
  75. data/lib/mail/network/delivery_methods/logger_delivery.rb +2 -5
  76. data/lib/mail/network/delivery_methods/sendmail.rb +27 -35
  77. data/lib/mail/network/delivery_methods/smtp.rb +3 -3
  78. data/lib/mail/network/delivery_methods/smtp_connection.rb +3 -12
  79. data/lib/mail/network/delivery_methods/test_mailer.rb +4 -2
  80. data/lib/mail/network/retriever_methods/base.rb +8 -8
  81. data/lib/mail/network/retriever_methods/imap.rb +3 -3
  82. data/lib/mail/network/retriever_methods/pop3.rb +2 -2
  83. data/lib/mail/network/retriever_methods/test_retriever.rb +2 -1
  84. data/lib/mail/parsers/address_lists_parser.rb +33175 -33140
  85. data/lib/mail/parsers/address_lists_parser.rl +7 -0
  86. data/lib/mail/parsers/content_disposition_parser.rb +889 -889
  87. data/lib/mail/parsers/content_disposition_parser.rl +7 -0
  88. data/lib/mail/parsers/content_location_parser.rb +796 -787
  89. data/lib/mail/parsers/content_location_parser.rl +7 -0
  90. data/lib/mail/parsers/content_transfer_encoding_parser.rb +496 -496
  91. data/lib/mail/parsers/content_transfer_encoding_parser.rl +7 -0
  92. data/lib/mail/parsers/content_type_parser.rb +1008 -1005
  93. data/lib/mail/parsers/content_type_parser.rl +7 -0
  94. data/lib/mail/parsers/date_time_parser.rb +864 -859
  95. data/lib/mail/parsers/date_time_parser.rl +7 -0
  96. data/lib/mail/parsers/envelope_from_parser.rb +3649 -3548
  97. data/lib/mail/parsers/envelope_from_parser.rl +7 -0
  98. data/lib/mail/parsers/message_ids_parser.rb +5135 -2832
  99. data/lib/mail/parsers/message_ids_parser.rl +12 -1
  100. data/lib/mail/parsers/mime_version_parser.rb +487 -483
  101. data/lib/mail/parsers/mime_version_parser.rl +7 -0
  102. data/lib/mail/parsers/phrase_lists_parser.rb +858 -865
  103. data/lib/mail/parsers/phrase_lists_parser.rl +8 -1
  104. data/lib/mail/parsers/received_parser.rb +8756 -8728
  105. data/lib/mail/parsers/received_parser.rl +7 -0
  106. data/lib/mail/parsers/rfc5322.rl +28 -13
  107. data/lib/mail/parsers.rb +11 -17
  108. data/lib/mail/part.rb +6 -10
  109. data/lib/mail/parts_list.rb +57 -0
  110. data/lib/mail/smtp_envelope.rb +57 -0
  111. data/lib/mail/utilities.rb +325 -87
  112. data/lib/mail/version.rb +2 -2
  113. data/lib/mail/yaml.rb +30 -0
  114. data/lib/mail.rb +0 -20
  115. metadata +88 -21
  116. data/lib/mail/check_delivery_params.rb +0 -60
  117. data/lib/mail/core_extensions/smtp.rb +0 -28
  118. data/lib/mail/core_extensions/string.rb +0 -17
  119. data/lib/mail/fields/common/address_container.rb +0 -17
  120. data/lib/mail/fields/common/common_address.rb +0 -161
  121. data/lib/mail/fields/common/common_date.rb +0 -36
  122. data/lib/mail/fields/common/common_field.rb +0 -52
  123. data/lib/mail/fields/common/common_message_id.rb +0 -49
  124. data/lib/mail/version_specific/ruby_1_8.rb +0 -163
  125. data/lib/mail/version_specific/ruby_1_9.rb +0 -278
@@ -57,7 +57,7 @@ module Mail
57
57
  # delete_after_find: flag for whether to delete each retreived email after find. Default
58
58
  # is false. Use #find_and_delete if you would like this to default to true.
59
59
  #
60
- def find(options = {}, &block)
60
+ def find(options = nil, &block)
61
61
  options = validate_options(options)
62
62
 
63
63
  start do |pop3|
@@ -113,7 +113,7 @@ module Mail
113
113
 
114
114
  # Set default options
115
115
  def validate_options(options)
116
- options ||= {}
116
+ options = options ? Hash[options] : {}
117
117
  options[:count] ||= 10
118
118
  options[:order] ||= :asc
119
119
  options[:what] ||= :first
@@ -17,7 +17,8 @@ module Mail
17
17
  @@emails = []
18
18
  end
19
19
 
20
- def find(options = {}, &block)
20
+ def find(options = nil, &block)
21
+ options = options ? Hash[options] : {}
21
22
  options[:count] ||= :all
22
23
  options[:order] ||= :asc
23
24
  options[:what] ||= :first