rack-mail_exception 0.0.1
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/.document +5 -0
- data/.gitignore +22 -0
- data/LICENSE +20 -0
- data/README.rdoc +38 -0
- data/Rakefile +56 -0
- data/VERSION +1 -0
- data/lib/rack/mail_exception.rb +103 -0
- data/test/helper.rb +13 -0
- data/test/test_rack_mail_exception.rb +93 -0
- data/vendor/mail/.bundle/config +2 -0
- data/vendor/mail/CHANGELOG.rdoc +370 -0
- data/vendor/mail/Dependencies.txt +3 -0
- data/vendor/mail/Gemfile +17 -0
- data/vendor/mail/README.rdoc +572 -0
- data/vendor/mail/ROADMAP +92 -0
- data/vendor/mail/Rakefile +41 -0
- data/vendor/mail/TODO.rdoc +9 -0
- data/vendor/mail/lib/mail.rb +76 -0
- data/vendor/mail/lib/mail/attachments_list.rb +99 -0
- data/vendor/mail/lib/mail/body.rb +287 -0
- data/vendor/mail/lib/mail/configuration.rb +67 -0
- data/vendor/mail/lib/mail/core_extensions/blank.rb +26 -0
- data/vendor/mail/lib/mail/core_extensions/nil.rb +11 -0
- data/vendor/mail/lib/mail/core_extensions/string.rb +27 -0
- data/vendor/mail/lib/mail/elements.rb +14 -0
- data/vendor/mail/lib/mail/elements/address.rb +306 -0
- data/vendor/mail/lib/mail/elements/address_list.rb +74 -0
- data/vendor/mail/lib/mail/elements/content_disposition_element.rb +30 -0
- data/vendor/mail/lib/mail/elements/content_location_element.rb +25 -0
- data/vendor/mail/lib/mail/elements/content_transfer_encoding_element.rb +24 -0
- data/vendor/mail/lib/mail/elements/content_type_element.rb +35 -0
- data/vendor/mail/lib/mail/elements/date_time_element.rb +26 -0
- data/vendor/mail/lib/mail/elements/envelope_from_element.rb +34 -0
- data/vendor/mail/lib/mail/elements/message_ids_element.rb +29 -0
- data/vendor/mail/lib/mail/elements/mime_version_element.rb +26 -0
- data/vendor/mail/lib/mail/elements/phrase_list.rb +21 -0
- data/vendor/mail/lib/mail/elements/received_element.rb +30 -0
- data/vendor/mail/lib/mail/encodings.rb +258 -0
- data/vendor/mail/lib/mail/encodings/7bit.rb +31 -0
- data/vendor/mail/lib/mail/encodings/8bit.rb +31 -0
- data/vendor/mail/lib/mail/encodings/base64.rb +33 -0
- data/vendor/mail/lib/mail/encodings/binary.rb +31 -0
- data/vendor/mail/lib/mail/encodings/quoted_printable.rb +38 -0
- data/vendor/mail/lib/mail/encodings/transfer_encoding.rb +58 -0
- data/vendor/mail/lib/mail/envelope.rb +35 -0
- data/vendor/mail/lib/mail/field.rb +223 -0
- data/vendor/mail/lib/mail/field_list.rb +33 -0
- data/vendor/mail/lib/mail/fields.rb +35 -0
- data/vendor/mail/lib/mail/fields/bcc_field.rb +56 -0
- data/vendor/mail/lib/mail/fields/cc_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/comments_field.rb +41 -0
- data/vendor/mail/lib/mail/fields/common/address_container.rb +16 -0
- data/vendor/mail/lib/mail/fields/common/common_address.rb +125 -0
- data/vendor/mail/lib/mail/fields/common/common_date.rb +42 -0
- data/vendor/mail/lib/mail/fields/common/common_field.rb +50 -0
- data/vendor/mail/lib/mail/fields/common/common_message_id.rb +43 -0
- data/vendor/mail/lib/mail/fields/common/parameter_hash.rb +52 -0
- data/vendor/mail/lib/mail/fields/content_description_field.rb +19 -0
- data/vendor/mail/lib/mail/fields/content_disposition_field.rb +69 -0
- data/vendor/mail/lib/mail/fields/content_id_field.rb +63 -0
- data/vendor/mail/lib/mail/fields/content_location_field.rb +42 -0
- data/vendor/mail/lib/mail/fields/content_transfer_encoding_field.rb +50 -0
- data/vendor/mail/lib/mail/fields/content_type_field.rb +185 -0
- data/vendor/mail/lib/mail/fields/date_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/from_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/in_reply_to_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/keywords_field.rb +44 -0
- data/vendor/mail/lib/mail/fields/message_id_field.rb +83 -0
- data/vendor/mail/lib/mail/fields/mime_version_field.rb +53 -0
- data/vendor/mail/lib/mail/fields/optional_field.rb +13 -0
- data/vendor/mail/lib/mail/fields/received_field.rb +67 -0
- data/vendor/mail/lib/mail/fields/references_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/reply_to_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/resent_bcc_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/resent_cc_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/resent_date_field.rb +35 -0
- data/vendor/mail/lib/mail/fields/resent_from_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/resent_message_id_field.rb +34 -0
- data/vendor/mail/lib/mail/fields/resent_sender_field.rb +62 -0
- data/vendor/mail/lib/mail/fields/resent_to_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/return_path_field.rb +64 -0
- data/vendor/mail/lib/mail/fields/sender_field.rb +67 -0
- data/vendor/mail/lib/mail/fields/structured_field.rb +51 -0
- data/vendor/mail/lib/mail/fields/subject_field.rb +16 -0
- data/vendor/mail/lib/mail/fields/to_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/unstructured_field.rb +166 -0
- data/vendor/mail/lib/mail/header.rb +262 -0
- data/vendor/mail/lib/mail/mail.rb +234 -0
- data/vendor/mail/lib/mail/message.rb +1867 -0
- data/vendor/mail/lib/mail/network.rb +9 -0
- data/vendor/mail/lib/mail/network/delivery_methods/file_delivery.rb +40 -0
- data/vendor/mail/lib/mail/network/delivery_methods/sendmail.rb +62 -0
- data/vendor/mail/lib/mail/network/delivery_methods/smtp.rb +110 -0
- data/vendor/mail/lib/mail/network/delivery_methods/test_mailer.rb +40 -0
- data/vendor/mail/lib/mail/network/retriever_methods/imap.rb +18 -0
- data/vendor/mail/lib/mail/network/retriever_methods/pop3.rb +149 -0
- data/vendor/mail/lib/mail/parsers/address_lists.rb +64 -0
- data/vendor/mail/lib/mail/parsers/address_lists.treetop +19 -0
- data/vendor/mail/lib/mail/parsers/content_disposition.rb +387 -0
- data/vendor/mail/lib/mail/parsers/content_disposition.treetop +46 -0
- data/vendor/mail/lib/mail/parsers/content_location.rb +139 -0
- data/vendor/mail/lib/mail/parsers/content_location.treetop +20 -0
- data/vendor/mail/lib/mail/parsers/content_transfer_encoding.rb +162 -0
- data/vendor/mail/lib/mail/parsers/content_transfer_encoding.treetop +20 -0
- data/vendor/mail/lib/mail/parsers/content_type.rb +539 -0
- data/vendor/mail/lib/mail/parsers/content_type.treetop +58 -0
- data/vendor/mail/lib/mail/parsers/date_time.rb +114 -0
- data/vendor/mail/lib/mail/parsers/date_time.treetop +11 -0
- data/vendor/mail/lib/mail/parsers/envelope_from.rb +194 -0
- data/vendor/mail/lib/mail/parsers/envelope_from.treetop +32 -0
- data/vendor/mail/lib/mail/parsers/message_ids.rb +45 -0
- data/vendor/mail/lib/mail/parsers/message_ids.treetop +15 -0
- data/vendor/mail/lib/mail/parsers/mime_version.rb +144 -0
- data/vendor/mail/lib/mail/parsers/mime_version.treetop +19 -0
- data/vendor/mail/lib/mail/parsers/phrase_lists.rb +45 -0
- data/vendor/mail/lib/mail/parsers/phrase_lists.treetop +15 -0
- data/vendor/mail/lib/mail/parsers/received.rb +71 -0
- data/vendor/mail/lib/mail/parsers/received.treetop +11 -0
- data/vendor/mail/lib/mail/parsers/rfc2045.rb +464 -0
- data/vendor/mail/lib/mail/parsers/rfc2045.treetop +36 -0
- data/vendor/mail/lib/mail/parsers/rfc2822.rb +5318 -0
- data/vendor/mail/lib/mail/parsers/rfc2822.treetop +410 -0
- data/vendor/mail/lib/mail/parsers/rfc2822_obsolete.rb +3757 -0
- data/vendor/mail/lib/mail/parsers/rfc2822_obsolete.treetop +241 -0
- data/vendor/mail/lib/mail/part.rb +102 -0
- data/vendor/mail/lib/mail/parts_list.rb +34 -0
- data/vendor/mail/lib/mail/patterns.rb +30 -0
- data/vendor/mail/lib/mail/utilities.rb +181 -0
- data/vendor/mail/lib/mail/version.rb +10 -0
- data/vendor/mail/lib/mail/version_specific/ruby_1_8.rb +97 -0
- data/vendor/mail/lib/mail/version_specific/ruby_1_9.rb +87 -0
- data/vendor/mail/lib/tasks/corpus.rake +125 -0
- data/vendor/mail/lib/tasks/treetop.rake +10 -0
- data/vendor/mail/mail.gemspec +20 -0
- data/vendor/mail/reference/US ASCII Table.txt +130 -0
- data/vendor/mail/reference/rfc1035 Domain Implementation and Specification.txt +3083 -0
- data/vendor/mail/reference/rfc1049 Content-Type Header Field for Internet Messages.txt +451 -0
- data/vendor/mail/reference/rfc1344 Implications of MIME for Internet Mail Gateways.txt +586 -0
- data/vendor/mail/reference/rfc1345 Character Mnemonics & Character Sets.txt +5761 -0
- data/vendor/mail/reference/rfc1524 A User Agent Configuration Mechanism For Multimedia Mail Format Information.txt +675 -0
- data/vendor/mail/reference/rfc1652 SMTP Service Extension for 8bit-MIMEtransport.txt +339 -0
- data/vendor/mail/reference/rfc1892 Multipart Report .txt +227 -0
- data/vendor/mail/reference/rfc1893 Mail System Status Codes.txt +843 -0
- data/vendor/mail/reference/rfc2045 Multipurpose Internet Mail Extensions (1).txt +1739 -0
- data/vendor/mail/reference/rfc2046 Multipurpose Internet Mail Extensions (2).txt +2467 -0
- data/vendor/mail/reference/rfc2047 Multipurpose Internet Mail Extensions (3).txt +843 -0
- data/vendor/mail/reference/rfc2048 Multipurpose Internet Mail Extensions (4).txt +1180 -0
- data/vendor/mail/reference/rfc2049 Multipurpose Internet Mail Extensions (5).txt +1347 -0
- data/vendor/mail/reference/rfc2111 Content-ID and Message-ID URLs.txt +283 -0
- data/vendor/mail/reference/rfc2183 Content-Disposition Header Field.txt +675 -0
- data/vendor/mail/reference/rfc2231 MIME Parameter Value and Encoded Word Extensions.txt +563 -0
- data/vendor/mail/reference/rfc2387 MIME Multipart-Related Content-type.txt +563 -0
- data/vendor/mail/reference/rfc2821 Simple Mail Transfer Protocol.txt +3711 -0
- data/vendor/mail/reference/rfc2822 Internet Message Format.txt +2859 -0
- data/vendor/mail/reference/rfc3462 Reporting of Mail System Administrative Messages.txt +396 -0
- data/vendor/mail/reference/rfc3696 Checking and Transformation of Names.txt +898 -0
- data/vendor/mail/reference/rfc4155 The application-mbox Media Type.txt +502 -0
- data/vendor/mail/reference/rfc4234 Augmented BNF for Syntax Specifications: ABNF.txt +899 -0
- data/vendor/mail/reference/rfc822 Standard for the Format of ARPA Internet Text Messages.txt +2900 -0
- data/vendor/mail/spec/environment.rb +15 -0
- data/vendor/mail/spec/features/making_a_new_message.feature +14 -0
- data/vendor/mail/spec/features/steps/env.rb +6 -0
- data/vendor/mail/spec/features/steps/making_a_new_message_steps.rb +11 -0
- data/vendor/mail/spec/fixtures/attachments/basic_email.eml +31 -0
- data/vendor/mail/spec/fixtures/attachments/test.gif +0 -0
- data/vendor/mail/spec/fixtures/attachments/test.jpg +0 -0
- data/vendor/mail/spec/fixtures/attachments/test.pdf +0 -0
- data/vendor/mail/spec/fixtures/attachments/test.png +0 -0
- data/vendor/mail/spec/fixtures/attachments/test.tiff +0 -0
- data/vendor/mail/spec/fixtures/attachments/test.zip +0 -0
- data/vendor/mail/spec/fixtures/attachments//343/201/246/343/201/231/343/201/250.txt +2 -0
- data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_content_disposition.eml +29 -0
- data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_content_location.eml +32 -0
- data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_message_rfc822.eml +92 -0
- data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_only_email.eml +17 -0
- data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_pdf.eml +70 -0
- data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_with_encoded_name.eml +47 -0
- data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_with_quoted_filename.eml +60 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/cant_parse_from.eml +33 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_7-bit.eml +231 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_empty.eml +33 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_plain.eml +148 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_qp_with_space.eml +53 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_spam.eml +44 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_text-html.eml +50 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_with_8bits.eml +770 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_with_semi_colon.eml +269 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_x_uuencode.eml +79 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/empty_group_lists.eml +162 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/header_fields_with_empty_values.eml +33 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/missing_body.eml +16 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/missing_content_disposition.eml +43 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/multiple_content_types.eml +25 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email11.eml +34 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email12.eml +32 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email2.eml +114 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email4.eml +59 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email7.eml +66 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_encoded_stack_level_too_deep.eml +53 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_with_illegal_boundary.eml +58 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_with_mimepart_without_content_type.eml +94 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_with_multipart_mixed_quoted_boundary.eml +50 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_with_nested_attachment.eml +100 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_with_quoted_illegal_boundary.eml +58 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/sig_only_email.eml +29 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/two_from_in_message.eml +42 -0
- data/vendor/mail/spec/fixtures/emails/multi_charset/japanese.eml +9 -0
- data/vendor/mail/spec/fixtures/emails/multi_charset/japanese_attachment.eml +27 -0
- data/vendor/mail/spec/fixtures/emails/multi_charset/japanese_attachment_long_name.eml +44 -0
- data/vendor/mail/spec/fixtures/emails/multipart_report_emails/multi_address_bounce1.eml +179 -0
- data/vendor/mail/spec/fixtures/emails/multipart_report_emails/multi_address_bounce2.eml +179 -0
- data/vendor/mail/spec/fixtures/emails/multipart_report_emails/report_422.eml +98 -0
- data/vendor/mail/spec/fixtures/emails/multipart_report_emails/report_530.eml +97 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/basic_email.eml +31 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email.eml +14 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email10.eml +20 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email5.eml +19 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email6.eml +20 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email8.eml +47 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_bad_time.eml +62 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_double_at_in_header.eml +14 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_incorrect_header.eml +28 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_multiple_from.eml +30 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_quoted_with_0d0a.eml +14 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_reply.eml +32 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_simple.eml +11 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_string_in_date_field.eml +17 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_trailing_dot.eml +21 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_with_bad_date.eml +48 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_with_partially_quoted_subject.eml +14 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example01.eml +8 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example02.eml +9 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example03.eml +7 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example04.eml +7 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example05.eml +8 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example06.eml +10 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example07.eml +9 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example08.eml +12 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example09.eml +15 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example10.eml +15 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example11.eml +6 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example12.eml +8 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example13.eml +10 -0
- data/vendor/mail/spec/fixtures/emails/sample_output_multipart +0 -0
- data/vendor/mail/spec/mail/attachments_list_spec.rb +214 -0
- data/vendor/mail/spec/mail/body_spec.rb +385 -0
- data/vendor/mail/spec/mail/configuration_spec.rb +19 -0
- data/vendor/mail/spec/mail/core_extensions/string_spec.rb +62 -0
- data/vendor/mail/spec/mail/core_extensions_spec.rb +99 -0
- data/vendor/mail/spec/mail/elements/address_list_spec.rb +109 -0
- data/vendor/mail/spec/mail/elements/address_spec.rb +609 -0
- data/vendor/mail/spec/mail/elements/date_time_element_spec.rb +20 -0
- data/vendor/mail/spec/mail/elements/envelope_from_element_spec.rb +31 -0
- data/vendor/mail/spec/mail/elements/message_ids_element_spec.rb +43 -0
- data/vendor/mail/spec/mail/elements/phrase_list_spec.rb +22 -0
- data/vendor/mail/spec/mail/elements/received_element_spec.rb +34 -0
- data/vendor/mail/spec/mail/encoding_spec.rb +189 -0
- data/vendor/mail/spec/mail/encodings/base64_spec.rb +25 -0
- data/vendor/mail/spec/mail/encodings/quoted_printable_spec.rb +25 -0
- data/vendor/mail/spec/mail/encodings_spec.rb +664 -0
- data/vendor/mail/spec/mail/example_emails_spec.rb +303 -0
- data/vendor/mail/spec/mail/field_list_spec.rb +33 -0
- data/vendor/mail/spec/mail/field_spec.rb +198 -0
- data/vendor/mail/spec/mail/fields/bcc_field_spec.rb +89 -0
- data/vendor/mail/spec/mail/fields/cc_field_spec.rb +79 -0
- data/vendor/mail/spec/mail/fields/comments_field_spec.rb +25 -0
- data/vendor/mail/spec/mail/fields/common/address_container_spec.rb +18 -0
- data/vendor/mail/spec/mail/fields/common/common_address_spec.rb +132 -0
- data/vendor/mail/spec/mail/fields/common/common_date_spec.rb +25 -0
- data/vendor/mail/spec/mail/fields/common/common_field_spec.rb +69 -0
- data/vendor/mail/spec/mail/fields/common/common_message_id_spec.rb +30 -0
- data/vendor/mail/spec/mail/fields/common/parameter_hash_spec.rb +56 -0
- data/vendor/mail/spec/mail/fields/content_description_field_spec.rb +39 -0
- data/vendor/mail/spec/mail/fields/content_disposition_field_spec.rb +55 -0
- data/vendor/mail/spec/mail/fields/content_id_field_spec.rb +117 -0
- data/vendor/mail/spec/mail/fields/content_location_field_spec.rb +46 -0
- data/vendor/mail/spec/mail/fields/content_transfer_encoding_field_spec.rb +113 -0
- data/vendor/mail/spec/mail/fields/content_type_field_spec.rb +678 -0
- data/vendor/mail/spec/mail/fields/date_field_spec.rb +73 -0
- data/vendor/mail/spec/mail/fields/envelope_spec.rb +48 -0
- data/vendor/mail/spec/mail/fields/from_field_spec.rb +89 -0
- data/vendor/mail/spec/mail/fields/in_reply_to_field_spec.rb +62 -0
- data/vendor/mail/spec/mail/fields/keywords_field_spec.rb +66 -0
- data/vendor/mail/spec/mail/fields/message_id_field_spec.rb +147 -0
- data/vendor/mail/spec/mail/fields/mime_version_field_spec.rb +166 -0
- data/vendor/mail/spec/mail/fields/received_field_spec.rb +44 -0
- data/vendor/mail/spec/mail/fields/references_field_spec.rb +35 -0
- data/vendor/mail/spec/mail/fields/reply_to_field_spec.rb +67 -0
- data/vendor/mail/spec/mail/fields/resent_bcc_field_spec.rb +66 -0
- data/vendor/mail/spec/mail/fields/resent_cc_field_spec.rb +66 -0
- data/vendor/mail/spec/mail/fields/resent_date_field_spec.rb +39 -0
- data/vendor/mail/spec/mail/fields/resent_from_field_spec.rb +66 -0
- data/vendor/mail/spec/mail/fields/resent_message_id_field_spec.rb +24 -0
- data/vendor/mail/spec/mail/fields/resent_sender_field_spec.rb +58 -0
- data/vendor/mail/spec/mail/fields/resent_to_field_spec.rb +66 -0
- data/vendor/mail/spec/mail/fields/return_path_field_spec.rb +52 -0
- data/vendor/mail/spec/mail/fields/sender_field_spec.rb +58 -0
- data/vendor/mail/spec/mail/fields/structured_field_spec.rb +72 -0
- data/vendor/mail/spec/mail/fields/to_field_spec.rb +92 -0
- data/vendor/mail/spec/mail/fields/unstructured_field_spec.rb +134 -0
- data/vendor/mail/spec/mail/header_spec.rb +578 -0
- data/vendor/mail/spec/mail/mail_spec.rb +34 -0
- data/vendor/mail/spec/mail/message_spec.rb +1409 -0
- data/vendor/mail/spec/mail/mime_messages_spec.rb +435 -0
- data/vendor/mail/spec/mail/multipart_report_spec.rb +112 -0
- data/vendor/mail/spec/mail/network/delivery_methods/file_delivery_spec.rb +79 -0
- data/vendor/mail/spec/mail/network/delivery_methods/sendmail_spec.rb +125 -0
- data/vendor/mail/spec/mail/network/delivery_methods/smtp_spec.rb +133 -0
- data/vendor/mail/spec/mail/network/delivery_methods/test_mailer_spec.rb +57 -0
- data/vendor/mail/spec/mail/network/retriever_methods/pop3_spec.rb +180 -0
- data/vendor/mail/spec/mail/network_spec.rb +359 -0
- data/vendor/mail/spec/mail/parsers/address_lists_parser_spec.rb +15 -0
- data/vendor/mail/spec/mail/parsers/content_transfer_encoding_parser_spec.rb +72 -0
- data/vendor/mail/spec/mail/part_spec.rb +129 -0
- data/vendor/mail/spec/mail/parts_list_spec.rb +12 -0
- data/vendor/mail/spec/mail/round_tripping_spec.rb +44 -0
- data/vendor/mail/spec/mail/utilities_spec.rb +327 -0
- data/vendor/mail/spec/mail/version_specific/escape_paren_1_8_spec.rb +32 -0
- data/vendor/mail/spec/matchers/break_down_to.rb +35 -0
- data/vendor/mail/spec/spec_helper.rb +163 -0
- metadata +442 -0
@@ -0,0 +1,11 @@
|
|
1
|
+
From mike@nowhere.com
|
2
|
+
Return-Path: <mikel@nowhere.com>
|
3
|
+
Received: from mikel091a by oaamta05sl.mx.bigpond.com with SMTP id <20071021093820.JFMT24025.oaamta05sl.mx.bigpond.com@mikel091a> for <mikel@nowhere.com.else>; Sun, 21 Oct 2007 19:38:20 +1000
|
4
|
+
Date: Sun, 21 Oct 2007 19:38:13 +1000
|
5
|
+
From: Mikel Lindsaar <mikel@nowhere.com>
|
6
|
+
To: Mikel <mikel@somewhere.com>
|
7
|
+
Message-Id: <009601c813c6$19df3510$0437d30a@mikel091a>
|
8
|
+
Subject: Testing outlook
|
9
|
+
|
10
|
+
Hello Mikel
|
11
|
+
|
@@ -0,0 +1,17 @@
|
|
1
|
+
From mikel@me.com Mon May 2 16:07:05 2005
|
2
|
+
Mime-Version: 1.0 (Apple Message framework v622)
|
3
|
+
Received: from jsj1wlrmd001.webex.com (by jsj1wlrmd001.webex.com
|
4
|
+
(8.12.10/8.12.11) with ESMTP id m8MKKPTs022429
|
5
|
+
for <xxxx@example.com>; Mon, 22 Sep 2008 20:20:25 GMT
|
6
|
+
Content-Transfer-Encoding: base64
|
7
|
+
Message-Id: <d3b8cf8e49f04480850c28713a1f473e@lindsaar.net>
|
8
|
+
Content-Type: text/plain;
|
9
|
+
charset=EUC-KR;
|
10
|
+
format=flowed
|
11
|
+
To: bob@bob.com
|
12
|
+
From: mikel@me.com
|
13
|
+
Subject: =?EUC-KR?Q?NOTE:_=C7=D1=B1=B9=B8=BB=B7=CE_=C7=CF=B4=C2_=B0=CD?=
|
14
|
+
Date: Sat, 20 Sep 2008 20:04:30 +0300 (ùòåï ÷éõ éøåùìéí)
|
15
|
+
|
16
|
+
tOu6zrrQwMcguLbC+bChwfa3ziwgv+y4rrTCIMfPs6q01MC7ILnPvcC0z7TZLg0KDQrBpiDAzLin
|
17
|
+
wLogSmFtaXPA1LTPtNku
|
@@ -0,0 +1,21 @@
|
|
1
|
+
Delivered-To: xxx@xxx.com
|
2
|
+
Received: by 10.67.31.8 with SMTP id i8cs1195ugj;
|
3
|
+
Mon, 22 Sep 2008 13:45:18 -0700 (PDT)
|
4
|
+
Received: by 10.100.207.5 with SMTP id e5mr3483815ang.104.1222110393505;
|
5
|
+
Mon, 22 Sep 2008 12:06:33 -0700 (PDT)
|
6
|
+
Return-Path: <noreply@rubyforge.org>
|
7
|
+
Received: from rubyforge.org (rubyforge.org [205.234.109.19])
|
8
|
+
by mx.google.com with ESMTP id c2si899474ana.10.2008.09.22.12.06.28;
|
9
|
+
Mon, 22 Sep 2008 12:06:33 -0700 (PDT)
|
10
|
+
Received-SPF: pass (google.com: best guess record for domain of noreply@rubyforge.org designates 205.234.109.19 as permitted sender) client-ip=205.234.109.19;
|
11
|
+
Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of noreply@rubyforge.org designates 205.234.109.19 as permitted sender) smtp.mail=noreply@rubyforge.org
|
12
|
+
Received: by rubyforge.org (Postfix, from userid 502)
|
13
|
+
id 8FB1518581AC; Mon, 22 Sep 2008 15:06:28 -0400 (EDT)
|
14
|
+
To: noreply@rubyforge.org
|
15
|
+
From: Sandy M. <noreply@rubyforge.org>
|
16
|
+
Subject: [skynet-help][60666] How are intermediate files handled in SkyNet?
|
17
|
+
Content-type: text/plain; charset=UTF-8
|
18
|
+
Message-Id: <20080922190628.8FB1518581AC@rubyforge.org>
|
19
|
+
Date: Mon, 22 Sep 2008 15:06:28 -0400 (EDT)
|
20
|
+
|
21
|
+
Testing, testing, 123.
|
@@ -0,0 +1,48 @@
|
|
1
|
+
Return-Path: <me@xxx.xxxxxxxx.xxx.xx>
|
2
|
+
X-Original-To: external@xxx.xxxxxxxx.xxx.xx
|
3
|
+
Delivered-To: external@xxx.xxxxxxxx.xxx.xx
|
4
|
+
Received: from server.xxx.xxxxxxxx.xxx.xx (localhost.xxxxxxxx.xxx.xx [127.0.0.1])
|
5
|
+
by server.xxx.xxxxxxxx.xxx.xx (Postfix) with ESMTP id 0173828456
|
6
|
+
for <external@xxx.xxxxxxxx.xxx.xx>; Mon, 5 Nov 2007 20:17:37 +1100 (EST)
|
7
|
+
Received: from server.xxx.xxxxxxxx.xxx.xx (server.xxx.xxxxxxxx.xxx.xx [10.130.1.250])
|
8
|
+
by localhost (FormatMessage) with SMTP id d7be4d19ed6d330c
|
9
|
+
for <sydney@xxxxxxxx.xxx>; Mon, 05 Nov 2007 20:17:37 +1100 (EST)
|
10
|
+
Received: from server.sydney.xxxxxxxx.xxx.xx (unknown [10.130.2.6])
|
11
|
+
by server.xxx.xxxxxxxx.xxx.xx (Postfix) with ESMTP id BB00328442
|
12
|
+
for <sydney@xxxxxxxx.xxx>; Mon, 5 Nov 2007 20:17:37 +1100 (EST)
|
13
|
+
Received: from dircomm (unknown [10.130.2.8])
|
14
|
+
by server.sydney.xxxxxxxx.xxx.xx (Postfix) with ESMTP id 20A692841F
|
15
|
+
for <sydney@xxxxxxxx.xxx>; Mon, 5 Nov 2007 20:18:24 +1100 (EST)
|
16
|
+
X-Mailbox-Line: From subventive@vodtravel.com
|
17
|
+
Message-ID: <000001c81a67$a4450700$0100007f@localhost>
|
18
|
+
From: "Darrell Shaw" <subventive@vodtravel.com>
|
19
|
+
To: <sydney@xxxxxxxx.xxx>
|
20
|
+
Subject: Microsoft Vlsta & Office2007, Just released for 79$ Save 1599.95$ 0ff Retai|
|
21
|
+
Date: Pn, 29 paX 2007 21:13:00 +0100
|
22
|
+
Content-Type: text/plain;
|
23
|
+
charset="us-ascii"
|
24
|
+
Content-Transfer-Encoding: 7bit
|
25
|
+
X-Priority: 3 (Normal)
|
26
|
+
X-MSMail-Priority: Normal
|
27
|
+
X-Mailer: Microsoft Outlook, Build 10.0.3416
|
28
|
+
Importance: Normal
|
29
|
+
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.150
|
30
|
+
X-CSI-TMailScanner-Information: Please contact the ISP for more information
|
31
|
+
X-CSI-TMailScanner: Found to be clean
|
32
|
+
X-CSI-TMailScanner-SpamCheck: not spam, SpamAssassin (score=1.87, required 4,
|
33
|
+
autolearn=disabled, INVALID_DATE 0.23, RAZOR2_CF_RANGE_51_100 1.49,
|
34
|
+
RAZOR2_CHECK 0.15)
|
35
|
+
X-CSI-TMailScanner-SpamScore: s
|
36
|
+
X-TMailScanner-From: subventive@vodtravel.com
|
37
|
+
Resent-Date: Mon, 05 Nov 2007 20:17:37 +1100 (EST)
|
38
|
+
Resent-From: <mail_dump@ns1.xxxxxxxx.xxx.xx>
|
39
|
+
Resent-To: <mikel@xxxxxxxx.xxx>
|
40
|
+
Resent-Message-ID: <d7be4d19ed6d330c.1194254257@xxxxxxxx.xxx.xx>
|
41
|
+
X-UID: 4702
|
42
|
+
Status: RO
|
43
|
+
|
44
|
+
hotnewsoft . com
|
45
|
+
|
46
|
+
|
47
|
+
|
48
|
+
|
data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_with_partially_quoted_subject.eml
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
From jamis@37signals.com Mon May 2 16:07:05 2005
|
2
|
+
Mime-Version: 1.0 (Apple Message framework v622)
|
3
|
+
Content-Transfer-Encoding: base64
|
4
|
+
Message-Id: <d3b8cf8e49f04480850c28713a1f473e@37signals.com>
|
5
|
+
Content-Type: text/plain;
|
6
|
+
charset=EUC-KR;
|
7
|
+
format=flowed
|
8
|
+
To: jamis@37signals.com
|
9
|
+
From: Jamis Buck <jamis@37signals.com>
|
10
|
+
Subject: Re: Test: =?UTF-8?B?Iua8ouWtlyI=?= mid =?UTF-8?B?Iua8ouWtlyI=?= tail
|
11
|
+
Date: Mon, 2 May 2005 16:07:05 -0600
|
12
|
+
|
13
|
+
tOu6zrrQwMcguLbC+bChwfa3ziwgv+y4rrTCIMfPs6q01MC7ILnPvcC0z7TZLg0KDQrBpiDAzLin
|
14
|
+
wLogSmFtaXPA1LTPtNku
|
@@ -0,0 +1,9 @@
|
|
1
|
+
From: John Doe <jdoe@machine.example>
|
2
|
+
Sender: Michael Jones <mjones@machine.example>
|
3
|
+
To: Mary Smith <mary@example.net>
|
4
|
+
Subject: Saying Hello
|
5
|
+
Date: Fri, 21 Nov 1997 09:55:06 -0600
|
6
|
+
Message-ID: <1234@local.machine.example>
|
7
|
+
|
8
|
+
This is a message just to say hello.
|
9
|
+
So, "Hello".
|
@@ -0,0 +1,7 @@
|
|
1
|
+
From: "Joe Q. Public" <john.q.public@example.com>
|
2
|
+
To: Mary Smith <mary@x.test>, jdoe@example.org, Who? <one@y.test>
|
3
|
+
Cc: <boss@nil.test>, "Giant; \"Big\" Box" <sysservices@example.net>
|
4
|
+
Date: Tue, 1 Jul 2003 10:52:37 +0200
|
5
|
+
Message-ID: <5678.21-Nov-1997@example.com>
|
6
|
+
|
7
|
+
Hi everyone.
|
@@ -0,0 +1,10 @@
|
|
1
|
+
From: Mary Smith <mary@example.net>
|
2
|
+
To: John Doe <jdoe@machine.example>
|
3
|
+
Reply-To: "Mary Smith: Personal Account" <smith@home.example>
|
4
|
+
Subject: Re: Saying Hello
|
5
|
+
Date: Fri, 21 Nov 1997 10:01:10 -0600
|
6
|
+
Message-ID: <3456@example.net>
|
7
|
+
In-Reply-To: <1234@local.machine.example>
|
8
|
+
References: <1234@local.machine.example>
|
9
|
+
|
10
|
+
This is a reply to your hello.
|
@@ -0,0 +1,9 @@
|
|
1
|
+
To: "Mary Smith: Personal Account" <smith@home.example>
|
2
|
+
From: John Doe <jdoe@machine.example>
|
3
|
+
Subject: Re: Saying Hello
|
4
|
+
Date: Fri, 21 Nov 1997 11:00:00 -0600
|
5
|
+
Message-ID: <abcd.1234@local.machine.tld>
|
6
|
+
In-Reply-To: <3456@example.net>
|
7
|
+
References: <1234@local.machine.example> <3456@example.net>
|
8
|
+
|
9
|
+
This is a reply to your reply.
|
@@ -0,0 +1,12 @@
|
|
1
|
+
Resent-From: Mary Smith <mary@example.net>
|
2
|
+
Resent-To: Jane Brown <j-brown@other.example>
|
3
|
+
Resent-Date: Mon, 24 Nov 1997 14:22:01 -0800
|
4
|
+
Resent-Message-ID: <78910@example.net>
|
5
|
+
From: John Doe <jdoe@machine.example>
|
6
|
+
To: Mary Smith <mary@example.net>
|
7
|
+
Subject: Saying Hello
|
8
|
+
Date: Fri, 21 Nov 1997 09:55:06 -0600
|
9
|
+
Message-ID: <1234@local.machine.example>
|
10
|
+
|
11
|
+
This is a message just to say hello.
|
12
|
+
So, "Hello".
|
@@ -0,0 +1,15 @@
|
|
1
|
+
Received: from x.y.test
|
2
|
+
by example.net
|
3
|
+
via TCP
|
4
|
+
with ESMTP
|
5
|
+
id ABC12345
|
6
|
+
for <mary@example.net>; 21 Nov 1997 10:05:43 -0600
|
7
|
+
Received: from machine.example by x.y.test; 21 Nov 1997 10:01:22 -0600
|
8
|
+
From: John Doe <jdoe@machine.example>
|
9
|
+
To: Mary Smith <mary@example.net>
|
10
|
+
Subject: Saying Hello
|
11
|
+
Date: Fri, 21 Nov 1997 09:55:06 -0600
|
12
|
+
Message-ID: <1234@local.machine.example>
|
13
|
+
|
14
|
+
This is a message just to say hello.
|
15
|
+
So, "Hello".
|
@@ -0,0 +1,15 @@
|
|
1
|
+
From: Pete(A wonderful \) chap) <pete(his account)@silly.test(his host)>
|
2
|
+
To:A Group(Some people)
|
3
|
+
:Chris Jones <c@(Chris's host.)public.example>,
|
4
|
+
joe@example.org,
|
5
|
+
John <jdoe@one.test> (my dear friend); (the end of the group)
|
6
|
+
Cc:(Empty list)(start)Undisclosed recipients :(nobody(that I know)) ;
|
7
|
+
Date: Thu,
|
8
|
+
13
|
9
|
+
Feb
|
10
|
+
1969
|
11
|
+
23:32
|
12
|
+
-0330 (Newfoundland Time)
|
13
|
+
Message-ID: <testabcd.1234@silly.test>
|
14
|
+
|
15
|
+
Testing.
|
@@ -0,0 +1,10 @@
|
|
1
|
+
From : John Doe <jdoe@machine(comment). example>
|
2
|
+
To : Mary Smith
|
3
|
+
__
|
4
|
+
<mary@example.net>
|
5
|
+
Subject : Saying Hello
|
6
|
+
Date : Fri, 21 Nov 1997 09(comment): 55 : 06 -0600
|
7
|
+
Message-ID : <1234 @ local(blah) .machine .example>
|
8
|
+
|
9
|
+
This is a message just to say hello.
|
10
|
+
So, "Hello".
|
File without changes
|
@@ -0,0 +1,214 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
def encode_base64( str )
|
6
|
+
Mail::Encodings::Base64.encode(str)
|
7
|
+
end
|
8
|
+
|
9
|
+
def check_decoded(actual, expected)
|
10
|
+
if RUBY_VERSION >= '1.9'
|
11
|
+
actual.should == expected.force_encoding(Encoding::BINARY)
|
12
|
+
else
|
13
|
+
actual.should == expected
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "Attachments" do
|
18
|
+
|
19
|
+
before(:each) do
|
20
|
+
@mail = Mail.new
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "from direct content" do
|
24
|
+
it "should work" do
|
25
|
+
file_data = File.read(filename = fixture('attachments', 'test.png'))
|
26
|
+
@mail.attachments['test.png'] = File.read(fixture('attachments', 'test.png'))
|
27
|
+
@mail.attachments['test.png'].filename.should == 'test.png'
|
28
|
+
check_decoded(@mail.attachments[0].decoded, file_data)
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should work out magically the mime_type" do
|
32
|
+
file_data = File.read(filename = fixture('attachments', 'test.png'))
|
33
|
+
@mail.attachments['test.png'] = File.read(fixture('attachments', 'test.png'))
|
34
|
+
@mail.attachments[0].mime_type.should == 'image/png'
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should assign the filename" do
|
38
|
+
file_data = File.read(filename = fixture('attachments', 'test.png'))
|
39
|
+
@mail.attachments['test.png'] = File.read(fixture('attachments', 'test.png'))
|
40
|
+
@mail.attachments[0].filename.should == 'test.png'
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
describe "from a supplied Hash" do
|
46
|
+
it "should work" do
|
47
|
+
file_data = File.read(filename = fixture('attachments', 'test.png'))
|
48
|
+
@mail.attachments['test.png'] = { :content => file_data }
|
49
|
+
@mail.attachments[0].filename.should == 'test.png'
|
50
|
+
check_decoded(@mail.attachments[0].decoded, file_data)
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should allow you to override the content_type" do
|
54
|
+
file_data = File.read(filename = fixture('attachments', 'test.png'))
|
55
|
+
@mail.attachments['test.png'] = { :content => file_data,
|
56
|
+
:content_type => "application/x-gzip" }
|
57
|
+
@mail.attachments[0].content_type.should == 'application/x-gzip'
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should allow you to override the mime_type" do
|
61
|
+
file_data = File.read(filename = fixture('attachments', 'test.png'))
|
62
|
+
@mail.attachments['test.png'] = { :content => file_data,
|
63
|
+
:mime_type => "application/x-gzip" }
|
64
|
+
@mail.attachments[0].mime_type.should == 'application/x-gzip'
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should allow you to override the mime_type" do
|
68
|
+
file_data = File.read(filename = fixture('attachments', 'test.png'))
|
69
|
+
@mail.attachments['invoice.jpg'] = { :data => "you smiling",
|
70
|
+
:mime_type => "image/x-jpg",
|
71
|
+
:transfer_encoding => "base64" }
|
72
|
+
@mail.attachments[0].mime_type.should == 'image/x-jpg'
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
|
77
|
+
describe "decoding and encoding" do
|
78
|
+
|
79
|
+
it "should set it's content_transfer_encoding" do
|
80
|
+
file_data = File.read(filename = fixture('attachments', 'test.png'))
|
81
|
+
@mail.attachments['test.png'] = { :content => file_data }
|
82
|
+
@mail.ready_to_send!
|
83
|
+
@mail.attachments[0].content_transfer_encoding.should == 'base64'
|
84
|
+
end
|
85
|
+
|
86
|
+
it "should encode it's body to base64" do
|
87
|
+
file_data = File.read(filename = fixture('attachments', 'test.png'))
|
88
|
+
@mail.attachments['test.png'] = { :content => file_data }
|
89
|
+
@mail.ready_to_send!
|
90
|
+
@mail.attachments[0].encoded.should include(encode_base64(file_data))
|
91
|
+
end
|
92
|
+
|
93
|
+
it "should allow you to pass in an encoded attachment with an encoding" do
|
94
|
+
file_data = File.read(filename = fixture('attachments', 'test.png'))
|
95
|
+
encoded_data = encode_base64(file_data)
|
96
|
+
@mail.attachments['test.png'] = { :content => encoded_data,
|
97
|
+
:encoding => 'base64' }
|
98
|
+
check_decoded(@mail.attachments[0].decoded, file_data)
|
99
|
+
end
|
100
|
+
|
101
|
+
it "should not allow you to pass in an encoded attachment with an unknown encoding" do
|
102
|
+
file_data = File.read(filename = fixture('attachments', 'test.png'))
|
103
|
+
base64_encoded_data = encode_base64(file_data)
|
104
|
+
doing {@mail.attachments['test.png'] = { :content => base64_encoded_data,
|
105
|
+
:encoding => 'weird_encoding' }}.should raise_error
|
106
|
+
end
|
107
|
+
|
108
|
+
it "should be able to call read on the attachment to return the decoded data" do
|
109
|
+
file_data = File.read(filename = fixture('attachments', 'test.png'))
|
110
|
+
@mail.attachments['test.png'] = { :content => file_data }
|
111
|
+
if RUBY_VERSION >= '1.9'
|
112
|
+
expected = @mail.attachments[0].read.force_encoding(file_data.encoding)
|
113
|
+
else
|
114
|
+
expected = @mail.attachments[0].read
|
115
|
+
end
|
116
|
+
expected.should == file_data
|
117
|
+
end
|
118
|
+
|
119
|
+
end
|
120
|
+
|
121
|
+
describe "multiple attachments" do
|
122
|
+
|
123
|
+
it "should allow you to pass in more than one attachment" do
|
124
|
+
mail = Mail.new
|
125
|
+
mail.attachments['test.pdf'] = File.read(fixture('attachments', 'test.pdf'))
|
126
|
+
mail.attachments['test.gif'] = File.read(fixture('attachments', 'test.gif'))
|
127
|
+
mail.attachments['test.jpg'] = File.read(fixture('attachments', 'test.jpg'))
|
128
|
+
mail.attachments['test.zip'] = File.read(fixture('attachments', 'test.zip'))
|
129
|
+
mail.attachments[0].filename.should == 'test.pdf'
|
130
|
+
mail.attachments[1].filename.should == 'test.gif'
|
131
|
+
mail.attachments[2].filename.should == 'test.jpg'
|
132
|
+
mail.attachments[3].filename.should == 'test.zip'
|
133
|
+
end
|
134
|
+
|
135
|
+
end
|
136
|
+
|
137
|
+
describe "getting the content ID from an inline attachment" do
|
138
|
+
|
139
|
+
before(:each) do
|
140
|
+
@mail = Mail.new
|
141
|
+
@mail.attachments['test.gif'] = File.read(fixture('attachments', 'test.gif'))
|
142
|
+
@cid = @mail.attachments['test.gif'].content_id
|
143
|
+
end
|
144
|
+
|
145
|
+
it "should return a content-id for the attachment on creation if passed inline => true" do
|
146
|
+
@cid.should_not be_nil
|
147
|
+
end
|
148
|
+
|
149
|
+
it "should return a valid content-id on inline attachments" do
|
150
|
+
Mail::ContentIdField.new(@cid).errors.should be_empty
|
151
|
+
end
|
152
|
+
|
153
|
+
it "should provide a URL escaped content_id (without brackets) for use inside an email" do
|
154
|
+
@inline = @mail.attachments['test.gif'].inline_content_id
|
155
|
+
@inline.should == URI.escape(@cid.gsub(/^</, '').gsub(/>$/, ''))
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
describe "setting the content type correctly" do
|
160
|
+
it "should set the content type to multipart/mixed if none given and you add an attachment" do
|
161
|
+
mail = Mail.new
|
162
|
+
mail.attachments['test.pdf'] = File.read(fixture('attachments', 'test.pdf'))
|
163
|
+
mail.encoded
|
164
|
+
mail.mime_type.should == 'multipart/mixed'
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
168
|
+
end
|
169
|
+
|
170
|
+
describe "reading emails with attachments" do
|
171
|
+
describe "test emails" do
|
172
|
+
|
173
|
+
it "should find the attachment using content location" do
|
174
|
+
mail = Mail.read(fixture(File.join('emails', 'attachment_emails', 'attachment_content_location.eml')))
|
175
|
+
mail.attachments.length.should == 1
|
176
|
+
end
|
177
|
+
|
178
|
+
it "should find an attachment defined with 'name' and Content-Disposition: attachment" do
|
179
|
+
mail = Mail.read(fixture(File.join('emails', 'attachment_emails', 'attachment_content_disposition.eml')))
|
180
|
+
mail.attachments.length.should == 1
|
181
|
+
end
|
182
|
+
|
183
|
+
it "should use the content-type filename or name over the content-disposition filename" do
|
184
|
+
mail = Mail.read(fixture(File.join('emails', 'attachment_emails', 'attachment_content_disposition.eml')))
|
185
|
+
mail.attachments[0].filename.should == 'hello.rb'
|
186
|
+
end
|
187
|
+
|
188
|
+
it "should decode an attachment" do
|
189
|
+
mail = Mail.read(fixture(File.join('emails', 'attachment_emails', 'attachment_pdf.eml')))
|
190
|
+
mail.attachments[0].decoded.length.should == 1026
|
191
|
+
end
|
192
|
+
|
193
|
+
it "should find an attachment that has an encoded name value" do
|
194
|
+
mail = Mail.read(fixture(File.join('emails', 'attachment_emails', 'attachment_with_encoded_name.eml')))
|
195
|
+
mail.attachments.length.should == 1
|
196
|
+
result = mail.attachments[0].filename
|
197
|
+
if RUBY_VERSION >= '1.9'
|
198
|
+
expected = "01 Quien Te Dij\212at. Pitbull.mp3".force_encoding(result.encoding)
|
199
|
+
else
|
200
|
+
expected = "01 Quien Te Dij\212at. Pitbull.mp3"
|
201
|
+
end
|
202
|
+
result.should == expected
|
203
|
+
end
|
204
|
+
|
205
|
+
it "should find attachments inside parts with content-type message/rfc822" do
|
206
|
+
mail = Mail.read(fixture(File.join("emails",
|
207
|
+
"attachment_emails",
|
208
|
+
"attachment_message_rfc822.eml")))
|
209
|
+
mail.attachments.length.should == 1
|
210
|
+
mail.attachments[0].decoded.length.should == 1026
|
211
|
+
end
|
212
|
+
|
213
|
+
end
|
214
|
+
end
|