├── .gitattributes ├── .github └── workflows │ └── main.yaml ├── .gitignore ├── CHANGELOG.md ├── LICENSE ├── Makefile ├── README.md ├── erlang.mk ├── erlang_ls.config ├── rabbitmq-components.mk ├── src ├── rabbit_email_filter.erl ├── rabbit_email_handler.erl ├── rabbit_email_sender.erl ├── rabbit_message_handler.erl ├── rabbit_message_handler_sup.erl ├── rabbit_message_sender.erl ├── rabbitmq_email.app.src └── rabbitmq_email_app.erl └── test ├── send.py ├── system_SUITE.erl └── system_SUITE_data ├── samples ├── SmtpServer.java ├── files │ ├── HasenundFrФsche.txt │ ├── blueball.png │ ├── farmerandstork.txt │ ├── greenball.png │ ├── hareandtoroise.txt │ ├── redball.png │ └── wolfandlamb.txt ├── messages │ ├── m0001.txt │ ├── m0002.txt │ ├── m0003.txt │ ├── m0004.txt │ ├── m0005.txt │ ├── m0006.txt │ ├── m0007.txt │ ├── m0008.txt │ ├── m0009.txt │ ├── m0010.txt │ ├── m0011.txt │ ├── m0012.txt │ ├── m0013.txt │ ├── m0014.txt │ ├── m0015.txt │ ├── m0016.txt │ ├── m0017.txt │ ├── m0018.txt │ ├── m1001.txt │ ├── m1002.txt │ ├── m1003.txt │ ├── m1004.txt │ ├── m1005.txt │ ├── m1006.txt │ ├── m1007.txt │ ├── m1008.txt │ ├── m1009.txt │ ├── m1010.txt │ ├── m1011.txt │ ├── m1012.txt │ ├── m1013.txt │ ├── m1014.txt │ ├── m1015.txt │ ├── m1016.txt │ ├── m2001.txt │ ├── m2002.txt │ ├── m2003.txt │ ├── m2004.txt │ ├── m2005.txt │ ├── m2006.txt │ ├── m2007.txt │ ├── m2008.txt │ ├── m2009.txt │ ├── m2010.txt │ ├── m2011.txt │ ├── m2012.txt │ ├── m2013.txt │ ├── m2014.txt │ ├── m2015.txt │ ├── m2016.txt │ ├── m3001.txt │ ├── m3002.txt │ ├── m3003.txt │ └── m3004.txt └── readme.txt ├── t0001.txt └── t0002.txt /.gitattributes: -------------------------------------------------------------------------------- 1 | # Set the default behavior, in case people don't have core.autocrlf set. 2 | * text=auto 3 | 4 | # Email samples must use CR+LF 5 | *.txt text eol=crlf 6 | -------------------------------------------------------------------------------- /.github/workflows/main.yaml: -------------------------------------------------------------------------------- 1 | name: rabbitmq-email 2 | 3 | on: 4 | pull_request: 5 | branches: 6 | - 'master' 7 | push: 8 | branches: 9 | - 'master' 10 | 11 | jobs: 12 | CI: 13 | name: build/test on Erlang/OTP ${{ matrix.otp-version }} 14 | runs-on: ubuntu-latest 15 | strategy: 16 | fail-fast: false 17 | matrix: 18 | otp-version: [25] 19 | elixir-version: ['1.14'] 20 | steps: 21 | - uses: actions/checkout@v3 22 | - uses: erlef/setup-beam@v1 23 | with: 24 | otp-version: ${{ matrix.otp-version }} 25 | elixir-version: ${{ matrix.elixir-version }} 26 | - name: Compile 27 | run: make 28 | - name: Test 29 | run: make tests 30 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .ignore 2 | .sw? 3 | .*.sw? 4 | *.beam 5 | *.lock 6 | erl_crash.dump 7 | rabbitmq_email.d 8 | .tool-versions 9 | 10 | .erlang.mk/ 11 | cover/ 12 | deps/ 13 | doc/ 14 | ebin/ 15 | escript/ 16 | logs/ 17 | plugins/ 18 | sbin/ 19 | tmp/ 20 | 21 | test/TEST-*.xml 22 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## [v1.1.1](https://github.com/gotthardp/rabbitmq-email/tree/v1.1.1) (2022-10-21) 4 | 5 | [Full Changelog](https://github.com/gotthardp/rabbitmq-email/compare/v1.1.0...v1.1.1) 6 | 7 | **Closed issues:** 8 | 9 | - Duplicated size statement in EHLO [\#55](https://github.com/gotthardp/rabbitmq-email/issues/55) 10 | 11 | **Merged pull requests:** 12 | 13 | - Do not duplicate SIZE extension [\#56](https://github.com/gotthardp/rabbitmq-email/pull/56) ([lukebakken](https://github.com/lukebakken)) 14 | 15 | ## [v1.1.0](https://github.com/gotthardp/rabbitmq-email/tree/v1.1.0) (2022-10-19) 16 | 17 | [Full Changelog](https://github.com/gotthardp/rabbitmq-email/compare/v1.0.1...v1.1.0) 18 | 19 | **Closed issues:** 20 | 21 | - Unable to build anymore [\#52](https://github.com/gotthardp/rabbitmq-email/issues/52) 22 | - Unable to send mail [\#51](https://github.com/gotthardp/rabbitmq-email/issues/51) 23 | - issue with specifying settings for gen\_ [\#47](https://github.com/gotthardp/rabbitmq-email/issues/47) 24 | 25 | **Merged pull requests:** 26 | 27 | - Allow setting max message size [\#54](https://github.com/gotthardp/rabbitmq-email/pull/54) ([lukebakken](https://github.com/lukebakken)) 28 | - Update for RabbitMQ 3.10, 3.11 [\#53](https://github.com/gotthardp/rabbitmq-email/pull/53) ([lukebakken](https://github.com/lukebakken)) 29 | 30 | ## [v1.0.1](https://github.com/gotthardp/rabbitmq-email/tree/v1.0.1) (2022-03-09) 31 | 32 | [Full Changelog](https://github.com/gotthardp/rabbitmq-email/compare/v1.0.0...v1.0.1) 33 | 34 | **Closed issues:** 35 | 36 | - Unable to send HTML email [\#50](https://github.com/gotthardp/rabbitmq-email/issues/50) 37 | - plugin\_built\_with\_incompatible\_erlang [\#48](https://github.com/gotthardp/rabbitmq-email/issues/48) 38 | - Enabling plugin support with later version of erl/23 [\#45](https://github.com/gotthardp/rabbitmq-email/issues/45) 39 | 40 | **Merged pull requests:** 41 | 42 | - Pin gen-smtp/gen\_smtp dep to 1.1.1 [\#49](https://github.com/gotthardp/rabbitmq-email/pull/49) ([lukebakken](https://github.com/lukebakken)) 43 | 44 | ## [v1.0.0](https://github.com/gotthardp/rabbitmq-email/tree/v1.0.0) (2021-11-23) 45 | 46 | [Full Changelog](https://github.com/gotthardp/rabbitmq-email/compare/v0.4.0...v1.0.0) 47 | 48 | **Implemented enhancements:** 49 | 50 | - Wild card email\_domains [\#24](https://github.com/gotthardp/rabbitmq-email/issues/24) 51 | - Consider AMQP From/To headers when sending SMTP mails [\#20](https://github.com/gotthardp/rabbitmq-email/issues/20) 52 | 53 | **Closed issues:** 54 | 55 | - How to send email with attachment? [\#44](https://github.com/gotthardp/rabbitmq-email/issues/44) 56 | - rabbitmq-server failed to start after enabling the rabbitmq\_email plugin [\#42](https://github.com/gotthardp/rabbitmq-email/issues/42) 57 | - Config - New Format Style [\#40](https://github.com/gotthardp/rabbitmq-email/issues/40) 58 | - Messages are stuck in queue? [\#32](https://github.com/gotthardp/rabbitmq-email/issues/32) 59 | - How to create AMQP header if i want to send MIME header? [\#13](https://github.com/gotthardp/rabbitmq-email/issues/13) 60 | 61 | **Merged pull requests:** 62 | 63 | - Make this plugin compatible with RabbitMQ 3.9.x [\#46](https://github.com/gotthardp/rabbitmq-email/pull/46) ([lukebakken](https://github.com/lukebakken)) 64 | - Update .mk files from rabbitmq-common [\#43](https://github.com/gotthardp/rabbitmq-email/pull/43) ([lukebakken](https://github.com/lukebakken)) 65 | 66 | ## [v0.4.0](https://github.com/gotthardp/rabbitmq-email/tree/v0.4.0) (2019-10-04) 67 | 68 | [Full Changelog](https://github.com/gotthardp/rabbitmq-email/compare/v0.3.0...v0.4.0) 69 | 70 | **Closed issues:** 71 | 72 | - Can't enable plugin under Erlang 22 [\#38](https://github.com/gotthardp/rabbitmq-email/issues/38) 73 | - Is it possible to route emiails based on subject? [\#37](https://github.com/gotthardp/rabbitmq-email/issues/37) 74 | - Release 0.2.0 not compatible with Erlang 21 [\#35](https://github.com/gotthardp/rabbitmq-email/issues/35) 75 | 76 | **Merged pull requests:** 77 | 78 | - Fix typos in configuration properties [\#34](https://github.com/gotthardp/rabbitmq-email/pull/34) ([DennisHartrampf](https://github.com/DennisHartrampf)) 79 | - Fix typo in link in README [\#33](https://github.com/gotthardp/rabbitmq-email/pull/33) ([cmur2](https://github.com/cmur2)) 80 | 81 | ## [v0.3.0](https://github.com/gotthardp/rabbitmq-email/tree/v0.3.0) (2019-04-03) 82 | 83 | [Full Changelog](https://github.com/gotthardp/rabbitmq-email/compare/v0.2.0...v0.3.0) 84 | 85 | **Closed issues:** 86 | 87 | - Headers appearing as part of the email body, No subject [\#29](https://github.com/gotthardp/rabbitmq-email/issues/29) 88 | - Using it on windows [\#28](https://github.com/gotthardp/rabbitmq-email/issues/28) 89 | - Time for a new release? [\#27](https://github.com/gotthardp/rabbitmq-email/issues/27) 90 | - Correct Installation of plugin [\#26](https://github.com/gotthardp/rabbitmq-email/issues/26) 91 | - Problem building plugin [\#25](https://github.com/gotthardp/rabbitmq-email/issues/25) 92 | 93 | **Merged pull requests:** 94 | 95 | - Release version 0.3.0 [\#36](https://github.com/gotthardp/rabbitmq-email/pull/36) ([lukebakken](https://github.com/lukebakken)) 96 | - Update to the latest build files [\#30](https://github.com/gotthardp/rabbitmq-email/pull/30) ([lukebakken](https://github.com/lukebakken)) 97 | 98 | ## [v0.2.0](https://github.com/gotthardp/rabbitmq-email/tree/v0.2.0) (2017-10-05) 99 | 100 | [Full Changelog](https://github.com/gotthardp/rabbitmq-email/compare/v0.1.0...v0.2.0) 101 | 102 | **Fixed bugs:** 103 | 104 | - Can't receive any email from google [\#14](https://github.com/gotthardp/rabbitmq-email/issues/14) 105 | - Doesn't send email when no AMQP headers are defined [\#11](https://github.com/gotthardp/rabbitmq-email/issues/11) 106 | 107 | **Closed issues:** 108 | 109 | - Get full email headers in rabbitmq [\#23](https://github.com/gotthardp/rabbitmq-email/issues/23) 110 | - error on sending email [\#22](https://github.com/gotthardp/rabbitmq-email/issues/22) 111 | - Handling attachments [\#18](https://github.com/gotthardp/rabbitmq-email/issues/18) 112 | - Create rabbitmq.config [\#16](https://github.com/gotthardp/rabbitmq-email/issues/16) 113 | - Install it plugin [\#15](https://github.com/gotthardp/rabbitmq-email/issues/15) 114 | - Crashes on receiving message [\#10](https://github.com/gotthardp/rabbitmq-email/issues/10) 115 | 116 | **Merged pull requests:** 117 | 118 | - Fix case mismatch [\#21](https://github.com/gotthardp/rabbitmq-email/pull/21) ([xtang](https://github.com/xtang)) 119 | - Set user as anonymous in EHLO when auth disable [\#12](https://github.com/gotthardp/rabbitmq-email/pull/12) ([xtang](https://github.com/xtang)) 120 | 121 | ## [v0.1.0](https://github.com/gotthardp/rabbitmq-email/tree/v0.1.0) (2015-12-22) 122 | 123 | [Full Changelog](https://github.com/gotthardp/rabbitmq-email/compare/v0.0.2...v0.1.0) 124 | 125 | **Closed issues:** 126 | 127 | - Error in Rabbit when passing emails [\#9](https://github.com/gotthardp/rabbitmq-email/issues/9) 128 | - Can't run make [\#8](https://github.com/gotthardp/rabbitmq-email/issues/8) 129 | 130 | ## [v0.0.2](https://github.com/gotthardp/rabbitmq-email/tree/v0.0.2) (2015-11-14) 131 | 132 | [Full Changelog](https://github.com/gotthardp/rabbitmq-email/compare/v0.0.1...v0.0.2) 133 | 134 | **Implemented enhancements:** 135 | 136 | - security and raw message [\#7](https://github.com/gotthardp/rabbitmq-email/issues/7) 137 | 138 | **Closed issues:** 139 | 140 | - Unable to fetch 'from' [\#6](https://github.com/gotthardp/rabbitmq-email/issues/6) 141 | 142 | ## [v0.0.1](https://github.com/gotthardp/rabbitmq-email/tree/v0.0.1) (2015-05-12) 143 | 144 | [Full Changelog](https://github.com/gotthardp/rabbitmq-email/compare/446a205d8cdddbedab1a25191b68e0679924c32e...v0.0.1) 145 | 146 | **Fixed bugs:** 147 | 148 | - Support Multipart/Related Content-Type [\#4](https://github.com/gotthardp/rabbitmq-email/issues/4) 149 | - error happens when client send an attache file to SMTP server [\#3](https://github.com/gotthardp/rabbitmq-email/issues/3) 150 | 151 | **Closed issues:** 152 | 153 | - error if incoming email is empty [\#5](https://github.com/gotthardp/rabbitmq-email/issues/5) 154 | - Problem installing SMTP Gateway Plugin for RabbitMQ \[UBUNTU 14.04\] [\#1](https://github.com/gotthardp/rabbitmq-email/issues/1) 155 | 156 | **Merged pull requests:** 157 | 158 | - package.mk: Use `rabbitmq-gen-smtp` as the dependency name [\#2](https://github.com/gotthardp/rabbitmq-email/pull/2) ([dumbbell](https://github.com/dumbbell)) 159 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | PROJECT = rabbitmq_email 2 | PROJECT_DESCRIPTION = RabbitMQ plugin that converts incoming emails into messages and messages into outgoing emails 3 | RABBITMQ_VERSION ?= v3.11.x 4 | 5 | # Note: must be the same version as in rabbitmq-components.mk 6 | DEP_RANCH_VERSION = 2.1.0 7 | 8 | dep_ranch = ranch $(DEP_RANCH_VERSION) 9 | dep_eiconv = hex 1.0.0 10 | dep_gen_smtp = hex 1.2.0 11 | 12 | DEPS = gen_smtp rabbit_common amqp_client rabbit eiconv 13 | 14 | TEST_DEPS = rabbitmq_ct_helpers rabbitmq_ct_client_helpers amqp_client eiconv 15 | 16 | DEP_EARLY_PLUGINS = rabbit_common/mk/rabbitmq-early-plugin.mk 17 | DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk 18 | 19 | # FIXME: Use erlang.mk patched for RabbitMQ, while waiting for PRs to be 20 | # reviewed and merged. 21 | 22 | ERLANG_MK_REPO = https://github.com/rabbitmq/erlang.mk.git 23 | ERLANG_MK_COMMIT = rabbitmq-tmp 24 | 25 | # -------------------------------------------------------------------- 26 | # Testing. 27 | # -------------------------------------------------------------------- 28 | 29 | include rabbitmq-components.mk 30 | include erlang.mk 31 | 32 | autopatch-gen_smtp:: 33 | $(verbose) sed -i.autopatch.bak -e 's/dep_ranch[^=]*=.*ranch$$/dep_ranch = hex $(DEP_RANCH_VERSION) ranch/' $(DEPS_DIR)/gen_smtp/Makefile 34 | -------------------------------------------------------------------------------- /erlang_ls.config: -------------------------------------------------------------------------------- 1 | # vim: ft=yaml 2 | # https://erlang-ls.github.io/configuration/ 3 | deps_dirs: 4 | - "deps/*" 5 | include_dirs: 6 | - "deps" 7 | - "deps/*/include" 8 | -------------------------------------------------------------------------------- /src/rabbit_email_filter.erl: -------------------------------------------------------------------------------- 1 | % 2 | % This Source Code Form is subject to the terms of the Mozilla Public 3 | % License, v. 2.0. If a copy of the MPL was not distributed with this 4 | % file, You can obtain one at http://mozilla.org/MPL/2.0/. 5 | % 6 | % Copyright (C) 2014-2015 Petr Gotthard 7 | % 8 | 9 | -module(rabbit_email_filter). 10 | -export([extract_payload/1]). 11 | 12 | extract_payload(Data) -> 13 | case application:get_env(rabbitmq_email, email_filter) of 14 | % filtering is disable, just pass on the entire e-mail 15 | {ok, false} -> 16 | {ok, <<"application/mime">>, [], Data}; 17 | % extract the useful content 18 | _Else -> 19 | case filter_body(Data) of 20 | {send, {Type,Subtype,Headers,Params,Body}} when is_binary(Body) -> 21 | {ok, <>, extract_headers(Headers, Params), Body}; 22 | {send, Multipart} -> 23 | {ok, <<"application/mime">>, [], mimemail:encode(Multipart)}; 24 | {empty, {_,_,Headers,Params,_}} -> 25 | {ok, <<>>, extract_headers(Headers, Params), <<>>}; 26 | drop -> 27 | error 28 | end 29 | end. 30 | 31 | merge_and_filter(Headers, ContentTypeParams) -> 32 | AllHeaders = lists:merge(Headers, ContentTypeParams), 33 | lists:filter(fun filter_header/1, AllHeaders). 34 | 35 | extract_headers(Headers, Params) when is_map(Params) -> 36 | ContentTypeParams = maps:get(<<"content-type-params">>, Params, []), 37 | merge_and_filter(Headers, ContentTypeParams); 38 | extract_headers(Headers, Params) when is_list(Params) -> 39 | ContentTypeParams = proplists:get_value(<<"content-type-params">>, Params, []), 40 | merge_and_filter(Headers, ContentTypeParams). 41 | 42 | filter_header({Name, _Value}) -> 43 | Name2 = string:to_lower(binary_to_list(Name)), 44 | {ok, Filter} = application:get_env(rabbitmq_email, email_headers), 45 | lists:member(Name2, Filter). 46 | 47 | filter_body(Data) when is_binary(Data) -> 48 | try mimemail:decode(Data) of 49 | {T,S,H,A,P} -> filter_body({T,S,H,A,P}) 50 | catch 51 | % NOTE: requires OTP 21 52 | Class:Error:Stacktrace -> 53 | rabbit_log:error("Message decode FAILED with ~p:~p~n~p", [Class, Error, Stacktrace]), 54 | drop 55 | end; 56 | 57 | filter_body({<<"multipart">>, Subtype, Header, _Params, Parts}=Parent) -> 58 | % rabbit_log:info("Parsing multipart/~p~n", [Subtype]), 59 | % pass 1: filter undersirable content 60 | case filter_multipart(Subtype, Parts) of 61 | [] -> 62 | drop; 63 | [{Type2, Subtype2, _Header2, Params2, Parts2}] -> 64 | % keep the top-most headers 65 | % FIXME: some top-most should be preserved, but not Content-Type 66 | {send, {Type2, Subtype2, Header, Params2, Parts2}}; 67 | Parts3 when is_list(Parts3) -> 68 | % pass 2: select the best part 69 | {ok, Filter} = application:get_env(rabbitmq_email, email_filter), 70 | {send, best_multipart(Parts3, lists:reverse(Filter), Parent)} 71 | end; 72 | 73 | filter_body({<<"text">>, Subtype, Header, Params, Text}) -> 74 | % remove leading and trailing whitespace 75 | Text2 = re:replace(Text, "(^\\s+)|(\\s+$)", "", [global, {return, binary}]), 76 | % convert DOS to Unix EOL 77 | Text3 = binary:replace(Text2, <<16#0D, 16#0A>>, <<16#0A>>, [global]), 78 | % do not send empty body 79 | if 80 | byte_size(Text3) > 0 -> 81 | % rabbit_log:info("Parsing text/~p~n", [Subtype]), 82 | {send, {<<"text">>, Subtype, Header, Params, Text3}}; 83 | Subtype == <<"plain">> -> 84 | {empty, {<<"text">>, Subtype, Header, Params, <<>>}}; 85 | true -> 86 | drop 87 | end; 88 | 89 | % remove proprietary formats 90 | filter_body({<<"application">>, <<"ms-tnef">>, _H, _A, _P}) -> drop; 91 | % and accept the rest 92 | filter_body(Body) -> {send, Body}. 93 | 94 | % when text/plain in multipart/alternative is empty, the entire body is empty 95 | filter_multipart(<<"alternative">>, List) -> 96 | case filter_bodies(List) of 97 | {_, true} -> []; 98 | {Acc, false} -> Acc 99 | end; 100 | 101 | filter_multipart(_, List) -> 102 | {Acc, _} = filter_bodies(List), 103 | Acc. 104 | 105 | filter_bodies(List1) -> 106 | lists:foldr( 107 | fun (Elem, {Acc, WasEmpty}) -> 108 | case filter_body(Elem) of 109 | {send,Value} -> {[Value|Acc], WasEmpty}; 110 | {empty,_} -> {Acc, true}; 111 | drop -> {Acc, WasEmpty} 112 | end 113 | end, {[], false}, List1). 114 | 115 | best_multipart(Parts, [{Type, SubType} | OtherPrios], BestSoFar) when is_binary(Type), is_binary(SubType) -> 116 | Better = lists:foldl( 117 | fun (Body1, undefined) -> Body1; 118 | (_, {T2, S2, _, _, _}=Body2) when T2==Type, S2==SubType -> Body2; 119 | ({T3, S3, _, _, _}=Body3, _) when T3==Type, S3==SubType -> Body3; 120 | (_, {T4, _, _, _, _}=Body4) when T4==Type -> Body4; 121 | ({T5, _, _, _, _}=Body5, _) when T5==Type -> Body5; 122 | (_, Else) -> Else 123 | end, BestSoFar, Parts), 124 | best_multipart(Parts, OtherPrios, Better); 125 | 126 | best_multipart(Parts, [{Type, undefined} | OtherPrios], BestSoFar) when is_binary(Type) -> 127 | Better = lists:foldl( 128 | fun (Body1, undefined) -> Body1; 129 | (_, {T2, _, _, _, _}=Body2) when T2==Type -> Body2; 130 | ({T3, _, _, _, _}=Body3, _) when T3==Type -> Body3; 131 | (_, Else) -> Else 132 | end, BestSoFar, Parts), 133 | best_multipart(Parts, OtherPrios, Better); 134 | 135 | best_multipart(Parts, [{undefined, undefined} | OtherPrios], BestSoFar) -> 136 | Better = lists:foldl( 137 | fun (Body1, undefined) -> Body1; 138 | (_, Else) -> Else 139 | end, BestSoFar, Parts), 140 | best_multipart(Parts, OtherPrios, Better); 141 | 142 | best_multipart(Parts, [], BestSoFar) -> 143 | lists:foldl( 144 | fun (Body1, undefined) -> Body1; 145 | (_, Else) -> Else 146 | end, BestSoFar, Parts). 147 | 148 | % end of file 149 | 150 | -------------------------------------------------------------------------------- /src/rabbit_email_handler.erl: -------------------------------------------------------------------------------- 1 | % 2 | % This Source Code Form is subject to the terms of the Mozilla Public 3 | % License, v. 2.0. If a copy of the MPL was not distributed with this 4 | % file, You can obtain one at http://mozilla.org/MPL/2.0/. 5 | % 6 | % Copyright (C) 2014 Petr Gotthard 7 | % 8 | % Based on smtp_server_example 9 | % Copyright 2009-2011 Andrew Thompson 10 | % 11 | 12 | -module(rabbit_email_handler). 13 | -behaviour(gen_smtp_server_session). 14 | 15 | -export([init/4, handle_HELO/2, handle_EHLO/3, handle_MAIL/2, handle_MAIL_extension/2, 16 | handle_RCPT/2, handle_RCPT_extension/2, handle_DATA/4, handle_RSET/1, handle_VRFY/2, 17 | handle_other/3, handle_AUTH/4, handle_STARTTLS/1, handle_info/2, 18 | code_change/3, terminate/2]). 19 | 20 | -record(state, { 21 | auth_user, 22 | sender_pid, 23 | options = [] :: list() }). 24 | 25 | -define(AUTH_REQUIRED, "530 SMTP authentication is required"). 26 | -define(DEFAULT_MAXSIZE, 10485760). % 10MiB 27 | 28 | init(Hostname, SessionCount, Address, Options) when SessionCount < 20 -> 29 | rabbit_log:info("~s SMTP connection from ~p~n", [Hostname, Address]), 30 | process_flag(trap_exit, true), 31 | {ok, SenderPid} = rabbit_message_sender:start_link(Hostname), 32 | 33 | Banner = [Hostname, " ESMTP rabbit_email_handler"], 34 | State = #state{sender_pid=SenderPid, options=Options}, 35 | {ok, Banner, State}; 36 | 37 | init(Hostname, _SessionCount, _Address, _Options) -> 38 | rabbit_log:warning("Connection limit exceeded~n"), 39 | {stop, normal, ["421 ", Hostname, " is too busy to accept mail right now"]}. 40 | 41 | handle_HELO(Hostname, State) -> 42 | rabbit_log:info("HELO from ~s~n", [Hostname]), 43 | case application:get_env(rabbitmq_email, server_auth) of 44 | {ok, false} -> 45 | {ok, 655360, set_user_as_anonymous(State)}; % 640kb should be enough for anyone 46 | _Else -> 47 | % we expect EHLO will come 48 | MaxSize = application:get_env(rabbitmq_email, server_maxsize, ?DEFAULT_MAXSIZE), 49 | {ok, MaxSize, State} 50 | end. 51 | 52 | handle_EHLO(Hostname, Extensions0, State0) -> 53 | rabbit_log:info("EHLO from ~s~n", [Hostname]), 54 | Extensions1 = maybe_add_starttls_extension(Extensions0), 55 | Extensions2 = add_size_extension(Extensions1), 56 | {ok, _Extensions3, _State1} = maybe_add_auth_extension(Extensions2, State0). 57 | 58 | add_size_extension(Extensions0) -> 59 | MaxSize = application:get_env(rabbitmq_email, server_maxsize, ?DEFAULT_MAXSIZE), 60 | Extensions1 = lists:keydelete("SIZE", 1, Extensions0), 61 | [{"SIZE", integer_to_list(MaxSize)} | Extensions1]. 62 | 63 | maybe_add_auth_extension(Extensions0, State0) -> 64 | case application:get_env(rabbitmq_email, server_auth) of 65 | {ok, false} -> 66 | State1 = set_user_as_anonymous(State0), 67 | {ok, Extensions0, State1}; 68 | {ok, rabbitmq} -> 69 | Extensions1 = [{"AUTH", "PLAIN LOGIN"} | Extensions0], 70 | {ok, Extensions1, State0} 71 | end. 72 | 73 | set_user_as_anonymous(State) -> 74 | State#state{auth_user=anonymous}. 75 | 76 | maybe_add_starttls_extension(Extensions) -> 77 | case application:get_env(rabbitmq_email, server_starttls) of 78 | {ok, false} -> Extensions; 79 | {ok, true} -> [{"STARTTLS", true} | Extensions] 80 | end. 81 | 82 | handle_MAIL(_From, State=#state{auth_user=undefined}) -> 83 | rabbit_log:error("SMTP authentication is required~n"), 84 | {error, ?AUTH_REQUIRED, State}; 85 | handle_MAIL(_From, State) -> 86 | % you can accept or reject the FROM address here 87 | {ok, State}. 88 | 89 | handle_MAIL_extension(Extension, _State) -> 90 | rabbit_log:warning("Unknown MAIL FROM extension ~s~n", [Extension]), 91 | error. 92 | 93 | handle_RCPT(_From, State=#state{auth_user=undefined}) -> 94 | rabbit_log:error("SMTP authentication is required~n"), 95 | {error, ?AUTH_REQUIRED, State}; 96 | handle_RCPT(_To, State) -> 97 | % you can accept or reject RCPT TO addesses here, one per call 98 | {ok, State}. 99 | 100 | handle_RCPT_extension(Extension, _State) -> 101 | rabbit_log:warning("Unknown RCPT TO extension ~s~n", [Extension]), 102 | error. 103 | 104 | handle_DATA(_From, _To, _Data, #state{auth_user=undefined} = State) -> 105 | rabbit_log:error("SMTP authentication is required~n"), 106 | {error, ?AUTH_REQUIRED, State}; 107 | handle_DATA(_From, _To, <<>>, State) -> 108 | {error, "552 Message too small", State}; 109 | handle_DATA(From, To, Data, State=#state{sender_pid=SenderPid}) -> 110 | % some kind of unique id 111 | Reference = lists:flatten([io_lib:format("~2.16.0b", [X]) || <> <= erlang:md5(term_to_binary(os:timestamp()))]), 112 | % log for debugging purposes 113 | case application:get_env(rabbitmq_email, email_store) of 114 | undefined -> ok; 115 | {ok, Dir} -> file:write_file(Dir++"/mail-"++Reference++".txt", Data) 116 | end, 117 | 118 | case rabbit_email_filter:extract_payload(Data) of 119 | {ok, ContentType, Headers, Body} -> 120 | rabbit_log:info("~s message from ~s to ~p queued as ~s~n", [ContentType, From, To, Reference]), 121 | gen_server:cast(SenderPid, {Reference, To, ContentType, Headers, Body}), 122 | {ok, Reference, State}; 123 | error -> 124 | rabbit_log:error("message from ~s to ~p cannot be delivered~n", [From, To]), 125 | {error, "554 Message cannot be delivered", State} 126 | end. 127 | 128 | handle_RSET(State) -> 129 | % reset any relevant internal state 130 | State. 131 | 132 | handle_VRFY(_Address, State) -> 133 | {error, "252 VRFY disabled by policy, just send some mail", State}. 134 | 135 | handle_other(Verb, _Args, State) -> 136 | % You can implement other SMTP verbs here, if you need to 137 | {["500 Error: command not recognized : '", Verb, "'"], State}. 138 | 139 | handle_AUTH(Type, Username, Password, State) when Type =:= login; Type =:= plain -> 140 | case application:get_env(rabbitmq_email, server_auth) of 141 | {ok, rabbitmq} -> 142 | case rabbit_access_control:check_user_pass_login(Username, Password) of 143 | {ok, AuthUser} -> 144 | {ok, State#state{auth_user=AuthUser}}; 145 | {refused, _U, F, A} -> 146 | rabbit_log:error(F, A), 147 | error 148 | end; 149 | {ok, false} -> 150 | % authentication is disabled; whatever you send is fine 151 | {ok, State#state{auth_user=anonymous}} 152 | end; 153 | handle_AUTH('cram-md5', <<"username">>, {Digest, Seed}, State) -> 154 | case smtp_util:compute_cram_digest(<<"PaSSw0rd">>, Seed) of 155 | Digest -> {ok, State}; 156 | _ -> error 157 | end; 158 | handle_AUTH(_Type, _Username, _Password, _State) -> 159 | error. 160 | 161 | handle_STARTTLS(State) -> 162 | rabbit_log:info("TLS Started~n"), 163 | State. 164 | 165 | handle_info({'EXIT', SenderPid, _Reason}, #state{sender_pid=SenderPid} = State) -> 166 | % sender failed, we terminate as well 167 | {stop, normal, State}; 168 | 169 | handle_info({'EXIT', _, normal}, State) -> 170 | {noreply, State}; 171 | 172 | handle_info(Info, State) -> 173 | rabbit_log:info("~w~n", [Info]), 174 | {noreply, State}. 175 | 176 | code_change(_OldVsn, State, _Extra) -> 177 | {ok, State}. 178 | 179 | terminate(Reason, #state{sender_pid=SenderPid} = State) -> 180 | gen_server:cast(SenderPid, stop), 181 | {ok, Reason, State}. 182 | 183 | 184 | % end of file 185 | 186 | -------------------------------------------------------------------------------- /src/rabbit_email_sender.erl: -------------------------------------------------------------------------------- 1 | % 2 | % This Source Code Form is subject to the terms of the Mozilla Public 3 | % License, v. 2.0. If a copy of the MPL was not distributed with this 4 | % file, You can obtain one at http://mozilla.org/MPL/2.0/. 5 | % 6 | % Copyright (C) 2014 Petr Gotthard 7 | % 8 | 9 | -module(rabbit_email_sender). 10 | 11 | -export([send_email/5]). 12 | 13 | send_email(To, Domain, {Type, Subtype}, Headers, Payload) -> 14 | ToAddr = construct_address(To, Domain), 15 | rabbit_log:info("sending ~p/~p e-mail to ~p~n", [Type, Subtype, ToAddr]), 16 | % add correct From and To headers 17 | {ok, From} = application:get_env(rabbitmq_email, email_from), 18 | Headers2 = Headers ++ 19 | [{<<"From">>, construct_address(From, Domain)}, 20 | {<<"To">>, ToAddr}], 21 | 22 | Headers3 = lists:foldr(fun set_header/2, [], Headers2), 23 | Message = mimemail:encode({Type, Subtype, Headers3, #{}, Payload}), 24 | 25 | % client_sender must be a valid user, whereas From doesn't have to 26 | {ok, Sender} = application:get_env(rabbitmq_email, client_sender), 27 | {ok, ClientConfig} = application:get_env(rabbitmq_email, client_config), 28 | case gen_smtp_client:send({Sender, [ToAddr], Message}, ClientConfig) of 29 | {ok, _Pid} -> ok; 30 | {error, Res} -> rabbit_log:error("message cannot be sent: ~w~n", [Res]) 31 | end. 32 | 33 | set_header({Name, Binary}, Acc) when is_binary(Binary) -> [{Name, Binary}|Acc]; 34 | set_header({Name, List}, Acc) when is_list(List) -> [{Name, list_to_binary(List)}|Acc]; 35 | set_header({_Name, undefined}, Acc) -> Acc; 36 | set_header({_Name, <<>>}, Acc) -> Acc; 37 | set_header({_Name, []}, Acc) -> Acc. 38 | 39 | construct_address(Addr, Domain) -> 40 | case binary:match(Addr, <<"@">>) of 41 | nomatch -> <>; 42 | _Else -> Addr 43 | end. 44 | 45 | % end of file 46 | 47 | -------------------------------------------------------------------------------- /src/rabbit_message_handler.erl: -------------------------------------------------------------------------------- 1 | % 2 | % This Source Code Form is subject to the terms of the Mozilla Public 3 | % License, v. 2.0. If a copy of the MPL was not distributed with this 4 | % file, You can obtain one at http://mozilla.org/MPL/2.0/. 5 | % 6 | % Copyright (C) 2014 Petr Gotthard 7 | % 8 | 9 | -module(rabbit_message_handler). 10 | -behaviour(gen_server). 11 | 12 | -include_lib("amqp_client/include/amqp_client.hrl"). 13 | 14 | -export([start_link/2]). 15 | -export([init/1, handle_call/3, handle_cast/2, handle_continue/2, 16 | handle_info/2, terminate/2, code_change/3]). 17 | 18 | -record(state, {connection, channel}). 19 | 20 | %% This gives RabbitMQ 60 seconds to reach core_started 21 | -define(DEFAULT_TRIES, 12). 22 | -define(RETRY_DELAY_MS, 5000). 23 | 24 | start_link({VHost, Queue}, Domain) -> 25 | gen_server:start_link(?MODULE, [{VHost, Queue}, Domain], []). 26 | 27 | init([{VHost, Queue}, Domain]) -> 28 | process_flag(trap_exit, true), 29 | {ok, #state{}, {continue, {try_connect, {VHost, Queue, Domain}}}}. 30 | 31 | handle_call(_Msg, _From, State) -> 32 | {reply, unknown_command, State}. 33 | 34 | handle_cast(_Msg, State) -> 35 | {noreply, State}. 36 | 37 | handle_continue({try_connect, Args}, State0) -> 38 | {ok, State1} = try_start_connection(Args, ?DEFAULT_TRIES, State0), 39 | {noreply, State1}. 40 | 41 | handle_info({retry_connect, _Args, 0}, State) -> 42 | {stop, connection_failed, State}; 43 | handle_info({retry_connect, Args, RemainingTries}, State0) -> 44 | {ok, State1} = try_start_connection(Args, RemainingTries, State0), 45 | {noreply, State1}; 46 | 47 | %% This is the first message received 48 | handle_info(#'basic.consume_ok'{}, State) -> 49 | {noreply, State}; 50 | 51 | %% This is received when the subscription is cancelled 52 | handle_info(#'basic.cancel_ok'{}, State) -> 53 | {noreply, State}; 54 | 55 | %% A delivery 56 | handle_info({#'basic.deliver'{routing_key=Key, consumer_tag=Tag}, Content}, State) -> 57 | #amqp_msg{props = Properties, payload = Payload} = Content, 58 | #'P_basic'{message_id = MessageId, headers = Headers} = Properties, 59 | {Type, Subtype} = get_content_type(Properties#'P_basic'.content_type), 60 | 61 | Headers2 = transform_headers_to_email(Headers) ++ 62 | [{<<"Message-Id">>, MessageId}], 63 | rabbit_email_sender:send_email(Key, Tag, {Type, Subtype}, Headers2, Payload), 64 | {noreply, State}; 65 | 66 | handle_info(Msg, State) -> 67 | rabbit_log:info("~w", [Msg]), 68 | {noreply, State}. 69 | 70 | terminate(_Reason, #state{connection=undefined, channel=undefined}) -> 71 | ok; 72 | terminate(_Reason, #state{connection=Connection, channel=Channel}) -> 73 | amqp_channel:close(Channel), 74 | amqp_connection:close(Connection), 75 | ok. 76 | 77 | code_change(_OldVsn, State, _Extra) -> 78 | {ok, State}. 79 | 80 | try_start_connection({VHost, Queue, Domain} = Args, RemainingTries, State0) -> 81 | rabbit_log:debug("~p starting connection to vhost '~p'", [?MODULE, VHost]), 82 | State1 = case amqp_connection:start(#amqp_params_direct{virtual_host=VHost}) of 83 | {error, broker_not_found_on_node} -> 84 | rabbit_log:warning("~p: broker_not_found_on_node seen, retrying in 1 second", [?MODULE]), 85 | retry_start_connection(Args, RemainingTries), 86 | State0; 87 | {error, What} -> 88 | rabbit_log:error("~p: error starting direct connection to vhost '~p', '~p'", [?MODULE, VHost, What]), 89 | retry_start_connection(Args, RemainingTries), 90 | State0; 91 | {ok, Connection} -> 92 | rabbit_log:debug("~p successfully started connection to vhost '~p'", [?MODULE, VHost]), 93 | try_declaring_queue(Connection, Queue), 94 | {ok, Channel} = amqp_connection:open_channel(Connection), 95 | Subscribe = #'basic.consume'{queue=Queue, consumer_tag=Domain, no_ack=true}, 96 | #'basic.consume_ok'{} = amqp_channel:call(Channel, Subscribe), 97 | _State1 = State0#state{connection=Connection, channel=Channel} 98 | end, 99 | {ok, State1}. 100 | 101 | try_declaring_queue(Connection, Queue) -> 102 | {ok, Channel} = amqp_connection:open_channel(Connection), 103 | try 104 | catch amqp_channel:call(Channel, #'queue.declare'{queue=Queue, durable=true}) 105 | after 106 | catch amqp_channel:close(Channel) 107 | end. 108 | 109 | retry_start_connection(Args, RemainingTries) -> 110 | _Ref = erlang:send_after(?RETRY_DELAY_MS, self(), {retry_connect, Args, RemainingTries -1}). 111 | 112 | get_content_type(undefined) -> 113 | {<<"text">>, <<"plain">>}; 114 | get_content_type(Binary) -> 115 | [Type, Subtype|_Others] = binary:split(Binary, [<<$/>>, <<$;>>], [global]), 116 | {Type, Subtype}. 117 | 118 | transform_headers_to_email(undefined) -> 119 | []; 120 | transform_headers_to_email(Headers) -> 121 | lists:map(fun 122 | ({Name, longstr, Value}) -> {Name, Value}; 123 | ({Name, array, List}) -> {Name, lists:foldr(fun 124 | ({longstr, Value}, undefined) -> Value; 125 | ({longstr, Value}, Acc) -> <> 126 | end, undefined, List)} 127 | end, Headers). 128 | 129 | % end of file 130 | 131 | -------------------------------------------------------------------------------- /src/rabbit_message_handler_sup.erl: -------------------------------------------------------------------------------- 1 | % 2 | % This Source Code Form is subject to the terms of the Mozilla Public 3 | % License, v. 2.0. If a copy of the MPL was not distributed with this 4 | % file, You can obtain one at http://mozilla.org/MPL/2.0/. 5 | % 6 | % Copyright (C) 2014 Petr Gotthard 7 | % 8 | 9 | -module(rabbit_message_handler_sup). 10 | -behaviour(supervisor). 11 | 12 | -export([start_link/0, init/1]). 13 | 14 | start_link() -> 15 | supervisor:start_link(?MODULE, _Arg = []). 16 | 17 | init([]) -> 18 | {ok, {{one_for_one, 3, 10}, child_spec()}}. 19 | 20 | child_spec() -> 21 | {ok, Queues} = application:get_env(rabbitmq_email, email_queues), 22 | lists:map( 23 | fun({{VHost, Queue}, Domain}) -> 24 | {list_to_atom("message_handler"++binary_to_list(Domain)), 25 | {rabbit_message_handler, start_link, [{VHost, Queue}, Domain]}, 26 | permanent, 10000, worker, [rabbit_message_handler]} 27 | end, Queues). 28 | 29 | % end of file 30 | 31 | -------------------------------------------------------------------------------- /src/rabbit_message_sender.erl: -------------------------------------------------------------------------------- 1 | % 2 | % This Source Code Form is subject to the terms of the Mozilla Public 3 | % License, v. 2.0. If a copy of the MPL was not distributed with this 4 | % file, You can obtain one at http://mozilla.org/MPL/2.0/. 5 | % 6 | % Copyright (C) 2014 Petr Gotthard 7 | % 8 | 9 | -module(rabbit_message_sender). 10 | -behaviour(gen_server). 11 | 12 | -include_lib("amqp_client/include/amqp_client.hrl"). 13 | 14 | -export([start_link/1]). 15 | -export([init/1, handle_call/3, handle_cast/2, handle_info/2, 16 | terminate/2, code_change/3]). 17 | 18 | -record(state, {connection, channel, exchange}). 19 | 20 | start_link(Domain) -> 21 | gen_server:start_link(?MODULE, [Domain], []). 22 | 23 | init([Domain]) -> 24 | {ok, Domains} = application:get_env(rabbitmq_email, email_domains), 25 | {VHost, Exchange} = proplists:get_value(list_to_binary(Domain), Domains), 26 | 27 | process_flag(trap_exit, true), 28 | {ok, Connection} = amqp_connection:start( 29 | #amqp_params_direct{virtual_host=VHost}), 30 | try_declaring_exchange(Connection, Exchange), 31 | 32 | {ok, Channel} = amqp_connection:open_channel(Connection), 33 | State = #state{connection=Connection, channel=Channel, exchange=Exchange}, 34 | {ok, State}. 35 | 36 | try_declaring_exchange(Connection, Exchange) -> 37 | {ok, Channel} = amqp_connection:open_channel(Connection), 38 | try 39 | catch amqp_channel:call(Channel, #'exchange.declare'{exchange=Exchange, 40 | durable=true, 41 | type = <<"topic">>}) 42 | after 43 | catch amqp_channel:close(Channel) 44 | end. 45 | 46 | handle_call(_Msg, _From, State) -> 47 | {reply, unknown_command, State}. 48 | 49 | handle_cast({Reference, To, ContentType, Headers, Body}, #state{channel=Channel, exchange=Exchange}=State) -> 50 | lists:foreach( 51 | fun(Address) -> 52 | Publish = #'basic.publish'{exchange=Exchange, routing_key=Address}, 53 | Properties = #'P_basic'{delivery_mode = 2, %% persistent message 54 | content_type = set_content_type(ContentType), 55 | message_id = list_to_binary(Reference), 56 | timestamp = amqp_ts(), 57 | headers = lists:map(fun({Name, Value}) -> {Name, longstr, Value} end, Headers)}, 58 | Msg = #amqp_msg{props=Properties, payload=Body}, 59 | amqp_channel:cast(Channel, Publish, Msg) 60 | end, To), 61 | {noreply, State}; 62 | 63 | handle_cast(stop, State) -> 64 | {stop, normal, State}. 65 | 66 | handle_info(Msg, State) -> 67 | rabbit_log:info("~w", [Msg]), 68 | {noreply, State}. 69 | 70 | terminate(_Reason, #state{connection=Connection, channel=Channel}) -> 71 | amqp_channel:close(Channel), 72 | amqp_connection:close(Connection), 73 | ok. 74 | 75 | code_change(_OldVsn, State, _Extra) -> 76 | {ok, State}. 77 | 78 | set_content_type(<<>>) -> undefined; 79 | set_content_type(ContentType) -> ContentType. 80 | 81 | amqp_ts() -> 82 | {MegaSecs, Secs, _MicroSecs} = erlang:timestamp(), 83 | MegaSecs * 1000 * 1000 + Secs. 84 | 85 | % end of file 86 | 87 | -------------------------------------------------------------------------------- /src/rabbitmq_email.app.src: -------------------------------------------------------------------------------- 1 | % 2 | % This Source Code Form is subject to the terms of the Mozilla Public 3 | % License, v. 2.0. If a copy of the MPL was not distributed with this 4 | % file, You can obtain one at http://mozilla.org/MPL/2.0/. 5 | % 6 | % Copyright (C) 2014-2015 Petr Gotthard 7 | % Copyright (C) 2017 Pivotal Software, Inc. 8 | % 9 | 10 | {application, rabbitmq_email, 11 | [{description, " E-mail gateway for AMQP 0-9-1"}, 12 | {vsn, "1.1.1"}, 13 | {modules, []}, 14 | {registered, []}, 15 | {mod, {rabbitmq_email_app, []}}, 16 | {env, [ 17 | % email to amqp configuration 18 | {server_config, [ 19 | {port, 2525}, {protocol, tcp}, {domain, "example.com"}, {address,{0,0,0,0}} 20 | ]}, 21 | {server_auth, rabbitmq}, 22 | {server_starttls, false}, 23 | {server_maxsize, 10485760}, % 10MiB 24 | {email_domains, 25 | [{<<"example.com">>, {<<"/">>, <<"email-in">>}} 26 | ]}, 27 | {email_headers, ["subject", "from", "charset"]}, 28 | {email_filter, [ 29 | {<<"text">>, <<"plain">>}, 30 | {<<"text">>, undefined}, 31 | {<<"image">>, undefined}, 32 | {undefined, undefined} 33 | ]}, 34 | % amqp to email configuration 35 | {email_queues, 36 | [{{<<"/">>, <<"email-out">>}, <<"example.com">>} 37 | ]}, 38 | {email_from, <<"noreply">>}, 39 | {client_sender, "noreply@example.com"}, 40 | {client_config, [ 41 | {relay, "smtp.example.com"} 42 | ]} 43 | ]}, 44 | {applications, [kernel, stdlib, rabbit, amqp_client, gen_smtp]}]}. 45 | 46 | % end of file 47 | -------------------------------------------------------------------------------- /src/rabbitmq_email_app.erl: -------------------------------------------------------------------------------- 1 | % 2 | % This Source Code Form is subject to the terms of the Mozilla Public 3 | % License, v. 2.0. If a copy of the MPL was not distributed with this 4 | % file, You can obtain one at http://mozilla.org/MPL/2.0/. 5 | % 6 | % Copyright (C) 2014 Petr Gotthard 7 | % Copyright (c) 2021 VMware, Inc. or its affiliates. All rights reserved. 8 | % 9 | 10 | -module(rabbitmq_email_app). 11 | 12 | -behaviour(application). 13 | -export([start/2, stop/1]). 14 | 15 | -behaviour(supervisor). 16 | -export([init/1]). 17 | 18 | start(_Type, _StartArgs) -> 19 | supervisor:start_link(?MODULE, []). 20 | 21 | stop(_State) -> 22 | ok. 23 | 24 | init([]) -> 25 | {ok, ServerConfig} = application:get_env(rabbitmq_email, server_config), 26 | 27 | % email to amqp 28 | SmtpServerSpec = gen_smtp_server:child_spec(email_handler, rabbit_email_handler, ServerConfig), 29 | 30 | % amqp to email 31 | MessageHandlerSpec = {message_handler_sup, {rabbit_message_handler_sup, start_link, []}, permanent, 10000, supervisor, [rabbit_message_handler_sup]}, 32 | 33 | Specs = [SmtpServerSpec, MessageHandlerSpec], 34 | 35 | Flags = #{ 36 | strategy => one_for_one, 37 | intensity => 3, 38 | period => 10 39 | }, 40 | {ok, {Flags, Specs}}. 41 | -------------------------------------------------------------------------------- /test/send.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import smtplib 4 | from email.mime.text import MIMEText 5 | 6 | me = "me@example.com" 7 | you = "you@example.com" 8 | 9 | msg = MIMEText("Hello world!") 10 | msg['From'] = me 11 | msg['To'] = you 12 | msg['Subject'] = 'Greetings' 13 | 14 | s = smtplib.SMTP('localhost', 2525) 15 | s.login("guest", "guest") 16 | s.sendmail(me, [you], msg.as_string()) 17 | s.quit() 18 | -------------------------------------------------------------------------------- /test/system_SUITE.erl: -------------------------------------------------------------------------------- 1 | % 2 | % This Source Code Form is subject to the terms of the Mozilla Public 3 | % License, v. 2.0. If a copy of the MPL was not distributed with this 4 | % file, You can obtain one at http://mozilla.org/MPL/2.0/. 5 | % 6 | % Copyright (C) 2015-2017 Petr Gotthard 7 | % Copyright (C) 2017 Pivotal Software, Inc. 8 | % 9 | 10 | -module(system_SUITE). 11 | 12 | -include_lib("common_test/include/ct.hrl"). 13 | -include_lib("eunit/include/eunit.hrl"). 14 | -include_lib("amqp_client/include/amqp_client.hrl"). 15 | 16 | -compile(export_all). 17 | 18 | all() -> 19 | [ 20 | {group, non_parallel_tests} 21 | ]. 22 | 23 | groups() -> 24 | [ 25 | {non_parallel_tests, [], [ 26 | email_header_test 27 | , email_filtering_test 28 | , email_filtering_hunny_samples_test 29 | ]} 30 | ]. 31 | 32 | %% ------------------------------------------------------------------- 33 | %% Test suite setup/teardown 34 | %% ------------------------------------------------------------------- 35 | 36 | init_per_suite(Config) -> 37 | rabbit_ct_helpers:log_environment(), 38 | Config1 = rabbit_ct_helpers:set_config(Config, [ 39 | {rmq_nodename_suffix, ?MODULE} 40 | ]), 41 | rabbit_ct_helpers:run_setup_steps(Config1, 42 | rabbit_ct_broker_helpers:setup_steps() ++ 43 | rabbit_ct_client_helpers:setup_steps()). 44 | 45 | end_per_suite(Config) -> 46 | rabbit_ct_helpers:run_teardown_steps(Config, 47 | rabbit_ct_client_helpers:teardown_steps() ++ 48 | rabbit_ct_broker_helpers:teardown_steps()). 49 | 50 | init_per_group(_, Config) -> Config. 51 | 52 | end_per_group(_, Config) -> Config. 53 | 54 | init_per_testcase(Testcase, Config) -> 55 | rabbit_ct_helpers:testcase_started(Config, Testcase). 56 | 57 | end_per_testcase(Testcase, Config) -> 58 | rabbit_ct_helpers:testcase_finished(Config, Testcase). 59 | 60 | %% ------------------------------------------------------------------- 61 | %% Test cases 62 | %% ------------------------------------------------------------------- 63 | 64 | 65 | 66 | email_header_test(Config) -> 67 | [ 68 | ?assert(filter_email(Config, "t0001.txt", {<<"Subject">>, undefined})), 69 | ?assert(filter_email(Config, "t0002.txt", {<<"Subject">>, <<"gobbledigook">>})) 70 | ]. 71 | 72 | email_filtering_test(Config) -> 73 | [ 74 | ?assert(filter_email(Config, "t0001.txt", {content_type, undefined})) 75 | ]. 76 | 77 | email_filtering_hunny_samples_test(Config) -> 78 | [ 79 | ?assert(filter_email(Config, "samples/messages/m0001.txt", {content_type, <<"text/plain">>})), 80 | ?assert(filter_email(Config, "samples/messages/m0002.txt", {content_type, <<"text/plain">>})), 81 | ?assert(filter_email(Config, "samples/messages/m0003.txt", {content_type, <<"text/plain">>})), 82 | ?assert(filter_email(Config, "samples/messages/m0004.txt", {content_type, <<"text/plain">>})), 83 | ?assert(filter_email(Config, "samples/messages/m0005.txt", {content_type, <<"text/plain">>})), 84 | ?assert(filter_email(Config, "samples/messages/m0006.txt", {content_type, <<"text/plain">>})), 85 | ?assert(filter_email(Config, "samples/messages/m0007.txt", {content_type, <<"text/plain">>})), 86 | ?assert(filter_email(Config, "samples/messages/m0008.txt", {content_type, <<"text/plain">>})), 87 | ?assert(filter_email(Config, "samples/messages/m0009.txt", {content_type, <<"text/plain">>})), 88 | ?assert(filter_email(Config, "samples/messages/m0010.txt", {content_type, <<"text/plain">>})), 89 | ?assert(filter_email(Config, "samples/messages/m0011.txt", {content_type, <<"text/plain">>})), 90 | ?assert(filter_email(Config, "samples/messages/m0012.txt", {content_type, <<"image/png">>})), 91 | ?assert(filter_email(Config, "samples/messages/m0013.txt", {content_type, <<"image/png">>})), 92 | ?assert(filter_email(Config, "samples/messages/m0014.txt", {content_type, <<"text/plain">>})), 93 | ?assert(filter_email(Config, "samples/messages/m0015.txt", {content_type, <<"text/plain">>})), 94 | ?assert(filter_email(Config, "samples/messages/m0016.txt", {content_type, <<"text/plain">>})), 95 | ?assert(filter_email(Config, "samples/messages/m0017.txt", {content_type, <<"text/plain">>})), 96 | ?assert(filter_email(Config, "samples/messages/m0018.txt", {content_type, <<"text/plain">>})), 97 | ?assert(filter_email(Config, "samples/messages/m1001.txt", {content_type, <<"text/plain">>})), 98 | ?assert(filter_email(Config, "samples/messages/m1002.txt", {content_type, <<"text/plain">>})), 99 | ?assert(filter_email(Config, "samples/messages/m1003.txt", {content_type, <<"text/plain">>})), 100 | ?assert(filter_email(Config, "samples/messages/m1004.txt", {content_type, <<"text/plain">>})), 101 | ?assert(filter_email(Config, "samples/messages/m1005.txt", {content_type, <<"text/plain">>})), 102 | ?assert(filter_email(Config, "samples/messages/m1006.txt", {content_type, <<"text/html">>})), 103 | ?assert(filter_email(Config, "samples/messages/m1007.txt", {content_type, <<"text/plain">>})), 104 | ?assert(filter_email(Config, "samples/messages/m1008.txt", {content_type, <<"text/plain">>})), 105 | ?assert(filter_email(Config, "samples/messages/m1009.txt", {content_type, <<"text/plain">>})), 106 | %% encoding mismatch 107 | ?assert(filter_email(Config, "samples/messages/m1010.txt", {error, {permanent_failure, "127.0.0.1", <<"554 Message cannot be delivered\r\n">>}})), 108 | ?assert(filter_email(Config, "samples/messages/m1011.txt", {content_type, <<"text/plain">>})), 109 | ?assert(filter_email(Config, "samples/messages/m1012.txt", {content_type, <<"text/plain">>})), 110 | ?assert(filter_email(Config, "samples/messages/m1013.txt", {content_type, <<"image/png">>})), 111 | ?assert(filter_email(Config, "samples/messages/m1014.txt", {content_type, <<"text/plain">>})), 112 | ?assert(filter_email(Config, "samples/messages/m1015.txt", {content_type, <<"text/plain">>})), 113 | ?assert(filter_email(Config, "samples/messages/m1016.txt", {content_type, <<"text/plain">>})), 114 | ?assert(filter_email(Config, "samples/messages/m2001.txt", {content_type, <<"text/plain">>})), 115 | ?assert(filter_email(Config, "samples/messages/m2002.txt", {content_type, <<"text/plain">>})), 116 | ?assert(filter_email(Config, "samples/messages/m2003.txt", {content_type, <<"text/html">>})), 117 | ?assert(filter_email(Config, "samples/messages/m2004.txt", {content_type, <<"text/plain">>})), 118 | ?assert(filter_email(Config, "samples/messages/m2005.txt", {content_type, <<"text/plain">>})), 119 | ?assert(filter_email(Config, "samples/messages/m2006.txt", {content_type, <<"text/html">>})), 120 | ?assert(filter_email(Config, "samples/messages/m2007.txt", {content_type, <<"text/html">>})), 121 | ?assert(filter_email(Config, "samples/messages/m2008.txt", {content_type, <<"text/plain">>})), 122 | ?assert(filter_email(Config, "samples/messages/m2009.txt", {content_type, <<"text/html">>})), 123 | ?assert(filter_email(Config, "samples/messages/m2010.txt", {content_type, <<"text/plain">>})), 124 | ?assert(filter_email(Config, "samples/messages/m2011.txt", {content_type, <<"text/plain">>})), 125 | ?assert(filter_email(Config, "samples/messages/m2012.txt", {content_type, <<"text/plain">>})), 126 | ?assert(filter_email(Config, "samples/messages/m2013.txt", {content_type, <<"text/plain">>})), 127 | ?assert(filter_email(Config, "samples/messages/m2014.txt", {content_type, <<"text/plain">>})), 128 | ?assert(filter_email(Config, "samples/messages/m2015.txt", {content_type, <<"text/plain">>})), 129 | ?assert(filter_email(Config, "samples/messages/m2016.txt", {content_type, <<"text/plain">>})), 130 | ?assert(filter_email(Config, "samples/messages/m3001.txt", {content_type, <<"text/plain">>})), 131 | ?assert(filter_email(Config, "samples/messages/m3002.txt", {content_type, <<"text/plain">>})), 132 | ?assert(filter_email(Config, "samples/messages/m3003.txt", {content_type, <<"application/octet-stream">>})), 133 | ?assert(filter_email(Config, "samples/messages/m3004.txt", {content_type, <<"text/plain">>})) 134 | ]. 135 | 136 | %% 137 | %% Helpers 138 | %% 139 | 140 | filter_email(Config, Filename, Expect) -> 141 | Ch = rabbit_ct_client_helpers:open_channel(Config), 142 | amqp_channel:call(Ch, #'exchange.declare'{exchange = <<"email-in">>, 143 | durable = true, 144 | type = <<"fanout">>}), 145 | #'queue.declare_ok'{queue = Queue} 146 | = amqp_channel:call(Ch, #'queue.declare'{exclusive = true}), 147 | amqp_channel:call(Ch, #'queue.bind'{queue = Queue, 148 | exchange = <<"email-in">>, 149 | routing_key = <<"">>}), 150 | %% send an e-mail 151 | {ok, Email} = read_data_sample(Config, Filename), 152 | ct:pal("Read a sample from ~ts", [Filename]), 153 | Res = case gen_smtp_client:send_blocking({"whatever@example.com", ["test@example.com"], Email}, 154 | [{relay, "127.0.0.1"}, {port, 2525}, {username, "guest"}, {password, "guest"}]) of 155 | Answer when is_binary(Answer) -> 156 | % expect a delivery 157 | ct:pal("SMTP server response: ~tp, will wait for a delivery...", [Answer]), 158 | wait_for_message(Ch, Queue, 500, Expect); 159 | {error, Reason} -> 160 | ct:pal("SMTP server reported an error: ~tp...", [Reason]), 161 | expect_error(Reason, Expect); 162 | {error, _, Reason} -> 163 | ct:pal("SMTP server reported an error: ~tp...", [Reason]), 164 | expect_error(Reason, Expect) 165 | end, 166 | rabbit_ct_client_helpers:close_channel(Ch), 167 | Res. 168 | 169 | read_data_sample(Config, Filename) -> 170 | file:read_file(filename:join(?config(data_dir, Config), Filename)). 171 | 172 | wait_for_message(Ch, Queue, Wait, Expect) -> 173 | case amqp_channel:call(Ch, #'basic.get'{queue = Queue}) of 174 | {'basic.get_empty', _} -> 175 | timer:sleep(Wait), 176 | wait_for_message(Ch, Queue, Wait, Expect); 177 | {#'basic.get_ok'{}, #amqp_msg{props = Props}} -> 178 | expect(Props, Expect) 179 | end. 180 | 181 | expect(#'P_basic'{content_type = Expected}, {content_type, Expected}) -> 182 | true; 183 | expect(#'P_basic'{content_type = Received}, {content_type, Expected}) -> 184 | ct:pal("Content-Type mismatch: expected ~ts, received ~ts", [Expected, Received]), 185 | false; 186 | 187 | expect(#'P_basic'{headers = Headers}, {Header, undefined}) -> 188 | case lists:keyfind(Header, 1, Headers) of 189 | {_,_,Received} -> 190 | ct:pal("~ts not expected: received ~ts", [Header, Received]), 191 | false; 192 | false -> 193 | true 194 | end; 195 | 196 | expect(#'P_basic'{headers = Headers}, {Header, Expected}) -> 197 | case lists:keyfind(Header, 1, Headers) of 198 | {_,_,Expected} -> 199 | true; 200 | {_,_,Received} -> 201 | ct:pal("~ts mismatch: expected ~ts, received ~ts", [Header, Expected, Received]), 202 | false; 203 | false -> 204 | ct:pal("~ts missing, expected ~ts", [Header, Expected]), 205 | false 206 | end; 207 | 208 | expect(Props, error) -> 209 | ct:pal("unexpected success, expected error, received ~w", [Props]), 210 | false. 211 | 212 | expect_error(_Reason, error) -> 213 | true; 214 | expect_error(_Reason, {error, _}) -> 215 | true; 216 | expect_error(Reason, Expected) -> 217 | ct:pal("unexpected error, expected ~tp, received ~tp", [Expected, Reason]), 218 | false. 219 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/SmtpServer.java: -------------------------------------------------------------------------------- 1 | // SmtpServer.java 2 | // 3 | // Usage: 4 | // 5 | // java SmtpServer [] 6 | // 7 | // port is optional, default port is 25 8 | // output is to console and to file msg.txt 9 | // 10 | 11 | import java.io.*; 12 | import java.net.*; 13 | 14 | 15 | public class SmtpServer extends Thread { 16 | 17 | InetAddress mAddress; 18 | Socket mSocket; 19 | 20 | 21 | public SmtpServer(Socket aSocket, InetAddress aAddress) { 22 | mSocket = aSocket; 23 | mAddress = aAddress; 24 | } 25 | 26 | 27 | public void run() { 28 | try { 29 | go(); 30 | } 31 | catch (Exception e) { 32 | System.out.println(e); 33 | } 34 | try { 35 | mSocket.close(); 36 | } 37 | catch (IOException e) { 38 | System.out.println(e); 39 | } 40 | } 41 | 42 | 43 | public void go() throws Exception { 44 | FileOutputStream outFileStrm = new FileOutputStream("msg.txt"); 45 | PrintWriter outFile = new PrintWriter(outFileStrm); 46 | InputStream inStrm = mSocket.getInputStream(); 47 | OutputStream outStrm = mSocket.getOutputStream(); 48 | BufferedReader in = new BufferedReader(new InputStreamReader(inStrm)); 49 | PrintWriter out = new PrintWriter(new OutputStreamWriter(outStrm)); 50 | System.out.println("Connected to "+ 51 | mSocket.getInetAddress().getHostAddress()); 52 | System.out.println("S: 220 "+mAddress); 53 | outFile.println("S: 220 "+mAddress); 54 | out.println("220 "+mAddress); 55 | out.flush(); 56 | loop: 57 | while (true) { 58 | String line = in.readLine(); 59 | if (line.startsWith("HELO") 60 | || line.startsWith("helo")) { 61 | System.out.println("C: "+line); 62 | outFile.println("C: "+line); 63 | System.out.println("S: 250 OK"); 64 | outFile.println("S: 250 OK"); 65 | out.println("250 OK"); 66 | out.flush(); 67 | } 68 | else if (line.startsWith("MAIL FROM:") 69 | || line.startsWith("mail from:")) { 70 | System.out.println("C: "+line); 71 | outFile.println("C: "+line); 72 | System.out.println("S: 250 OK"); 73 | outFile.println("S: 250 OK"); 74 | out.println("250 OK"); 75 | out.flush(); 76 | } 77 | else if (line.startsWith("RCPT TO:") 78 | || line.startsWith("rcpt to:")) { 79 | System.out.println("C: "+line); 80 | outFile.println("C: "+line); 81 | System.out.println("S: 250 OK"); 82 | outFile.println("S: 250 OK"); 83 | out.println("250 OK"); 84 | out.flush(); 85 | } 86 | else if (line.startsWith("DATA") 87 | || line.startsWith("data")) { 88 | System.out.println("C: "+line); 89 | outFile.println("C: "+line); 90 | System.out.println("S: 354 End data with ."); 91 | outFile.println("S: 354 End data with ."); 92 | out.println("354 End data with ."); 93 | out.flush(); 94 | int lineCount = 0; 95 | while (true) { 96 | line = in.readLine(); 97 | if (line.equals(".")) { 98 | System.out.println("C: "+line); 99 | outFile.println("C: "+line); 100 | System.out.println("S: 250 OK"); 101 | outFile.println("S: 250 OK"); 102 | out.println("250 OK"); 103 | out.flush(); 104 | break; 105 | } 106 | else { 107 | System.out.println("C: "+line); 108 | outFile.println("C: "+line); 109 | } 110 | ++lineCount; 111 | } 112 | } 113 | else if (line.startsWith("QUIT") 114 | || line.startsWith("quit")) { 115 | System.out.println("C: "+line); 116 | outFile.println("C: "+line); 117 | System.out.println("S: 221 Bye"); 118 | outFile.println("S: 221 Bye"); 119 | out.println("221 Bye"); 120 | out.flush(); 121 | break loop; 122 | } 123 | else if (line.startsWith("EHLO") 124 | || line.startsWith("ehlo")) { 125 | System.out.println("C: "+line); 126 | outFile.println("C: "+line); 127 | System.out.println("S: 500 Unknown command"); 128 | outFile.println("S: 500 Unknown command"); 129 | out.println("500 Unknown command"); 130 | out.flush(); 131 | } 132 | else if (line.startsWith("RSET") 133 | || line.startsWith("rset")) { 134 | System.out.println("C: "+line); 135 | outFile.println("C: "+line); 136 | System.out.println("S: 250 OK"); 137 | outFile.println("S: 250 OK"); 138 | out.println("250 OK"); 139 | out.flush(); 140 | } 141 | else { 142 | System.out.println("C: "+line); 143 | outFile.println("C: "+line); 144 | System.out.println("S: 500 Unknown command"); 145 | outFile.println("S: 500 Unknown command"); 146 | out.println("500 Unknown command"); 147 | out.flush(); 148 | } 149 | } 150 | outFile.close(); 151 | outFileStrm.close(); 152 | } 153 | 154 | 155 | public static void main(String[] args) { 156 | if (args.length < 1) { 157 | System.out.println("Usage: java SmtpServer address [port]"); 158 | System.exit(1); 159 | } 160 | try { 161 | InetAddress addr = InetAddress.getByName(args[0]); 162 | int port = 25; 163 | if (args.length > 1) { 164 | port = Integer.parseInt(args[1]); 165 | } 166 | ServerSocket serverSocket = new ServerSocket(port, 5, addr); 167 | while (true) { 168 | System.out.println("Waiting for connection on "+ 169 | addr.getHostAddress()+":"+port); 170 | Socket socket = serverSocket.accept(); 171 | try { 172 | SmtpServer serverThread = new SmtpServer(socket, addr); 173 | serverThread.start(); 174 | } 175 | catch (Exception e) { 176 | System.out.println("Whoops!"); 177 | } 178 | } 179 | } 180 | catch (Exception e) { 181 | System.out.println(e); 182 | } 183 | } 184 | 185 | } 186 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/files/HasenundFrФsche.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gotthardp/rabbitmq-email/429cfad8dc0378a4c824cd099e67d114d1de0b9f/test/system_SUITE_data/samples/files/HasenundFrФsche.txt -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/files/blueball.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gotthardp/rabbitmq-email/429cfad8dc0378a4c824cd099e67d114d1de0b9f/test/system_SUITE_data/samples/files/blueball.png -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/files/farmerandstork.txt: -------------------------------------------------------------------------------- 1 | 2 | The Farmer and the Stork 3 | 4 | A FARMER placed nets on his newly-sown plowlands and caught a 5 | number of Cranes, which came to pick up his seed. With them he 6 | trapped a Stork that had fractured his leg in the net and was 7 | earnestly beseeching the Farmer to spare his life. "Pray save 8 | me, Master," he said, "and let me go free this once. My broken 9 | limb should excite your pity. Besides, I am no Crane, I am a 10 | Stork, a bird of excellent character; and see how I love and 11 | slave for my father and mother. Look too, at my feathers-- 12 | they are not the least like those of a Crane." The Farmer 13 | laughed aloud and said, "It may be all as you say, I only know 14 | this: I have taken you with these robbers, the Cranes, and you 15 | must die in their company." 16 | 17 | Birds of a feather flock together. 18 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/files/greenball.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gotthardp/rabbitmq-email/429cfad8dc0378a4c824cd099e67d114d1de0b9f/test/system_SUITE_data/samples/files/greenball.png -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/files/hareandtoroise.txt: -------------------------------------------------------------------------------- 1 | 2 | The Hare and the Tortoise 3 | 4 | A HARE one day ridiculed the short feet and slow pace of the Tortoise, who replied, laughing: "Though you be swift as the wind, I will beat you in a race." The Hare, believing her assertion to be simply impossible, assented to the proposal; and they agreed that the Fox should choose the course and fix the goal. On the day appointed for the race the two started together. The Tortoise never for a moment stopped, but went on with a slow but steady pace straight to the end of the course. The Hare, lying down by the wayside, fell fast asleep. At last waking up, and moving as fast as he could, he saw the Tortoise had reached the goal, and was comfortably dozing after her fatigue. 5 | 6 | Slow but steady wins the race. 7 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/files/redball.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gotthardp/rabbitmq-email/429cfad8dc0378a4c824cd099e67d114d1de0b9f/test/system_SUITE_data/samples/files/redball.png -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/files/wolfandlamb.txt: -------------------------------------------------------------------------------- 1 | 2 | The Wolf and the Lamb 3 | 4 | WOLF, meeting with a Lamb astray from the fold, resolved not to 5 | lay violent hands on him, but to find some plea to justify to the 6 | Lamb the Wolf's right to eat him. He thus addressed him: 7 | "Sirrah, last year you grossly insulted me." "Indeed," bleated 8 | the Lamb in a mournful tone of voice, "I was not then born." Then 9 | said the Wolf, "You feed in my pasture." "No, good sir," replied 10 | the Lamb, "I have not yet tasted grass." Again said the Wolf, 11 | "You drink of my well." "No," exclaimed the Lamb, "I never yet 12 | drank water, for as yet my mother's milk is both food and drink 13 | to me." Upon which the Wolf seized him and ate him up, saying, 14 | "Well! I won't remain supperless, even though you refute every 15 | one of my imputations." The tyrant will always find a pretext for 16 | his tyranny. 17 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m0001.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gotthardp/rabbitmq-email/429cfad8dc0378a4c824cd099e67d114d1de0b9f/test/system_SUITE_data/samples/messages/m0001.txt -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m0002.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gotthardp/rabbitmq-email/429cfad8dc0378a4c824cd099e67d114d1de0b9f/test/system_SUITE_data/samples/messages/m0002.txt -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m0003.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gotthardp/rabbitmq-email/429cfad8dc0378a4c824cd099e67d114d1de0b9f/test/system_SUITE_data/samples/messages/m0003.txt -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m0004.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gotthardp/rabbitmq-email/429cfad8dc0378a4c824cd099e67d114d1de0b9f/test/system_SUITE_data/samples/messages/m0004.txt -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m0005.txt: -------------------------------------------------------------------------------- 1 | From: "Doug Sauder" 2 | To: =?iso-8859-1?B?SvxyZ2VuIFNjaG38cmdlbg==?= 3 | Subject: =?iso-8859-1?Q?Die_Hasen_und_die_Fr=F6sche_=28Microsoft_Outlook_00=29?= 4 | Date: Wed, 17 May 2000 19:15:35 -0400 5 | Message-ID: 6 | MIME-Version: 1.0 7 | Content-Type: text/plain; 8 | charset="iso-8859-1" 9 | Content-Transfer-Encoding: quoted-printable 10 | X-Priority: 3 (Normal) 11 | X-MSMail-Priority: Normal 12 | X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) 13 | Importance: Normal 14 | X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 15 | 16 | Die Hasen und die Fr=F6sche 17 | 18 | Die Hasen klagten einst =FCber ihre mi=DFliche Lage; "wir leben", sprach = 19 | ein Redner, "in steter Furcht vor Menschen und Tieren, eine Beute der = 20 | Hunde, der Adler, ja fast aller Raubtiere! Unsere stete Angst ist = 21 | =E4rger als der Tod selbst. Auf, la=DFt uns ein f=FCr allemal sterben."=20 22 | 23 | In einem nahen Teich wollten sie sich nun ers=E4ufen; sie eilten ihm zu; = 24 | allein das au=DFerordentliche Get=F6se und ihre wunderbare Gestalt = 25 | erschreckte eine Menge Fr=F6sche, die am Ufer sa=DFen, so sehr, da=DF = 26 | sie aufs schnellste untertauchten.=20 27 | 28 | "Halt", rief nun eben dieser Sprecher, "wir wollen das Ers=E4ufen noch = 29 | ein wenig aufschieben, denn auch uns f=FCrchten, wie ihr seht, einige = 30 | Tiere, welche also wohl noch ungl=FCcklicher sein m=FCssen als wir."=20 31 | 32 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m0006.txt: -------------------------------------------------------------------------------- 1 | From: "Doug Sauder" 2 | To: "Joe Blow" , 3 | =?utf-7?B?SitBUHctcmdlbiBTY2htK0FQdy1yZ2Vu?= 4 | Subject: =?utf-7?Q?Die_Hasen_und_die_Fr+APY-sche_=28Microsoft_Outlook_00=29?= 5 | Date: Wed, 17 May 2000 19:18:39 -0400 6 | Message-ID: 7 | MIME-Version: 1.0 8 | Content-Type: text/plain; 9 | charset="utf-7" 10 | Content-Transfer-Encoding: quoted-printable 11 | X-Priority: 3 (Normal) 12 | X-MSMail-Priority: Normal 13 | X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) 14 | Importance: Normal 15 | X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 16 | 17 | Die Hasen und die Fr+APY-sche 18 | 19 | Die Hasen klagten einst +APw-ber ihre mi+AN8-liche Lage+ADs- +ACI-wir = 20 | leben+ACI-, sprach ein Redner, +ACI-in steter Furcht vor Menschen und = 21 | Tieren, eine Beute der Hunde, der Adler, ja fast aller Raubtiere+ACE- = 22 | Unsere stete Angst ist +AOQ-rger als der Tod selbst. Auf, la+AN8-t uns = 23 | ein f+APw-r allemal sterben.+ACI-=20 24 | 25 | In einem nahen Teich wollten sie sich nun ers+AOQ-ufen+ADs- sie eilten = 26 | ihm zu+ADs- allein das au+AN8-erordentliche Get+APY-se und ihre = 27 | wunderbare Gestalt erschreckte eine Menge Fr+APY-sche, die am Ufer = 28 | sa+AN8-en, so sehr, da+AN8- sie aufs schnellste untertauchten.=20 29 | 30 | +ACI-Halt+ACI-, rief nun eben dieser Sprecher, +ACI-wir wollen das = 31 | Ers+AOQ-ufen noch ein wenig aufschieben, denn auch uns f+APw-rchten, wie = 32 | ihr seht, einige Tiere, welche also wohl noch ungl+APw-cklicher sein = 33 | m+APw-ssen als wir.+ACI-=20 34 | 35 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m0007.txt: -------------------------------------------------------------------------------- 1 | From: "Doug Sauder" 2 | To: =?utf-7?Q?Heinz_M+APw-ller?= 3 | Subject: =?utf-7?Q?Die_Hasen_und_die_Fr+APY-sche_=28Microsoft_Outlook_00=29?= 4 | Date: Wed, 17 May 2000 19:20:24 -0400 5 | Message-ID: 6 | MIME-Version: 1.0 7 | Content-Type: text/plain; 8 | charset="utf-7" 9 | Content-Transfer-Encoding: quoted-printable 10 | X-Priority: 3 (Normal) 11 | X-MSMail-Priority: Normal 12 | X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) 13 | Importance: Normal 14 | X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 15 | 16 | Die Hasen und die Fr+APY-sche 17 | 18 | Die Hasen klagten einst +APw-ber ihre mi+AN8-liche Lage+ADs- +ACI-wir = 19 | leben+ACI-, sprach ein Redner, +ACI-in steter Furcht vor Menschen und = 20 | Tieren, eine Beute der Hunde, der Adler, ja fast aller Raubtiere+ACE- = 21 | Unsere stete Angst ist +AOQ-rger als der Tod selbst. Auf, la+AN8-t uns = 22 | ein f+APw-r allemal sterben.+ACI-=20 23 | 24 | In einem nahen Teich wollten sie sich nun ers+AOQ-ufen+ADs- sie eilten = 25 | ihm zu+ADs- allein das au+AN8-erordentliche Get+APY-se und ihre = 26 | wunderbare Gestalt erschreckte eine Menge Fr+APY-sche, die am Ufer = 27 | sa+AN8-en, so sehr, da+AN8- sie aufs schnellste untertauchten.=20 28 | 29 | +ACI-Halt+ACI-, rief nun eben dieser Sprecher, +ACI-wir wollen das = 30 | Ers+AOQ-ufen noch ein wenig aufschieben, denn auch uns f+APw-rchten, wie = 31 | ihr seht, einige Tiere, welche also wohl noch ungl+APw-cklicher sein = 32 | m+APw-ssen als wir.+ACI-=20 33 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m0008.txt: -------------------------------------------------------------------------------- 1 | From: "Doug Sauder" 2 | To: =?utf-8?Q?Heinz_M=C3=BCller?= 3 | Subject: =?utf-8?Q?Die_Hasen_und_die_Fr=C3=B6sche_=28Microsoft_Outlook_00=29?= 4 | Date: Wed, 17 May 2000 19:27:04 -0400 5 | Message-ID: 6 | MIME-Version: 1.0 7 | Content-Type: text/plain; 8 | charset="utf-8" 9 | Content-Transfer-Encoding: quoted-printable 10 | X-Priority: 3 (Normal) 11 | X-MSMail-Priority: Normal 12 | X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) 13 | Importance: Normal 14 | X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 15 | 16 | Die Hasen und die Fr=C3=B6sche 17 | 18 | Die Hasen klagten einst =C3=BCber ihre mi=C3=9Fliche Lage; "wir leben", = 19 | sprach ein Redner, "in steter Furcht vor Menschen und Tieren, eine Beute = 20 | der Hunde, der Adler, ja fast aller Raubtiere! Unsere stete Angst ist = 21 | =C3=A4rger als der Tod selbst. Auf, la=C3=9Ft uns ein f=C3=BCr allemal = 22 | sterben."=20 23 | 24 | In einem nahen Teich wollten sie sich nun ers=C3=A4ufen; sie eilten ihm = 25 | zu; allein das au=C3=9Ferordentliche Get=C3=B6se und ihre wunderbare = 26 | Gestalt erschreckte eine Menge Fr=C3=B6sche, die am Ufer sa=C3=9Fen, so = 27 | sehr, da=C3=9F sie aufs schnellste untertauchten.=20 28 | 29 | "Halt", rief nun eben dieser Sprecher, "wir wollen das Ers=C3=A4ufen = 30 | noch ein wenig aufschieben, denn auch uns f=C3=BCrchten, wie ihr seht, = 31 | einige Tiere, welche also wohl noch ungl=C3=BCcklicher sein m=C3=BCssen = 32 | als wir."=20 33 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m0009.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gotthardp/rabbitmq-email/429cfad8dc0378a4c824cd099e67d114d1de0b9f/test/system_SUITE_data/samples/messages/m0009.txt -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m0010.txt: -------------------------------------------------------------------------------- 1 | From: "Doug Sauder" 2 | To: =?Windows-1252?Q?Heinz_M=FCller?= 3 | Subject: =?Windows-1252?Q?Die_Hasen_und_die_Fr=F6sche_=28Microsoft_Outlook_00=29?= 4 | Date: Wed, 17 May 2000 19:30:20 -0400 5 | Message-ID: 6 | MIME-Version: 1.0 7 | Content-Type: text/plain; 8 | charset="Windows-1252" 9 | Content-Transfer-Encoding: quoted-printable 10 | X-Priority: 3 (Normal) 11 | X-MSMail-Priority: Normal 12 | X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) 13 | Importance: Normal 14 | X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 15 | 16 | Die Hasen und die Fr=F6sche 17 | 18 | Die Hasen klagten einst =FCber ihre mi=DFliche Lage; "wir leben", sprach = 19 | ein Redner, "in steter Furcht vor Menschen und Tieren, eine Beute der = 20 | Hunde, der Adler, ja fast aller Raubtiere! Unsere stete Angst ist = 21 | =E4rger als der Tod selbst. Auf, la=DFt uns ein f=FCr allemal sterben."=20 22 | 23 | In einem nahen Teich wollten sie sich nun ers=E4ufen; sie eilten ihm zu; = 24 | allein das au=DFerordentliche Get=F6se und ihre wunderbare Gestalt = 25 | erschreckte eine Menge Fr=F6sche, die am Ufer sa=DFen, so sehr, da=DF = 26 | sie aufs schnellste untertauchten.=20 27 | 28 | "Halt", rief nun eben dieser Sprecher, "wir wollen das Ers=E4ufen noch = 29 | ein wenig aufschieben, denn auch uns f=FCrchten, wie ihr seht, einige = 30 | Tiere, welche also wohl noch ungl=FCcklicher sein m=FCssen als wir."=20 31 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m0011.txt: -------------------------------------------------------------------------------- 1 | From: "Doug Sauder" 2 | To: =?iso-8859-1?Q?Heinz_M=FCller?= 3 | Subject: Test message from Microsoft Outlook 00 4 | Date: Wed, 17 May 2000 19:32:47 -0400 5 | Message-ID: 6 | MIME-Version: 1.0 7 | Content-Type: multipart/mixed; 8 | boundary="----=_NextPart_000_0002_01BFC036.AE309650" 9 | X-Priority: 3 (Normal) 10 | X-MSMail-Priority: Normal 11 | X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) 12 | Importance: Normal 13 | X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 14 | 15 | This is a multi-part message in MIME format. 16 | 17 | ------=_NextPart_000_0002_01BFC036.AE309650 18 | Content-Type: text/plain; 19 | charset="iso-8859-1" 20 | Content-Transfer-Encoding: quoted-printable 21 | 22 | 23 | The Hare and the Tortoise=20 24 | =20 25 | A HARE one day ridiculed the short feet and slow pace of the Tortoise, = 26 | who replied, laughing: "Though you be swift as the wind, I will beat = 27 | you in a race." The Hare, believing her assertion to be simply = 28 | impossible, assented to the proposal; and they agreed that the Fox = 29 | should choose the course and fix the goal. On the day appointed for the = 30 | race the two started together. The Tortoise never for a moment stopped, = 31 | but went on with a slow but steady pace straight to the end of the = 32 | course. The Hare, lying down by the wayside, fell fast asleep. At last = 33 | waking up, and moving as fast as he could, he saw the Tortoise had = 34 | reached the goal, and was comfortably dozing after her fatigue. =20 35 | =20 36 | Slow but steady wins the race. =20 37 | 38 | ------=_NextPart_000_0002_01BFC036.AE309650 39 | Content-Type: image/png; 40 | name="blueball.png" 41 | Content-Transfer-Encoding: base64 42 | Content-Disposition: attachment; 43 | filename="blueball.png" 44 | 45 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAgAABAAABgAAAAA 46 | CCkAEEIAEEoACDEAEFIIIXMIKXsIKYQIIWsAGFoACDkIIWMQOZwYQqUYQq0YQrUQOaUQMZQAGFIQ 47 | MYwpUrU5Y8Y5Y84pWs4YSs4YQs4YQr1Ca8Z7nNacvd6Mtd5jlOcxa94hUt4YStYYQsYQMaUAACHO 48 | 5+/n7++cxu9ShO8pWucQOa1Ke86tzt6lzu9ajO8QMZxahNat1ufO7++Mve9Ke+8YOaUYSsaMvee1 49 | 5++Uve8AAClajOdzpe9rnO8IKYwxY+8pWu8IIXsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 50 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 51 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 52 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 53 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 54 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 55 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 56 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 57 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 58 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 59 | AAAAAAAAAAAAAADBMg1VAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAu 60 | MT1evmgAAAGISURBVHicddJtV5swGAbgEk6AJhBSk4bMCUynBSLaqovbrG/bfPn/vyh70lbssceb 61 | L5xznTsh5BmNhgQoRChwo50EOIohUYLDj4zHhKYQkrEoQdvock4ne0IKMVUpKZLQDeqSTIsv+18P 62 | yqqWUw2IBsRM7307PPp+fDJrWtnpLDJvewYxnewfnvanZ+fzpmwXijC8KbqEa3Fx2ff91Y95U9XC 63 | UpaDeQwiMpHXP/v+1++bWVPWQoGFawtjury9vru/f/C1Vi7ezT0WWpQHf/7+u/G71aLThK/MjRxm 64 | T6KdzZ9fGk9yatMsTgZLl3XVgFRAC6spj/13enssqJVtWVa3NdBSacL8+VZmYqKmdd1CSYoOiMOS 65 | GwtzlqqlFFIuOqv0a1ZEZrUkWICLLFW266y1KvWE1zV/iDAH1EopnVLCiygZCIomH3NCKX0lnI+B 66 | 1iuuzCGTxwXjnDO4d7NpbX42YJJHkBwmAm2TxwAZg40J3+Xtbv1rgOAZwG0NxW62p+lT+Yi747sD 67 | /wEUVMzYmWkOvwAAACV0RVh0Q29tbWVudABjbGlwMmdpZiB2LjAuNiBieSBZdmVzIFBpZ3VldDZz 68 | O7wAAAAASUVORK5CYII= 69 | 70 | ------=_NextPart_000_0002_01BFC036.AE309650 71 | Content-Type: image/png; 72 | name="greenball.png" 73 | Content-Transfer-Encoding: base64 74 | Content-Disposition: attachment; 75 | filename="greenball.png" 76 | 77 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAAAEAAAGAAAIQAA 78 | CAAAMQAAQgAAUgAAWgAASgAIYwAIcwAIewAQjAAIawAAOQAAYwAQlAAQnAAhpQAQpQAhrQBCvRhj 79 | xjFjxjlSxiEpzgAYvQAQrQAYrQAhvQCU1mOt1nuE1lJK3hgh1gAYxgAYtQAAKQBCzhDO55Te563G 80 | 55SU52NS5yEh3gAYzgBS3iGc52vW75y974yE71JC7xCt73ul3nNa7ykh5wAY1gAx5wBS7yFr7zlK 81 | 7xgp5wAp7wAx7wAIhAAQtQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 82 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 83 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 84 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 85 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 86 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 87 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 88 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 89 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 90 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 91 | AAAAAAAAAAAAAAAp1fnZAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAu 92 | MT1evmgAAAFtSURBVHicddJtV8IgFAdwD2zIgMEE1+NcqdsoK+m5tCyz7/+ZiLmHsyzvq53zO/cy 93 | +N9ery1bVe9PWQA9z4MQ+H8Yoj7GASZ95IHfaBGmLOSchyIgyOu22mgQSjUcDuNYcoGjLiLK1cHh 94 | 0fHJaTKKOcMItgYxT89OzsfjyTTLC8UF0c2ZNmKquJhczq6ub+YmSVUYRF59GeDastu7+9nD41Nm 95 | kiJ2jc2J3kAWZ9Pr55fH18XSmRuKUTXUaqHy7O19tfr4NFle/w3YDrWRUIlZrL/W86XJkyJVG9Ea 96 | EjIx2XyZmZJGioeUaL+2AY8TY8omR6nkLKhu70zjUKVJXsp3quS2DVSJWNh3zzJKCyexI0ZxBP3a 97 | fE0ElyqOlZJyw8r3BE2SFiJCyxA434SCkg65RhdeQBljQtCg39LWrA90RDDG1EWrYUO23hMANUKR 98 | Rl61E529cR++D2G5LK002dr/qrcfu9u0V3bxn/XdhR/NYeeN0ggsLAAAACV0RVh0Q29tbWVudABj 99 | bGlwMmdpZiB2LjAuNiBieSBZdmVzIFBpZ3VldDZzO7wAAAAASUVORK5CYII= 100 | 101 | ------=_NextPart_000_0002_01BFC036.AE309650 102 | Content-Type: image/png; 103 | name="redball.png" 104 | Content-Transfer-Encoding: base64 105 | Content-Disposition: attachment; 106 | filename="redball.png" 107 | 108 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAABAAALAAAVAAAa 109 | AAAXAAARAAAKAAADAAAcAAAyAABEAABNAABIAAA9AAAjAAAWAAAmAABhAAB7AACGAACHAAB9AAB0 110 | AABgAAA5AAAUAAAGAAAnAABLAABvAACQAAClAAC7AAC/AACrAAChAACMAABzAABbAAAuAAAIAABM 111 | AAB3AACZAAC0GRnKODjVPT3bKSndBQW4AACoAAB5AAAxAAAYAAAEAABFAACaAAC7JCTRYWHfhITm 112 | f3/mVlbqHx/SAAC5AACjAABdAABCAAAoAAAJAABnAAC6Dw/QVFTek5PlrKzpmZntZWXvJSXXAADB 113 | AACxAACcAABtAABTAAA2AAAbAAAFAABKAACBAADLICDdZ2fonJzrpqbtiorvUVHvFBTRAADDAAC2 114 | AAB4AABeAABAAAAiAABXAACSAADCAADaGxvoVVXseHjveHjvV1fvJibhAADOAAC3AACnAACVAABH 115 | AAArAAAPAACdAADFAADhBQXrKCjvPDzvNTXvGxvjAADQAADJAAC1AACXAACEAABsAABPAAASAAAC 116 | AABiAADpAADvAgLnAADYAADLAAC6AACwAABwAAATAAAkAABYAADIAADTAADNAACzAACDAABuAAAe 117 | AAB+AADAAACkAACNAAB/AABpAABQAAAwAACRAACpAAC8AACqAACbAABlAABJAAAqAAAOAAA0AACs 118 | AACvAACtAACmAACJAAB6AABrAABaAAA+AAApAABqAACCAACfAACeAACWAACPAAB8AAAZAAAHAABV 119 | AACOAACKAAA4AAAQAAA/AAByAACAAABcAAA3AAAsAABmAABDAABWAAAgAAAzAAA8AAA6AAAfAAAM 120 | AAAdAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 121 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 122 | AAAAAAAAAAAAAAD8LtlFAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAu 123 | MT1evmgAAAIISURBVHicY2CAg/8QwIABmJhZWFnZ2Dk4MaU5uLh5eHn5+LkFBDlQJf8zC/EIi4iK 124 | iUtI8koJScsgyf5nlpWTV1BUUlZRVVPX4NFk1UJIyghp6+jq6RsYGhmbKJgK85mZW8Dk/rNaSlhZ 125 | 29ja2Ts4Ojkr6Li4urFDNf53N/Ow8vTy9vH18w8IDAoWDQkNC4+ASP5ni4wKio6JjYtPSExKTnFW 126 | SE1LF4A69n9GZlZ2Tm5efkFhUXFySWlZlEd5RSVY7j+TkGRVdU1tXX1DY1Ozcktpa1t7h2YnOAj+ 127 | d7l1tyo79vT29SdNSJ44SbFVdHIo9xSIHNPUaWqTpifNSJrZnK00S0U1a/acUG5piNz/uXLzVJ2q 128 | m6dXz584S2WB1cJFi5cshZr539xVftnyFKUVTi2TVjqvyhJLXb1m7TqoHPt6F/HW0g0bN63crGqV 129 | tWXrtu07BJihcsw71+zanRW8Z89eq337RQ/Ip60xO3gIElX/LbikDm8T36KwbNmRo7O3zpHkPSZw 130 | HBqL//8flz1x2OOkyKJTi7aqbzutfUZI2gIuF8F2lr/D5dw2+fZdwpl8YVOlI+CJ4/9/joOyYed5 131 | QzMvhGqnm2V0WiClm///D0lfXHtJ6vLlK9w7rx7vQk5SQJbFtSms1y9evXid7QZacgOxmSxktNzd 132 | tSwwU+J/VICaCPFIYU3XAJhIOtjf5sfyAAAAJXRFWHRDb21tZW50AGNsaXAyZ2lmIHYuMC42IGJ5 133 | IFl2ZXMgUGlndWV0NnM7vAAAAABJRU5ErkJggg== 134 | 135 | ------=_NextPart_000_0002_01BFC036.AE309650-- 136 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m0012.txt: -------------------------------------------------------------------------------- 1 | From: "Doug Sauder" 2 | To: "Joe Blow" 3 | Subject: Test message from Microsoft Outlook 00 4 | Date: Wed, 17 May 2000 19:35:05 -0400 5 | Message-ID: 6 | MIME-Version: 1.0 7 | Content-Type: image/png; 8 | name="redball.png" 9 | Content-Transfer-Encoding: base64 10 | Content-Disposition: attachment; 11 | filename="redball.png" 12 | X-Priority: 3 (Normal) 13 | X-MSMail-Priority: Normal 14 | X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) 15 | Importance: Normal 16 | X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 17 | 18 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAABAAALAAAVAAAa 19 | AAAXAAARAAAKAAADAAAcAAAyAABEAABNAABIAAA9AAAjAAAWAAAmAABhAAB7AACGAACHAAB9AAB0 20 | AABgAAA5AAAUAAAGAAAnAABLAABvAACQAAClAAC7AAC/AACrAAChAACMAABzAABbAAAuAAAIAABM 21 | AAB3AACZAAC0GRnKODjVPT3bKSndBQW4AACoAAB5AAAxAAAYAAAEAABFAACaAAC7JCTRYWHfhITm 22 | f3/mVlbqHx/SAAC5AACjAABdAABCAAAoAAAJAABnAAC6Dw/QVFTek5PlrKzpmZntZWXvJSXXAADB 23 | AACxAACcAABtAABTAAA2AAAbAAAFAABKAACBAADLICDdZ2fonJzrpqbtiorvUVHvFBTRAADDAAC2 24 | AAB4AABeAABAAAAiAABXAACSAADCAADaGxvoVVXseHjveHjvV1fvJibhAADOAAC3AACnAACVAABH 25 | AAArAAAPAACdAADFAADhBQXrKCjvPDzvNTXvGxvjAADQAADJAAC1AACXAACEAABsAABPAAASAAAC 26 | AABiAADpAADvAgLnAADYAADLAAC6AACwAABwAAATAAAkAABYAADIAADTAADNAACzAACDAABuAAAe 27 | AAB+AADAAACkAACNAAB/AABpAABQAAAwAACRAACpAAC8AACqAACbAABlAABJAAAqAAAOAAA0AACs 28 | AACvAACtAACmAACJAAB6AABrAABaAAA+AAApAABqAACCAACfAACeAACWAACPAAB8AAAZAAAHAABV 29 | AACOAACKAAA4AAAQAAA/AAByAACAAABcAAA3AAAsAABmAABDAABWAAAgAAAzAAA8AAA6AAAfAAAM 30 | AAAdAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 31 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 32 | AAAAAAAAAAAAAAD8LtlFAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAu 33 | MT1evmgAAAIISURBVHicY2CAg/8QwIABmJhZWFnZ2Dk4MaU5uLh5eHn5+LkFBDlQJf8zC/EIi4iK 34 | iUtI8koJScsgyf5nlpWTV1BUUlZRVVPX4NFk1UJIyghp6+jq6RsYGhmbKJgK85mZW8Dk/rNaSlhZ 35 | 29ja2Ts4Ojkr6Li4urFDNf53N/Ow8vTy9vH18w8IDAoWDQkNC4+ASP5ni4wKio6JjYtPSExKTnFW 36 | SE1LF4A69n9GZlZ2Tm5efkFhUXFySWlZlEd5RSVY7j+TkGRVdU1tXX1DY1Ozcktpa1t7h2YnOAj+ 37 | d7l1tyo79vT29SdNSJ44SbFVdHIo9xSIHNPUaWqTpifNSJrZnK00S0U1a/acUG5piNz/uXLzVJ2q 38 | m6dXz584S2WB1cJFi5cshZr539xVftnyFKUVTi2TVjqvyhJLXb1m7TqoHPt6F/HW0g0bN63crGqV 39 | tWXrtu07BJihcsw71+zanRW8Z89eq337RQ/Ip60xO3gIElX/LbikDm8T36KwbNmRo7O3zpHkPSZw 40 | HBqL//8flz1x2OOkyKJTi7aqbzutfUZI2gIuF8F2lr/D5dw2+fZdwpl8YVOlI+CJ4/9/joOyYed5 41 | QzMvhGqnm2V0WiClm///D0lfXHtJ6vLlK9w7rx7vQk5SQJbFtSms1y9evXid7QZacgOxmSxktNzd 42 | tSwwU+J/VICaCPFIYU3XAJhIOtjf5sfyAAAAJXRFWHRDb21tZW50AGNsaXAyZ2lmIHYuMC42IGJ5 43 | IFl2ZXMgUGlndWV0NnM7vAAAAABJRU5ErkJggg== 44 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m0013.txt: -------------------------------------------------------------------------------- 1 | From: "Doug Sauder" 2 | To: "Joe Blow" 3 | Subject: Test message from Microsoft Outlook 00 4 | Date: Wed, 17 May 2000 19:36:13 -0400 5 | Message-ID: 6 | MIME-Version: 1.0 7 | Content-Type: multipart/mixed; 8 | boundary="----=_NextPart_000_0004_01BFC037.28F2FA90" 9 | X-Priority: 3 (Normal) 10 | X-MSMail-Priority: Normal 11 | X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) 12 | Importance: Normal 13 | X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 14 | 15 | This is a multi-part message in MIME format. 16 | 17 | ------=_NextPart_000_0004_01BFC037.28F2FA90 18 | Content-Type: image/png; 19 | name="blueball.png" 20 | Content-Transfer-Encoding: base64 21 | Content-Disposition: attachment; 22 | filename="blueball.png" 23 | 24 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAgAABAAABgAAAAA 25 | CCkAEEIAEEoACDEAEFIIIXMIKXsIKYQIIWsAGFoACDkIIWMQOZwYQqUYQq0YQrUQOaUQMZQAGFIQ 26 | MYwpUrU5Y8Y5Y84pWs4YSs4YQs4YQr1Ca8Z7nNacvd6Mtd5jlOcxa94hUt4YStYYQsYQMaUAACHO 27 | 5+/n7++cxu9ShO8pWucQOa1Ke86tzt6lzu9ajO8QMZxahNat1ufO7++Mve9Ke+8YOaUYSsaMvee1 28 | 5++Uve8AAClajOdzpe9rnO8IKYwxY+8pWu8IIXsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 29 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 30 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 31 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 32 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 33 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 34 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 35 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 36 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 37 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 38 | AAAAAAAAAAAAAADBMg1VAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAu 39 | MT1evmgAAAGISURBVHicddJtV5swGAbgEk6AJhBSk4bMCUynBSLaqovbrG/bfPn/vyh70lbssceb 40 | L5xznTsh5BmNhgQoRChwo50EOIohUYLDj4zHhKYQkrEoQdvock4ne0IKMVUpKZLQDeqSTIsv+18P 41 | yqqWUw2IBsRM7307PPp+fDJrWtnpLDJvewYxnewfnvanZ+fzpmwXijC8KbqEa3Fx2ff91Y95U9XC 42 | UpaDeQwiMpHXP/v+1++bWVPWQoGFawtjury9vru/f/C1Vi7ezT0WWpQHf/7+u/G71aLThK/MjRxm 43 | T6KdzZ9fGk9yatMsTgZLl3XVgFRAC6spj/13enssqJVtWVa3NdBSacL8+VZmYqKmdd1CSYoOiMOS 44 | GwtzlqqlFFIuOqv0a1ZEZrUkWICLLFW266y1KvWE1zV/iDAH1EopnVLCiygZCIomH3NCKX0lnI+B 45 | 1iuuzCGTxwXjnDO4d7NpbX42YJJHkBwmAm2TxwAZg40J3+Xtbv1rgOAZwG0NxW62p+lT+Yi747sD 46 | /wEUVMzYmWkOvwAAACV0RVh0Q29tbWVudABjbGlwMmdpZiB2LjAuNiBieSBZdmVzIFBpZ3VldDZz 47 | O7wAAAAASUVORK5CYII= 48 | 49 | ------=_NextPart_000_0004_01BFC037.28F2FA90 50 | Content-Type: image/png; 51 | name="redball.png" 52 | Content-Transfer-Encoding: base64 53 | Content-Disposition: attachment; 54 | filename="redball.png" 55 | 56 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAABAAALAAAVAAAa 57 | AAAXAAARAAAKAAADAAAcAAAyAABEAABNAABIAAA9AAAjAAAWAAAmAABhAAB7AACGAACHAAB9AAB0 58 | AABgAAA5AAAUAAAGAAAnAABLAABvAACQAAClAAC7AAC/AACrAAChAACMAABzAABbAAAuAAAIAABM 59 | AAB3AACZAAC0GRnKODjVPT3bKSndBQW4AACoAAB5AAAxAAAYAAAEAABFAACaAAC7JCTRYWHfhITm 60 | f3/mVlbqHx/SAAC5AACjAABdAABCAAAoAAAJAABnAAC6Dw/QVFTek5PlrKzpmZntZWXvJSXXAADB 61 | AACxAACcAABtAABTAAA2AAAbAAAFAABKAACBAADLICDdZ2fonJzrpqbtiorvUVHvFBTRAADDAAC2 62 | AAB4AABeAABAAAAiAABXAACSAADCAADaGxvoVVXseHjveHjvV1fvJibhAADOAAC3AACnAACVAABH 63 | AAArAAAPAACdAADFAADhBQXrKCjvPDzvNTXvGxvjAADQAADJAAC1AACXAACEAABsAABPAAASAAAC 64 | AABiAADpAADvAgLnAADYAADLAAC6AACwAABwAAATAAAkAABYAADIAADTAADNAACzAACDAABuAAAe 65 | AAB+AADAAACkAACNAAB/AABpAABQAAAwAACRAACpAAC8AACqAACbAABlAABJAAAqAAAOAAA0AACs 66 | AACvAACtAACmAACJAAB6AABrAABaAAA+AAApAABqAACCAACfAACeAACWAACPAAB8AAAZAAAHAABV 67 | AACOAACKAAA4AAAQAAA/AAByAACAAABcAAA3AAAsAABmAABDAABWAAAgAAAzAAA8AAA6AAAfAAAM 68 | AAAdAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 69 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 70 | AAAAAAAAAAAAAAD8LtlFAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAu 71 | MT1evmgAAAIISURBVHicY2CAg/8QwIABmJhZWFnZ2Dk4MaU5uLh5eHn5+LkFBDlQJf8zC/EIi4iK 72 | iUtI8koJScsgyf5nlpWTV1BUUlZRVVPX4NFk1UJIyghp6+jq6RsYGhmbKJgK85mZW8Dk/rNaSlhZ 73 | 29ja2Ts4Ojkr6Li4urFDNf53N/Ow8vTy9vH18w8IDAoWDQkNC4+ASP5ni4wKio6JjYtPSExKTnFW 74 | SE1LF4A69n9GZlZ2Tm5efkFhUXFySWlZlEd5RSVY7j+TkGRVdU1tXX1DY1Ozcktpa1t7h2YnOAj+ 75 | d7l1tyo79vT29SdNSJ44SbFVdHIo9xSIHNPUaWqTpifNSJrZnK00S0U1a/acUG5piNz/uXLzVJ2q 76 | m6dXz584S2WB1cJFi5cshZr539xVftnyFKUVTi2TVjqvyhJLXb1m7TqoHPt6F/HW0g0bN63crGqV 77 | tWXrtu07BJihcsw71+zanRW8Z89eq337RQ/Ip60xO3gIElX/LbikDm8T36KwbNmRo7O3zpHkPSZw 78 | HBqL//8flz1x2OOkyKJTi7aqbzutfUZI2gIuF8F2lr/D5dw2+fZdwpl8YVOlI+CJ4/9/joOyYed5 79 | QzMvhGqnm2V0WiClm///D0lfXHtJ6vLlK9w7rx7vQk5SQJbFtSms1y9evXid7QZacgOxmSxktNzd 80 | tSwwU+J/VICaCPFIYU3XAJhIOtjf5sfyAAAAJXRFWHRDb21tZW50AGNsaXAyZ2lmIHYuMC42IGJ5 81 | IFl2ZXMgUGlndWV0NnM7vAAAAABJRU5ErkJggg== 82 | 83 | ------=_NextPart_000_0004_01BFC037.28F2FA90-- 84 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m0014.txt: -------------------------------------------------------------------------------- 1 | From: "Doug Sauder" 2 | To: "Joe Blow" 3 | Subject: Test message from Microsoft Outlook 00 4 | Date: Wed, 17 May 2000 19:38:28 -0400 5 | Message-ID: 6 | MIME-Version: 1.0 7 | Content-Type: multipart/alternative; 8 | boundary="----=_NextPart_000_0005_01BFC037.799BEF60" 9 | X-Priority: 3 (Normal) 10 | X-MSMail-Priority: Normal 11 | X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) 12 | Importance: Normal 13 | X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 14 | 15 | This is a multi-part message in MIME format. 16 | 17 | ------=_NextPart_000_0005_01BFC037.799BEF60 18 | Content-Type: text/plain; 19 | charset="iso-8859-1" 20 | Content-Transfer-Encoding: quoted-printable 21 | 22 | 23 | The Hare and the Tortoise=20 24 | =20 25 | A HARE one day ridiculed the short feet and slow pace of the Tortoise, = 26 | who replied, laughing: "Though you be swift as the wind, I will beat = 27 | you in a race." The Hare, believing her assertion to be simply = 28 | impossible, assented to the proposal; and they agreed that the Fox = 29 | should choose the course and fix the goal. On the day appointed for the = 30 | race the two started together. The Tortoise never for a moment stopped, = 31 | but went on with a slow but steady pace straight to the end of the = 32 | course. The Hare, lying down by the wayside, fell fast asleep. At last = 33 | waking up, and moving as fast as he could, he saw the Tortoise had = 34 | reached the goal, and was comfortably dozing after her fatigue. =20 35 | =20 36 | Slow but steady wins the race. =20 37 | 38 | 39 | ------=_NextPart_000_0005_01BFC037.799BEF60 40 | Content-Type: text/html; 41 | charset="iso-8859-1" 42 | Content-Transfer-Encoding: quoted-printable 43 | 44 | 45 | 46 | 48 | 49 | 50 |

The Hare and the Tortoise = 51 |
 
A HARE=20 52 | one day ridiculed the short feet and slow pace of the Tortoise, who = 53 | replied,=20 54 | laughing:  "Though you be swift as the wind, I will beat you in a=20 55 | race."  The Hare, believing her assertion to be simply impossible, = 56 | assented=20 57 | to the proposal; and they agreed that the Fox should choose the course = 58 | and fix=20 59 | the goal.  On the day appointed for the race the two started=20 60 | together.  The Tortoise never for a moment stopped, but went on = 61 | with a slow=20 62 | but steady pace straight to the end of the course.  The Hare, lying = 63 | down by=20 64 | the wayside, fell fast asleep.  At last waking up, and moving as = 65 | fast as he=20 66 | could, he saw the Tortoise had reached the goal, and was comfortably = 67 | dozing=20 68 | after her fatigue. 
 
Slow but steady wins the = 69 | race. =20 70 |
71 | 72 | ------=_NextPart_000_0005_01BFC037.799BEF60-- 73 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m0015.txt: -------------------------------------------------------------------------------- 1 | From: "Doug Sauder" 2 | To: "Joe Blow" 3 | Subject: Test message from Microsoft Outlook 00 4 | Date: Wed, 17 May 2000 19:42:10 -0400 5 | Message-ID: 6 | MIME-Version: 1.0 7 | Content-Type: multipart/mixed; 8 | boundary="----=_NextPart_000_0008_01BFC037.FDD8EE90" 9 | X-Priority: 3 (Normal) 10 | X-MSMail-Priority: Normal 11 | X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) 12 | Importance: Normal 13 | X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 14 | 15 | This is a multi-part message in MIME format. 16 | 17 | ------=_NextPart_000_0008_01BFC037.FDD8EE90 18 | Content-Type: multipart/alternative; 19 | boundary="----=_NextPart_001_0009_01BFC037.FDD8EE90" 20 | 21 | 22 | ------=_NextPart_001_0009_01BFC037.FDD8EE90 23 | Content-Type: text/plain; 24 | charset="iso-8859-1" 25 | Content-Transfer-Encoding: quoted-printable 26 | 27 | 28 | The Hare and the Tortoise=20 29 | =20 30 | A HARE one day ridiculed the short feet and slow pace of the Tortoise, = 31 | who replied, laughing: "Though you be swift as the wind, I will beat = 32 | you in a race." The Hare, believing her assertion to be simply = 33 | impossible, assented to the proposal; and they agreed that the Fox = 34 | should choose the course and fix the goal. On the day appointed for the = 35 | race the two started together. The Tortoise never for a moment stopped, = 36 | but went on with a slow but steady pace straight to the end of the = 37 | course. The Hare, lying down by the wayside, fell fast asleep. At last = 38 | waking up, and moving as fast as he could, he saw the Tortoise had = 39 | reached the goal, and was comfortably dozing after her fatigue. =20 40 | =20 41 | Slow but steady wins the race. =20 42 | 43 | 44 | ------=_NextPart_001_0009_01BFC037.FDD8EE90 45 | Content-Type: text/html; 46 | charset="iso-8859-1" 47 | Content-Transfer-Encoding: quoted-printable 48 | 49 | 50 | 51 | 53 | 54 | 55 |

The Hare and the Tortoise = 56 |
 
A HARE=20 57 | one day ridiculed the short feet and slow pace of the Tortoise, who = 58 | replied,=20 59 | laughing:  "Though you be swift as the wind, I will beat you in a=20 60 | race."  The Hare, believing her assertion to be simply impossible, = 61 | assented=20 62 | to the proposal; and they agreed that the Fox should choose the course = 63 | and fix=20 64 | the goal.  On the day appointed for the race the two started=20 65 | together.  The Tortoise never for a moment stopped, but went on = 66 | with a slow=20 67 | but steady pace straight to the end of the course.  The Hare, lying = 68 | down by=20 69 | the wayside, fell fast asleep.  At last waking up, and moving as = 70 | fast as he=20 71 | could, he saw the Tortoise had reached the goal, and was comfortably = 72 | dozing=20 73 | after her fatigue. 
 
Slow but steady wins the = 74 | race. =20 75 |
76 | 77 | ------=_NextPart_001_0009_01BFC037.FDD8EE90-- 78 | 79 | ------=_NextPart_000_0008_01BFC037.FDD8EE90 80 | Content-Type: image/png; 81 | name="greenball.png" 82 | Content-Transfer-Encoding: base64 83 | Content-Disposition: attachment; 84 | filename="greenball.png" 85 | 86 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAAAEAAAGAAAIQAA 87 | CAAAMQAAQgAAUgAAWgAASgAIYwAIcwAIewAQjAAIawAAOQAAYwAQlAAQnAAhpQAQpQAhrQBCvRhj 88 | xjFjxjlSxiEpzgAYvQAQrQAYrQAhvQCU1mOt1nuE1lJK3hgh1gAYxgAYtQAAKQBCzhDO55Te563G 89 | 55SU52NS5yEh3gAYzgBS3iGc52vW75y974yE71JC7xCt73ul3nNa7ykh5wAY1gAx5wBS7yFr7zlK 90 | 7xgp5wAp7wAx7wAIhAAQtQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 91 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 92 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 93 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 94 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 95 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 96 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 97 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 98 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 99 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100 | AAAAAAAAAAAAAAAp1fnZAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAu 101 | MT1evmgAAAFtSURBVHicddJtV8IgFAdwD2zIgMEE1+NcqdsoK+m5tCyz7/+ZiLmHsyzvq53zO/cy 102 | +N9ery1bVe9PWQA9z4MQ+H8Yoj7GASZ95IHfaBGmLOSchyIgyOu22mgQSjUcDuNYcoGjLiLK1cHh 103 | 0fHJaTKKOcMItgYxT89OzsfjyTTLC8UF0c2ZNmKquJhczq6ub+YmSVUYRF59GeDastu7+9nD41Nm 104 | kiJ2jc2J3kAWZ9Pr55fH18XSmRuKUTXUaqHy7O19tfr4NFle/w3YDrWRUIlZrL/W86XJkyJVG9Ea 105 | EjIx2XyZmZJGioeUaL+2AY8TY8omR6nkLKhu70zjUKVJXsp3quS2DVSJWNh3zzJKCyexI0ZxBP3a 106 | fE0ElyqOlZJyw8r3BE2SFiJCyxA434SCkg65RhdeQBljQtCg39LWrA90RDDG1EWrYUO23hMANUKR 107 | Rl61E529cR++D2G5LK002dr/qrcfu9u0V3bxn/XdhR/NYeeN0ggsLAAAACV0RVh0Q29tbWVudABj 108 | bGlwMmdpZiB2LjAuNiBieSBZdmVzIFBpZ3VldDZzO7wAAAAASUVORK5CYII= 109 | 110 | ------=_NextPart_000_0008_01BFC037.FDD8EE90 111 | Content-Type: image/png; 112 | name="redball.png" 113 | Content-Transfer-Encoding: base64 114 | Content-Disposition: attachment; 115 | filename="redball.png" 116 | 117 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAABAAALAAAVAAAa 118 | AAAXAAARAAAKAAADAAAcAAAyAABEAABNAABIAAA9AAAjAAAWAAAmAABhAAB7AACGAACHAAB9AAB0 119 | AABgAAA5AAAUAAAGAAAnAABLAABvAACQAAClAAC7AAC/AACrAAChAACMAABzAABbAAAuAAAIAABM 120 | AAB3AACZAAC0GRnKODjVPT3bKSndBQW4AACoAAB5AAAxAAAYAAAEAABFAACaAAC7JCTRYWHfhITm 121 | f3/mVlbqHx/SAAC5AACjAABdAABCAAAoAAAJAABnAAC6Dw/QVFTek5PlrKzpmZntZWXvJSXXAADB 122 | AACxAACcAABtAABTAAA2AAAbAAAFAABKAACBAADLICDdZ2fonJzrpqbtiorvUVHvFBTRAADDAAC2 123 | AAB4AABeAABAAAAiAABXAACSAADCAADaGxvoVVXseHjveHjvV1fvJibhAADOAAC3AACnAACVAABH 124 | AAArAAAPAACdAADFAADhBQXrKCjvPDzvNTXvGxvjAADQAADJAAC1AACXAACEAABsAABPAAASAAAC 125 | AABiAADpAADvAgLnAADYAADLAAC6AACwAABwAAATAAAkAABYAADIAADTAADNAACzAACDAABuAAAe 126 | AAB+AADAAACkAACNAAB/AABpAABQAAAwAACRAACpAAC8AACqAACbAABlAABJAAAqAAAOAAA0AACs 127 | AACvAACtAACmAACJAAB6AABrAABaAAA+AAApAABqAACCAACfAACeAACWAACPAAB8AAAZAAAHAABV 128 | AACOAACKAAA4AAAQAAA/AAByAACAAABcAAA3AAAsAABmAABDAABWAAAgAAAzAAA8AAA6AAAfAAAM 129 | AAAdAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 130 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 131 | AAAAAAAAAAAAAAD8LtlFAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAu 132 | MT1evmgAAAIISURBVHicY2CAg/8QwIABmJhZWFnZ2Dk4MaU5uLh5eHn5+LkFBDlQJf8zC/EIi4iK 133 | iUtI8koJScsgyf5nlpWTV1BUUlZRVVPX4NFk1UJIyghp6+jq6RsYGhmbKJgK85mZW8Dk/rNaSlhZ 134 | 29ja2Ts4Ojkr6Li4urFDNf53N/Ow8vTy9vH18w8IDAoWDQkNC4+ASP5ni4wKio6JjYtPSExKTnFW 135 | SE1LF4A69n9GZlZ2Tm5efkFhUXFySWlZlEd5RSVY7j+TkGRVdU1tXX1DY1Ozcktpa1t7h2YnOAj+ 136 | d7l1tyo79vT29SdNSJ44SbFVdHIo9xSIHNPUaWqTpifNSJrZnK00S0U1a/acUG5piNz/uXLzVJ2q 137 | m6dXz584S2WB1cJFi5cshZr539xVftnyFKUVTi2TVjqvyhJLXb1m7TqoHPt6F/HW0g0bN63crGqV 138 | tWXrtu07BJihcsw71+zanRW8Z89eq337RQ/Ip60xO3gIElX/LbikDm8T36KwbNmRo7O3zpHkPSZw 139 | HBqL//8flz1x2OOkyKJTi7aqbzutfUZI2gIuF8F2lr/D5dw2+fZdwpl8YVOlI+CJ4/9/joOyYed5 140 | QzMvhGqnm2V0WiClm///D0lfXHtJ6vLlK9w7rx7vQk5SQJbFtSms1y9evXid7QZacgOxmSxktNzd 141 | tSwwU+J/VICaCPFIYU3XAJhIOtjf5sfyAAAAJXRFWHRDb21tZW50AGNsaXAyZ2lmIHYuMC42IGJ5 142 | IFl2ZXMgUGlndWV0NnM7vAAAAABJRU5ErkJggg== 143 | 144 | ------=_NextPart_000_0008_01BFC037.FDD8EE90-- 145 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m0016.txt: -------------------------------------------------------------------------------- 1 | From: "Doug Sauder" 2 | To: "Joe Blow" 3 | Subject: Test message from Microsoft Outlook 00 4 | Date: Wed, 17 May 2000 19:44:45 -0400 5 | Message-ID: 6 | MIME-Version: 1.0 7 | Content-Type: multipart/related; 8 | boundary="----=_NextPart_000_000C_01BFC038.5A5C8E60" 9 | X-Priority: 3 (Normal) 10 | X-MSMail-Priority: Normal 11 | X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) 12 | Importance: Normal 13 | X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 14 | 15 | This is a multi-part message in MIME format. 16 | 17 | ------=_NextPart_000_000C_01BFC038.5A5C8E60 18 | Content-Type: multipart/alternative; 19 | boundary="----=_NextPart_001_000D_01BFC038.5A5C8E60" 20 | 21 | 22 | ------=_NextPart_001_000D_01BFC038.5A5C8E60 23 | Content-Type: text/plain; 24 | charset="iso-8859-1" 25 | Content-Transfer-Encoding: quoted-printable 26 | 27 | 28 | The Hare and the Tortoise=20 29 | =20 30 | A HARE one day ridiculed the short feet and slow pace of the Tortoise, = 31 | who replied, laughing: "Though you be swift as the wind, I will beat = 32 | you in a race." The Hare, believing her assertion to be simply = 33 | impossible, assented to the proposal; and they agreed that the Fox = 34 | should choose the course and fix the goal. On the day appointed for the = 35 | race the two started together. The Tortoise never for a moment stopped, = 36 | but went on with a slow but steady pace straight to the end of the = 37 | course. The Hare, lying down by the wayside, fell fast asleep. At last = 38 | waking up, and moving as fast as he could, he saw the Tortoise had = 39 | reached the goal, and was comfortably dozing after her fatigue. =20 40 | 41 | 42 | =20 43 | Slow but steady wins the race. =20 44 | 45 | 46 | 47 | 48 | ------=_NextPart_001_000D_01BFC038.5A5C8E60 49 | Content-Type: text/html; 50 | charset="iso-8859-1" 51 | Content-Transfer-Encoding: quoted-printable 52 | 53 | 54 | 55 | 57 | 58 | 59 |

The Hare and the Tortoise = 60 |
 
A HARE=20 61 | one day ridiculed the short feet and slow pace of the Tortoise, who = 62 | replied,=20 63 | laughing:  "Though you be swift as the wind, I will beat you in a=20 64 | race."  The Hare, believing her assertion to be simply impossible, = 65 | assented=20 66 | to the proposal; and they agreed that the Fox should choose the course = 67 | and fix=20 68 | the goal.  On the day appointed for the race the two started=20 69 | together.  The Tortoise never for a moment stopped, but went on = 70 | with a slow=20 71 | but steady pace straight to the end of the course.  The Hare, lying = 72 | down by=20 73 | the wayside, fell fast asleep.  At last waking up, and moving as = 74 | fast as he=20 75 | could, he saw the Tortoise had reached the goal, and was comfortably = 76 | dozing=20 77 | after her fatigue.  
78 |
 
79 |
3D"blue
 
Slow but = 82 | steady wins=20 83 | the race. 
84 |
 
85 |
3D"red
89 | 90 | ------=_NextPart_001_000D_01BFC038.5A5C8E60-- 91 | 92 | ------=_NextPart_000_000C_01BFC038.5A5C8E60 93 | Content-Type: image/png; 94 | name="blueball.png" 95 | Content-Transfer-Encoding: base64 96 | Content-ID: <823504223@17052000-0f8d> 97 | 98 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAgAABAAABgAAAAA 99 | CCkAEEIAEEoACDEAEFIIIXMIKXsIKYQIIWsAGFoACDkIIWMQOZwYQqUYQq0YQrUQOaUQMZQAGFIQ 100 | MYwpUrU5Y8Y5Y84pWs4YSs4YQs4YQr1Ca8Z7nNacvd6Mtd5jlOcxa94hUt4YStYYQsYQMaUAACHO 101 | 5+/n7++cxu9ShO8pWucQOa1Ke86tzt6lzu9ajO8QMZxahNat1ufO7++Mve9Ke+8YOaUYSsaMvee1 102 | 5++Uve8AAClajOdzpe9rnO8IKYwxY+8pWu8IIXsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 103 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 104 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 105 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 106 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 107 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 108 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 109 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 110 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 111 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 112 | AAAAAAAAAAAAAADBMg1VAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAu 113 | MT1evmgAAAGISURBVHicddJtV5swGAbgEk6AJhBSk4bMCUynBSLaqovbrG/bfPn/vyh70lbssceb 114 | L5xznTsh5BmNhgQoRChwo50EOIohUYLDj4zHhKYQkrEoQdvock4ne0IKMVUpKZLQDeqSTIsv+18P 115 | yqqWUw2IBsRM7307PPp+fDJrWtnpLDJvewYxnewfnvanZ+fzpmwXijC8KbqEa3Fx2ff91Y95U9XC 116 | UpaDeQwiMpHXP/v+1++bWVPWQoGFawtjury9vru/f/C1Vi7ezT0WWpQHf/7+u/G71aLThK/MjRxm 117 | T6KdzZ9fGk9yatMsTgZLl3XVgFRAC6spj/13enssqJVtWVa3NdBSacL8+VZmYqKmdd1CSYoOiMOS 118 | GwtzlqqlFFIuOqv0a1ZEZrUkWICLLFW266y1KvWE1zV/iDAH1EopnVLCiygZCIomH3NCKX0lnI+B 119 | 1iuuzCGTxwXjnDO4d7NpbX42YJJHkBwmAm2TxwAZg40J3+Xtbv1rgOAZwG0NxW62p+lT+Yi747sD 120 | /wEUVMzYmWkOvwAAACV0RVh0Q29tbWVudABjbGlwMmdpZiB2LjAuNiBieSBZdmVzIFBpZ3VldDZz 121 | O7wAAAAASUVORK5CYII= 122 | 123 | ------=_NextPart_000_000C_01BFC038.5A5C8E60 124 | Content-Type: image/png; 125 | name="redball.png" 126 | Content-Transfer-Encoding: base64 127 | Content-ID: <823504223@17052000-0f94> 128 | 129 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAABAAALAAAVAAAa 130 | AAAXAAARAAAKAAADAAAcAAAyAABEAABNAABIAAA9AAAjAAAWAAAmAABhAAB7AACGAACHAAB9AAB0 131 | AABgAAA5AAAUAAAGAAAnAABLAABvAACQAAClAAC7AAC/AACrAAChAACMAABzAABbAAAuAAAIAABM 132 | AAB3AACZAAC0GRnKODjVPT3bKSndBQW4AACoAAB5AAAxAAAYAAAEAABFAACaAAC7JCTRYWHfhITm 133 | f3/mVlbqHx/SAAC5AACjAABdAABCAAAoAAAJAABnAAC6Dw/QVFTek5PlrKzpmZntZWXvJSXXAADB 134 | AACxAACcAABtAABTAAA2AAAbAAAFAABKAACBAADLICDdZ2fonJzrpqbtiorvUVHvFBTRAADDAAC2 135 | AAB4AABeAABAAAAiAABXAACSAADCAADaGxvoVVXseHjveHjvV1fvJibhAADOAAC3AACnAACVAABH 136 | AAArAAAPAACdAADFAADhBQXrKCjvPDzvNTXvGxvjAADQAADJAAC1AACXAACEAABsAABPAAASAAAC 137 | AABiAADpAADvAgLnAADYAADLAAC6AACwAABwAAATAAAkAABYAADIAADTAADNAACzAACDAABuAAAe 138 | AAB+AADAAACkAACNAAB/AABpAABQAAAwAACRAACpAAC8AACqAACbAABlAABJAAAqAAAOAAA0AACs 139 | AACvAACtAACmAACJAAB6AABrAABaAAA+AAApAABqAACCAACfAACeAACWAACPAAB8AAAZAAAHAABV 140 | AACOAACKAAA4AAAQAAA/AAByAACAAABcAAA3AAAsAABmAABDAABWAAAgAAAzAAA8AAA6AAAfAAAM 141 | AAAdAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 142 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 143 | AAAAAAAAAAAAAAD8LtlFAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAu 144 | MT1evmgAAAIISURBVHicY2CAg/8QwIABmJhZWFnZ2Dk4MaU5uLh5eHn5+LkFBDlQJf8zC/EIi4iK 145 | iUtI8koJScsgyf5nlpWTV1BUUlZRVVPX4NFk1UJIyghp6+jq6RsYGhmbKJgK85mZW8Dk/rNaSlhZ 146 | 29ja2Ts4Ojkr6Li4urFDNf53N/Ow8vTy9vH18w8IDAoWDQkNC4+ASP5ni4wKio6JjYtPSExKTnFW 147 | SE1LF4A69n9GZlZ2Tm5efkFhUXFySWlZlEd5RSVY7j+TkGRVdU1tXX1DY1Ozcktpa1t7h2YnOAj+ 148 | d7l1tyo79vT29SdNSJ44SbFVdHIo9xSIHNPUaWqTpifNSJrZnK00S0U1a/acUG5piNz/uXLzVJ2q 149 | m6dXz584S2WB1cJFi5cshZr539xVftnyFKUVTi2TVjqvyhJLXb1m7TqoHPt6F/HW0g0bN63crGqV 150 | tWXrtu07BJihcsw71+zanRW8Z89eq337RQ/Ip60xO3gIElX/LbikDm8T36KwbNmRo7O3zpHkPSZw 151 | HBqL//8flz1x2OOkyKJTi7aqbzutfUZI2gIuF8F2lr/D5dw2+fZdwpl8YVOlI+CJ4/9/joOyYed5 152 | QzMvhGqnm2V0WiClm///D0lfXHtJ6vLlK9w7rx7vQk5SQJbFtSms1y9evXid7QZacgOxmSxktNzd 153 | tSwwU+J/VICaCPFIYU3XAJhIOtjf5sfyAAAAJXRFWHRDb21tZW50AGNsaXAyZ2lmIHYuMC42IGJ5 154 | IFl2ZXMgUGlndWV0NnM7vAAAAABJRU5ErkJggg== 155 | 156 | ------=_NextPart_000_000C_01BFC038.5A5C8E60-- 157 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m0017.txt: -------------------------------------------------------------------------------- 1 | From: "Doug Sauder" 2 | To: "Joe Blow" 3 | Subject: Test message from Microsoft Outlook 00 4 | Date: Wed, 17 May 2000 19:47:24 -0400 5 | Message-ID: 6 | MIME-Version: 1.0 7 | Content-Type: multipart/mixed; 8 | boundary="----=_NextPart_000_0010_01BFC038.B91BC650" 9 | X-Priority: 3 (Normal) 10 | X-MSMail-Priority: Normal 11 | X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) 12 | Importance: Normal 13 | X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 14 | 15 | This is a multi-part message in MIME format. 16 | 17 | ------=_NextPart_000_0010_01BFC038.B91BC650 18 | Content-Type: multipart/related; 19 | boundary="----=_NextPart_001_0011_01BFC038.B91BC650" 20 | 21 | 22 | ------=_NextPart_001_0011_01BFC038.B91BC650 23 | Content-Type: multipart/alternative; 24 | boundary="----=_NextPart_002_0012_01BFC038.B91BC650" 25 | 26 | 27 | ------=_NextPart_002_0012_01BFC038.B91BC650 28 | Content-Type: text/plain; 29 | charset="iso-8859-1" 30 | Content-Transfer-Encoding: quoted-printable 31 | 32 | 33 | 34 | The Hare and the Tortoise=20 35 | =20 36 | A HARE one day ridiculed the short feet and slow pace of the Tortoise, = 37 | who replied, laughing: "Though you be swift as the wind, I will beat = 38 | you in a race." The Hare, believing her assertion to be simply = 39 | impossible, assented to the proposal; and they agreed that the Fox = 40 | should choose the course and fix the goal. On the day appointed for the = 41 | race the two started together. The Tortoise never for a moment stopped, = 42 | but went on with a slow but steady pace straight to the end of the = 43 | course. The Hare, lying down by the wayside, fell fast asleep. At last = 44 | waking up, and moving as fast as he could, he saw the Tortoise had = 45 | reached the goal, and was comfortably dozing after her fatigue. =20 46 | =20 47 | Slow but steady wins the race. =20 48 | 49 | 50 | 51 | ------=_NextPart_002_0012_01BFC038.B91BC650 52 | Content-Type: text/html; 53 | charset="iso-8859-1" 54 | Content-Transfer-Encoding: quoted-printable 55 | 56 | 57 | 58 | 60 | 61 | 62 |
3D"blue
65 |

The Hare and the Tortoise = 66 |
 
A HARE=20 67 | one day ridiculed the short feet and slow pace of the Tortoise, who = 68 | replied,=20 69 | laughing:  "Though you be swift as the wind, I will beat you in a=20 70 | race."  The Hare, believing her assertion to be simply impossible, = 71 | assented=20 72 | to the proposal; and they agreed that the Fox should choose the course = 73 | and fix=20 74 | the goal.  On the day appointed for the race the two started=20 75 | together.  The Tortoise never for a moment stopped, but went on = 76 | with a slow=20 77 | but steady pace straight to the end of the course.  The Hare, lying = 78 | down by=20 79 | the wayside, fell fast asleep.  At last waking up, and moving as = 80 | fast as he=20 81 | could, he saw the Tortoise had reached the goal, and was comfortably = 82 | dozing=20 83 | after her fatigue. 
 
Slow but steady wins the = 84 | race. =20 85 |
86 |

 
87 | 88 | ------=_NextPart_002_0012_01BFC038.B91BC650-- 89 | 90 | ------=_NextPart_001_0011_01BFC038.B91BC650 91 | Content-Type: image/png; 92 | name="blueball.png" 93 | Content-Transfer-Encoding: base64 94 | Content-ID: <938014623@17052000-0f9b> 95 | 96 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAgAABAAABgAAAAA 97 | CCkAEEIAEEoACDEAEFIIIXMIKXsIKYQIIWsAGFoACDkIIWMQOZwYQqUYQq0YQrUQOaUQMZQAGFIQ 98 | MYwpUrU5Y8Y5Y84pWs4YSs4YQs4YQr1Ca8Z7nNacvd6Mtd5jlOcxa94hUt4YStYYQsYQMaUAACHO 99 | 5+/n7++cxu9ShO8pWucQOa1Ke86tzt6lzu9ajO8QMZxahNat1ufO7++Mve9Ke+8YOaUYSsaMvee1 100 | 5++Uve8AAClajOdzpe9rnO8IKYwxY+8pWu8IIXsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 101 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 102 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 103 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 104 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 105 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 106 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 107 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 108 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 109 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 110 | AAAAAAAAAAAAAADBMg1VAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAu 111 | MT1evmgAAAGISURBVHicddJtV5swGAbgEk6AJhBSk4bMCUynBSLaqovbrG/bfPn/vyh70lbssceb 112 | L5xznTsh5BmNhgQoRChwo50EOIohUYLDj4zHhKYQkrEoQdvock4ne0IKMVUpKZLQDeqSTIsv+18P 113 | yqqWUw2IBsRM7307PPp+fDJrWtnpLDJvewYxnewfnvanZ+fzpmwXijC8KbqEa3Fx2ff91Y95U9XC 114 | UpaDeQwiMpHXP/v+1++bWVPWQoGFawtjury9vru/f/C1Vi7ezT0WWpQHf/7+u/G71aLThK/MjRxm 115 | T6KdzZ9fGk9yatMsTgZLl3XVgFRAC6spj/13enssqJVtWVa3NdBSacL8+VZmYqKmdd1CSYoOiMOS 116 | GwtzlqqlFFIuOqv0a1ZEZrUkWICLLFW266y1KvWE1zV/iDAH1EopnVLCiygZCIomH3NCKX0lnI+B 117 | 1iuuzCGTxwXjnDO4d7NpbX42YJJHkBwmAm2TxwAZg40J3+Xtbv1rgOAZwG0NxW62p+lT+Yi747sD 118 | /wEUVMzYmWkOvwAAACV0RVh0Q29tbWVudABjbGlwMmdpZiB2LjAuNiBieSBZdmVzIFBpZ3VldDZz 119 | O7wAAAAASUVORK5CYII= 120 | 121 | ------=_NextPart_001_0011_01BFC038.B91BC650-- 122 | 123 | ------=_NextPart_000_0010_01BFC038.B91BC650 124 | Content-Type: image/png; 125 | name="greenball.png" 126 | Content-Transfer-Encoding: base64 127 | Content-Disposition: attachment; 128 | filename="greenball.png" 129 | 130 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAAAEAAAGAAAIQAA 131 | CAAAMQAAQgAAUgAAWgAASgAIYwAIcwAIewAQjAAIawAAOQAAYwAQlAAQnAAhpQAQpQAhrQBCvRhj 132 | xjFjxjlSxiEpzgAYvQAQrQAYrQAhvQCU1mOt1nuE1lJK3hgh1gAYxgAYtQAAKQBCzhDO55Te563G 133 | 55SU52NS5yEh3gAYzgBS3iGc52vW75y974yE71JC7xCt73ul3nNa7ykh5wAY1gAx5wBS7yFr7zlK 134 | 7xgp5wAp7wAx7wAIhAAQtQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 135 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 136 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 137 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 138 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 139 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 140 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 141 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 142 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 143 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 144 | AAAAAAAAAAAAAAAp1fnZAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAu 145 | MT1evmgAAAFtSURBVHicddJtV8IgFAdwD2zIgMEE1+NcqdsoK+m5tCyz7/+ZiLmHsyzvq53zO/cy 146 | +N9ery1bVe9PWQA9z4MQ+H8Yoj7GASZ95IHfaBGmLOSchyIgyOu22mgQSjUcDuNYcoGjLiLK1cHh 147 | 0fHJaTKKOcMItgYxT89OzsfjyTTLC8UF0c2ZNmKquJhczq6ub+YmSVUYRF59GeDastu7+9nD41Nm 148 | kiJ2jc2J3kAWZ9Pr55fH18XSmRuKUTXUaqHy7O19tfr4NFle/w3YDrWRUIlZrL/W86XJkyJVG9Ea 149 | EjIx2XyZmZJGioeUaL+2AY8TY8omR6nkLKhu70zjUKVJXsp3quS2DVSJWNh3zzJKCyexI0ZxBP3a 150 | fE0ElyqOlZJyw8r3BE2SFiJCyxA434SCkg65RhdeQBljQtCg39LWrA90RDDG1EWrYUO23hMANUKR 151 | Rl61E529cR++D2G5LK002dr/qrcfu9u0V3bxn/XdhR/NYeeN0ggsLAAAACV0RVh0Q29tbWVudABj 152 | bGlwMmdpZiB2LjAuNiBieSBZdmVzIFBpZ3VldDZzO7wAAAAASUVORK5CYII= 153 | 154 | ------=_NextPart_000_0010_01BFC038.B91BC650 155 | Content-Type: image/png; 156 | name="redball.png" 157 | Content-Transfer-Encoding: base64 158 | Content-Disposition: attachment; 159 | filename="redball.png" 160 | 161 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAABAAALAAAVAAAa 162 | AAAXAAARAAAKAAADAAAcAAAyAABEAABNAABIAAA9AAAjAAAWAAAmAABhAAB7AACGAACHAAB9AAB0 163 | AABgAAA5AAAUAAAGAAAnAABLAABvAACQAAClAAC7AAC/AACrAAChAACMAABzAABbAAAuAAAIAABM 164 | AAB3AACZAAC0GRnKODjVPT3bKSndBQW4AACoAAB5AAAxAAAYAAAEAABFAACaAAC7JCTRYWHfhITm 165 | f3/mVlbqHx/SAAC5AACjAABdAABCAAAoAAAJAABnAAC6Dw/QVFTek5PlrKzpmZntZWXvJSXXAADB 166 | AACxAACcAABtAABTAAA2AAAbAAAFAABKAACBAADLICDdZ2fonJzrpqbtiorvUVHvFBTRAADDAAC2 167 | AAB4AABeAABAAAAiAABXAACSAADCAADaGxvoVVXseHjveHjvV1fvJibhAADOAAC3AACnAACVAABH 168 | AAArAAAPAACdAADFAADhBQXrKCjvPDzvNTXvGxvjAADQAADJAAC1AACXAACEAABsAABPAAASAAAC 169 | AABiAADpAADvAgLnAADYAADLAAC6AACwAABwAAATAAAkAABYAADIAADTAADNAACzAACDAABuAAAe 170 | AAB+AADAAACkAACNAAB/AABpAABQAAAwAACRAACpAAC8AACqAACbAABlAABJAAAqAAAOAAA0AACs 171 | AACvAACtAACmAACJAAB6AABrAABaAAA+AAApAABqAACCAACfAACeAACWAACPAAB8AAAZAAAHAABV 172 | AACOAACKAAA4AAAQAAA/AAByAACAAABcAAA3AAAsAABmAABDAABWAAAgAAAzAAA8AAA6AAAfAAAM 173 | AAAdAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 174 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 175 | AAAAAAAAAAAAAAD8LtlFAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAu 176 | MT1evmgAAAIISURBVHicY2CAg/8QwIABmJhZWFnZ2Dk4MaU5uLh5eHn5+LkFBDlQJf8zC/EIi4iK 177 | iUtI8koJScsgyf5nlpWTV1BUUlZRVVPX4NFk1UJIyghp6+jq6RsYGhmbKJgK85mZW8Dk/rNaSlhZ 178 | 29ja2Ts4Ojkr6Li4urFDNf53N/Ow8vTy9vH18w8IDAoWDQkNC4+ASP5ni4wKio6JjYtPSExKTnFW 179 | SE1LF4A69n9GZlZ2Tm5efkFhUXFySWlZlEd5RSVY7j+TkGRVdU1tXX1DY1Ozcktpa1t7h2YnOAj+ 180 | d7l1tyo79vT29SdNSJ44SbFVdHIo9xSIHNPUaWqTpifNSJrZnK00S0U1a/acUG5piNz/uXLzVJ2q 181 | m6dXz584S2WB1cJFi5cshZr539xVftnyFKUVTi2TVjqvyhJLXb1m7TqoHPt6F/HW0g0bN63crGqV 182 | tWXrtu07BJihcsw71+zanRW8Z89eq337RQ/Ip60xO3gIElX/LbikDm8T36KwbNmRo7O3zpHkPSZw 183 | HBqL//8flz1x2OOkyKJTi7aqbzutfUZI2gIuF8F2lr/D5dw2+fZdwpl8YVOlI+CJ4/9/joOyYed5 184 | QzMvhGqnm2V0WiClm///D0lfXHtJ6vLlK9w7rx7vQk5SQJbFtSms1y9evXid7QZacgOxmSxktNzd 185 | tSwwU+J/VICaCPFIYU3XAJhIOtjf5sfyAAAAJXRFWHRDb21tZW50AGNsaXAyZ2lmIHYuMC42IGJ5 186 | IFl2ZXMgUGlndWV0NnM7vAAAAABJRU5ErkJggg== 187 | 188 | ------=_NextPart_000_0010_01BFC038.B91BC650-- 189 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m0018.txt: -------------------------------------------------------------------------------- 1 | From: "Doug Sauder" 2 | To: "Joe Blow" 3 | Subject: Test message from Microsoft Outlook 00 4 | Date: Wed, 17 May 2000 19:58:13 -0400 5 | Message-ID: 6 | X-Priority: 3 (Normal) 7 | X-MSMail-Priority: Normal 8 | X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) 9 | Importance: Normal 10 | X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 11 | 12 | 13 | The Hare and the Tortoise 14 | 15 | A HARE one day ridiculed the short feet and slow pace of the Tortoise, who 16 | replied, laughing: "Though you be swift as the wind, I will beat you in a 17 | race." The Hare, believing her assertion to be simply impossible, assented 18 | to the proposal; and they agreed that the Fox should choose the course and 19 | fix the goal. On the day appointed for the race the two started together. 20 | The Tortoise never for a moment stopped, but went on with a slow but steady 21 | pace straight to the end of the course. The Hare, lying down by the 22 | wayside, fell fast asleep. At last waking up, and moving as fast as he 23 | could, he saw the Tortoise had reached the goal, and was comfortably dozing 24 | after her fatigue. 25 | 26 | Slow but steady wins the race. 27 | 28 | 29 | begin 666 blueball.png 30 | MB5!.1PT*&@H````-24A$4@```!L````;" ,```"Z"@1G```#`%!,5$7___\` 31 | M``@``! ``!@`````""D`$$(`$$H`"#$`$%(((7,(*7L(*80((6L`&%H`"#D( 32 | M(6,0.9P80J480JT80K40.:40,90`&%(0,8PI4K4Y8\8Y8\XI6LX82LX80LX8 33 | M0KU":\9[G-:\ZMSMZESN]:C.\0,9Q:A-:MUN?.[^^,O>]*>^\8.:482L:, 35 | MO>>UY^^4O>\``"E:C.=SI>]KG.\(*8PQ8^\I6N\((7L````````````````` 36 | M```````````````````````````````````````````````````````````` 37 | M```````````````````````````````````````````````````````````` 38 | M```````````````````````````````````````````````````````````` 39 | M```````````````````````````````````````````````````````````` 40 | M```````````````````````````````````````````````````````````` 41 | M```````````````````````````````````````````````````````````` 42 | M```````````````````````````````````````````````````````````` 43 | M```````````````````````````````````````````````````````````` 44 | M```````````````````````````````````````````````````````````` 45 | M```````````````````````````````````````````````````````````` 46 | M```````````````````````````````````````````````````````````` 47 | M``````````````````````````````````````````````````````````#! 48 | M,@U5`````7123E,`0.;89@```!9T15AT4V]F='=AOF@```&(241!5'B<==)M5YLP& ;@$DZ )A!2DX;,"4RG!2+:JHO;K&_; 50 | M?/G_ORA[TE;LL<>;+YQSG3LAY!F-A@0H1"APHYT$.(HA48+#CXS'A*80DK$H 51 | M0=OHT(*,54I*9+0#>J23(LO^U\/RJJ64PV(!L1,[WT[//I^?#)K6MGI 52 | M+#)O>P8QG>P?GO:G9^?SIFP7BC"\*;J$:W%QV??]U8]Y4]7"4I:#>0PB,I'7 53 | M/_O^U^^;65/60H&%:PMCNKR]OKN_?_"U5B[>S3T66I0'?_[^N_&[U:+3A*_, 54 | MC1QF3Z*=S9]?&D]R:M,L3@9+EW75@%1 "ZLIC_UW>GLLJ)5M65:W-=!2:<+\ 55 | M^59F8J*F==U"28H.B,.2&PMSEJJE%%(N.JOT:U9$9K4D6("++%6VZZRU*O6$ 56 | MUS5_B# 'U$HIG5+"BR@9"(HF'W-"*7TEG(^!UBNNS"&3QP7CG#.X=[-I;7XV 57 | M8))'D!PF`FV3QP`9@XT)W^7M;OUK@. 9P&T-Q6ZVI^E3^8B[X[L#_P$45,S8 58 | MF6D.OP```"5T15AT0V]M;65N= !C;&EP,F=I9B!V+C N-B!B>2!9=F5S(%!I 59 | 49W5E=#9S.[P`````245.1*Y"8((` 60 | ` 61 | end 62 | 63 | begin 666 greenball.png 64 | MB5!.1PT*&@H````-24A$4@```!L````;" ,```"Z"@1G```#`%!,5$7___\` 65 | M````$ ``& ``(0``" ``,0``0@``4@``6@``2@`(8P`(P`0C `(:P`` 66 | M.0``8P`0E `0G `AI0`0I0`AK0!"O1ACQC%CQCE2QB$IS@`8O0`0K0`8K0`A 67 | MO0"4UF.MUGN$UE)*WA@AU@`8Q@`8M0``*0!"SA#.YY3>YZW&YY24YV-2YR$A 68 | MW@`8S@!2WB&KRU;5>]/60`]SX,0^'\8HC[&`29]Y('?:!&F+.2< 85 | MAR(@R.NVVF@02C4<#N-8#:LMN[^]G#XU-FDB)VC_PW8#K614(E9K+_6\Z7)DR)5 88 | M&]$:$C(QV7R9F9)&BH>4:+^V`8\38\HF1ZGD+*AN[TSC4*5)7LIWJN2V#52) 89 | M6-AWSS)*"R>Q(T9Q!/W:?$T$ERJ.E9)RP\KW!$V2%B)"RQ XWX2"D@ZY1A=> 90 | M0!EC0M"@W]+6K ]T1##&U$6K84.VWA,`-4*11EZU$YV]<1^^#V&Y+*TTV=K_ 91 | MJK>-T@@L+ ```"5T15AT0V]M;65N= !C;&EP,F=I 92 | F9B!V+C N-B!B>2!9=F5S(%!I9W5E=#9S.[P`````245.1*Y"8((` 93 | ` 94 | end 95 | 96 | begin 666 redball.png 97 | MB5!.1PT*&@H````-24A$4@```!L````;" ,```"Z"@1G```#`%!,5$7___\` 98 | M```!```+```5```:```7```1```*```#```<```R``!$``!-``!(```]```C 99 | M```6```F``!A``![``"&``"'``!]``!T``!@```Y```4```&```G``!+``!O 100 | M``"0``"E``"[``"_``"K``"A``",``!S``!;```N```(``!,``!W``"9``"T 101 | M&1G*.#C5/3W;*2G=!06X``"H``!Y```Q```8```$``!%``":``"[)"3186'? 102 | MA(3F?W_F5E;J'Q_2``"Y``"C``!=``!"```H```)``!G``"Z#P_05%3>DY/E 103 | MK*SIF9GM967O)277``#!``"Q``"<``!M``!3```V```;```%``!*``"!``#+ 104 | M("#=9V?HG)SKIJ;MBHKO45'O%!31``##``"V``!X``!>``! ```B``!7``"2 105 | M``#"``#:&QOH557L>'CO>'CO5U?O)B;A``#.``"W``"G``"5``!'```K```/ 106 | M``"=``#%``#A!07K*"CO/#SO-37O&QOC``#0``#)``"U``"7``"$``!L``!/ 107 | M```2```"``!B``#I``#O`@+G``#8``#+``"Z``"P``!P```3```D``!8``#( 108 | M``#3``#-``"S``"#``!N```>``!^``# ``"D``"-``!_``!I``!0```P``"1 109 | M``"I``"\``"J``";``!E``!)```J```.```T``"L``"O``"M``"F``")``!Z 110 | M``!K``!:```^```I``!J``""``"?``">``"6``"/``!\```9```'``!5``". 111 | M``"*```X```0```_``!R``" ``!<```W```L``!F``!#``!6```@```S```\ 112 | M```Z```?```,```=```-```````````````````````````````````````` 113 | M```````````````````````````````````````````````````````````` 114 | M``````````````````````````````````````````````````````````#\ 115 | M+ME%`````7123E,`0.;89@```!9T15AT4V]F='=AOF@```((241!5'B<8V" @_\0P( !F)A96%G9V#DX,:4YN+AY>'GY^+D% 117 | M!#E0)?\S"_$(BXB*B4M(\DH)2?D%A47%R26E9E$=Y1258[C^3D&15=4UM77U#8U.SJWW[10_(IZTQ.W@($E7_+;BD#F\3WZ*P;-F1H[.WSI'D/29P'!J+__\? 125 | MESUQV..DR*)3B[:J;SNM?49(V@(N%\%VEK_#Y=PV^?9=PIE\85.E(^")X_]_ 126 | MCH.R8>=Y0S,OA&JGFV5T6B"EF___#TE?7'M)ZO+E*]P[KQ[O0DY20);%M2FL 127 | MUR]>O7B=[09:<@.QF2QDM-S=M2PP4^)_5(":"/%(84W7`)A(.MC?YL?R```` 128 | M)71%6'1#;VUM96YT`&-L:7 R9VEF('8N,"XV(&)Y(%EV97,@4&EG=65T-G,[ 129 | -O ````!)14Y$KD)@@@`` 130 | ` 131 | end 132 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m1001.txt: -------------------------------------------------------------------------------- 1 | Message-ID: <3923561C.B7078DEF@example.com> 2 | Date: Wed, 17 May 2000 22:31:57 -0400 3 | From: Doug Sauder 4 | X-Mailer: Mozilla 4.7 [en] (WinNT; I) 5 | X-Accept-Language: en 6 | MIME-Version: 1.0 7 | To: =?iso-8859-1?Q?J=FCrgen=20Schm=FCrgen?= 8 | Subject: Die Hasen und die =?iso-8859-1?Q?Fr=F6sche?= (Netscape Communicator 4.7) 9 | Content-Type: text/plain; charset=iso-8859-1 10 | Content-Transfer-Encoding: quoted-printable 11 | 12 | Die Hasen und die Fr=F6sche 13 | 14 | Die Hasen klagten einst =FCber ihre mi=DFliche Lage; "wir leben", sprach = 15 | ein 16 | Redner, "in steter Furcht vor Menschen und Tieren, eine Beute der Hunde, 17 | der Adler, ja fast aller Raubtiere! Unsere stete Angst ist =E4rger als de= 18 | r 19 | Tod selbst. Auf, la=DFt uns ein f=FCr allemal sterben." 20 | 21 | In einem nahen Teich wollten sie sich nun ers=E4ufen; sie eilten ihm zu; 22 | allein das au=DFerordentliche Get=F6se und ihre wunderbare Gestalt 23 | erschreckte eine Menge Fr=F6sche, die am Ufer sa=DFen, so sehr, da=DF sie= 24 | aufs 25 | schnellste untertauchten. 26 | 27 | "Halt", rief nun eben dieser Sprecher, "wir wollen das Ers=E4ufen noch ei= 28 | n 29 | wenig aufschieben, denn auch uns f=FCrchten, wie ihr seht, einige Tiere, 30 | welche also wohl noch ungl=FCcklicher sein m=FCssen als wir." 31 | 32 | 33 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m1002.txt: -------------------------------------------------------------------------------- 1 | Message-ID: <392359CF.DFF4527@example.com> 2 | Date: Wed, 17 May 2000 22:47:43 -0400 3 | From: Doug Sauder 4 | X-Mailer: Mozilla 4.7 [en] (WinNT; I) 5 | X-Accept-Language: en 6 | MIME-Version: 1.0 7 | To: Heinz =?iso-8859-1?Q?M=FCller?= 8 | Subject: Die Hasen und die =?iso-8859-1?Q?Fr=F6sche?= (Netscape Communicator 4.7) 9 | Content-Type: multipart/alternative; 10 | boundary="------------9D454F23DA86BCD63FA3805F" 11 | 12 | 13 | --------------9D454F23DA86BCD63FA3805F 14 | Content-Type: text/plain; charset=iso-8859-1 15 | Content-Transfer-Encoding: quoted-printable 16 | 17 | Die Hasen und die Fr=F6sche 18 | 19 | Die Hasen klagten einst =FCber ihre mi=DFliche Lage; "wir leben", sprach = 20 | ein 21 | Redner, "in steter Furcht vor Menschen und Tieren, eine Beute der Hunde, 22 | der Adler, ja fast aller Raubtiere! Unsere stete Angst ist =E4rger als de= 23 | r 24 | Tod selbst. Auf, la=DFt uns ein f=FCr allemal sterben." 25 | 26 | In einem nahen Teich wollten sie sich nun ers=E4ufen; sie eilten ihm zu; 27 | allein das au=DFerordentliche Get=F6se und ihre wunderbare Gestalt 28 | erschreckte eine Menge Fr=F6sche, die am Ufer sa=DFen, so sehr, da=DF sie= 29 | aufs 30 | schnellste untertauchten. 31 | 32 | "Halt", rief nun eben dieser Sprecher, "wir wollen das Ers=E4ufen noch ei= 33 | n 34 | wenig aufschieben, denn auch uns f=FCrchten, wie ihr seht, einige Tiere, 35 | welche also wohl noch ungl=FCcklicher sein m=FCssen als wir." 36 | 37 | 38 | 39 | --------------9D454F23DA86BCD63FA3805F 40 | Content-Type: text/html; charset=us-ascii 41 | Content-Transfer-Encoding: 7bit 42 | 43 | 44 | 45 | Die Hasen und die Frösche 46 |

Die Hasen klagten einst über ihre mißliche Lage; "wir leben", 47 | sprach ein Redner, "in steter Furcht vor Menschen und Tieren, eine Beute 48 | der Hunde, der Adler, ja fast aller Raubtiere! Unsere stete Angst ist ärger 49 | als der Tod selbst. Auf, laßt uns ein für allemal sterben." 50 |

In einem nahen Teich wollten sie sich nun ersäufen; sie eilten 51 | ihm zu; allein das außerordentliche Getöse und ihre wunderbare 52 | Gestalt erschreckte eine Menge Frösche, die am Ufer saßen, so 53 | sehr, daß sie aufs schnellste untertauchten. 54 |

"Halt", rief nun eben dieser Sprecher, "wir wollen das Ersäufen 55 | noch ein wenig aufschieben, denn auch uns fürchten, wie ihr seht, 56 | einige Tiere, welche also wohl noch unglücklicher sein müssen 57 | als wir." 58 |
  59 |
  60 | 61 | --------------9D454F23DA86BCD63FA3805F-- 62 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m1003.txt: -------------------------------------------------------------------------------- 1 | Message-ID: <39235E1C.1DC7EA90@example.com> 2 | Date: Wed, 17 May 2000 23:06:04 -0400 3 | From: Doug Sauder 4 | X-Mailer: Mozilla 4.7 [en] (WinNT; I) 5 | X-Accept-Language: en 6 | MIME-Version: 1.0 7 | To: Joe Blow 8 | Subject: Test message from Netscape Communicator 4.7 9 | Content-Type: multipart/mixed; 10 | boundary="------------A1FCDEE154E03D875E5D6779" 11 | 12 | This is a multi-part message in MIME format. 13 | --------------A1FCDEE154E03D875E5D6779 14 | Content-Type: text/plain; charset=iso-8859-1 15 | Content-Transfer-Encoding: quoted-printable 16 | 17 | Die Hasen und die Fr=F6sche 18 | 19 | Die Hasen klagten einst =FCber ihre mi=DFliche Lage; "wir leben", sprach = 20 | ein 21 | Redner, "in steter Furcht vor Menschen und Tieren, eine Beute der Hunde, 22 | der Adler, ja fast aller Raubtiere! Unsere stete Angst ist =E4rger als de= 23 | r 24 | Tod selbst. Auf, la=DFt uns ein f=FCr allemal sterben." 25 | 26 | In einem nahen Teich wollten sie sich nun ers=E4ufen; sie eilten ihm zu; 27 | allein das au=DFerordentliche Get=F6se und ihre wunderbare Gestalt 28 | erschreckte eine Menge Fr=F6sche, die am Ufer sa=DFen, so sehr, da=DF sie= 29 | aufs 30 | schnellste untertauchten. 31 | 32 | "Halt", rief nun eben dieser Sprecher, "wir wollen das Ers=E4ufen noch ei= 33 | n 34 | wenig aufschieben, denn auch uns f=FCrchten, wie ihr seht, einige Tiere, 35 | welche also wohl noch ungl=FCcklicher sein m=FCssen als wir." 36 | 37 | 38 | 39 | --------------A1FCDEE154E03D875E5D6779 40 | Content-Type: image/png; 41 | name="redball.png" 42 | Content-Transfer-Encoding: base64 43 | Content-Disposition: inline; 44 | filename="redball.png" 45 | 46 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAABAAALAAAV 47 | AAAaAAAXAAARAAAKAAADAAAcAAAyAABEAABNAABIAAA9AAAjAAAWAAAmAABhAAB7AACGAACH 48 | AAB9AAB0AABgAAA5AAAUAAAGAAAnAABLAABvAACQAAClAAC7AAC/AACrAAChAACMAABzAABb 49 | AAAuAAAIAABMAAB3AACZAAC0GRnKODjVPT3bKSndBQW4AACoAAB5AAAxAAAYAAAEAABFAACa 50 | AAC7JCTRYWHfhITmf3/mVlbqHx/SAAC5AACjAABdAABCAAAoAAAJAABnAAC6Dw/QVFTek5Pl 51 | rKzpmZntZWXvJSXXAADBAACxAACcAABtAABTAAA2AAAbAAAFAABKAACBAADLICDdZ2fonJzr 52 | pqbtiorvUVHvFBTRAADDAAC2AAB4AABeAABAAAAiAABXAACSAADCAADaGxvoVVXseHjveHjv 53 | V1fvJibhAADOAAC3AACnAACVAABHAAArAAAPAACdAADFAADhBQXrKCjvPDzvNTXvGxvjAADQ 54 | AADJAAC1AACXAACEAABsAABPAAASAAACAABiAADpAADvAgLnAADYAADLAAC6AACwAABwAAAT 55 | AAAkAABYAADIAADTAADNAACzAACDAABuAAAeAAB+AADAAACkAACNAAB/AABpAABQAAAwAACR 56 | AACpAAC8AACqAACbAABlAABJAAAqAAAOAAA0AACsAACvAACtAACmAACJAAB6AABrAABaAAA+ 57 | AAApAABqAACCAACfAACeAACWAACPAAB8AAAZAAAHAABVAACOAACKAAA4AAAQAAA/AAByAACA 58 | AABcAAA3AAAsAABmAABDAABWAAAgAAAzAAA8AAA6AAAfAAAMAAAdAAANAAAAAAAAAAAAAAAA 59 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 60 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8 61 | LtlFAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAuMT1evmgAAAII 62 | SURBVHicY2CAg/8QwIABmJhZWFnZ2Dk4MaU5uLh5eHn5+LkFBDlQJf8zC/EIi4iKiUtI8koJ 63 | Scsgyf5nlpWTV1BUUlZRVVPX4NFk1UJIyghp6+jq6RsYGhmbKJgK85mZW8Dk/rNaSlhZ29ja 64 | 2Ts4Ojkr6Li4urFDNf53N/Ow8vTy9vH18w8IDAoWDQkNC4+ASP5ni4wKio6JjYtPSExKTnFW 65 | SE1LF4A69n9GZlZ2Tm5efkFhUXFySWlZlEd5RSVY7j+TkGRVdU1tXX1DY1Ozcktpa1t7h2Yn 66 | OAj+d7l1tyo79vT29SdNSJ44SbFVdHIo9xSIHNPUaWqTpifNSJrZnK00S0U1a/acUG5piNz/ 67 | uXLzVJ2qm6dXz584S2WB1cJFi5cshZr539xVftnyFKUVTi2TVjqvyhJLXb1m7TqoHPt6F/HW 68 | 0g0bN63crGqVtWXrtu07BJihcsw71+zanRW8Z89eq337RQ/Ip60xO3gIElX/LbikDm8T36Kw 69 | bNmRo7O3zpHkPSZwHBqL//8flz1x2OOkyKJTi7aqbzutfUZI2gIuF8F2lr/D5dw2+fZdwpl8 70 | YVOlI+CJ4/9/joOyYed5QzMvhGqnm2V0WiClm///D0lfXHtJ6vLlK9w7rx7vQk5SQJbFtSms 71 | 1y9evXid7QZacgOxmSxktNzdtSwwU+J/VICaCPFIYU3XAJhIOtjf5sfyAAAAJXRFWHRDb21t 72 | ZW50AGNsaXAyZ2lmIHYuMC42IGJ5IFl2ZXMgUGlndWV0NnM7vAAAAABJRU5ErkJggg== 73 | --------------A1FCDEE154E03D875E5D6779 74 | Content-Type: image/png; 75 | name="greenball.png" 76 | Content-Transfer-Encoding: base64 77 | Content-Disposition: inline; 78 | filename="greenball.png" 79 | 80 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAAAEAAAGAAA 81 | IQAACAAAMQAAQgAAUgAAWgAASgAIYwAIcwAIewAQjAAIawAAOQAAYwAQlAAQnAAhpQAQpQAh 82 | rQBCvRhjxjFjxjlSxiEpzgAYvQAQrQAYrQAhvQCU1mOt1nuE1lJK3hgh1gAYxgAYtQAAKQBC 83 | zhDO55Te563G55SU52NS5yEh3gAYzgBS3iGc52vW75y974yE71JC7xCt73ul3nNa7ykh5wAY 84 | 1gAx5wBS7yFr7zlK7xgp5wAp7wAx7wAIhAAQtQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 85 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 86 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 87 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 88 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 89 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 90 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 91 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 92 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 93 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 94 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAp 95 | 1fnZAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAuMT1evmgAAAFt 96 | SURBVHicddJtV8IgFAdwD2zIgMEE1+NcqdsoK+m5tCyz7/+ZiLmHsyzvq53zO/cy+N9ery1b 97 | Ve9PWQA9z4MQ+H8Yoj7GASZ95IHfaBGmLOSchyIgyOu22mgQSjUcDuNYcoGjLiLK1cHh0fHJ 98 | aTKKOcMItgYxT89OzsfjyTTLC8UF0c2ZNmKquJhczq6ub+YmSVUYRF59GeDastu7+9nD41Nm 99 | kiJ2jc2J3kAWZ9Pr55fH18XSmRuKUTXUaqHy7O19tfr4NFle/w3YDrWRUIlZrL/W86XJkyJV 100 | G9EaEjIx2XyZmZJGioeUaL+2AY8TY8omR6nkLKhu70zjUKVJXsp3quS2DVSJWNh3zzJKCyex 101 | I0ZxBP3afE0ElyqOlZJyw8r3BE2SFiJCyxA434SCkg65RhdeQBljQtCg39LWrA90RDDG1EWr 102 | YUO23hMANUKRRl61E529cR++D2G5LK002dr/qrcfu9u0V3bxn/XdhR/NYeeN0ggsLAAAACV0 103 | RVh0Q29tbWVudABjbGlwMmdpZiB2LjAuNiBieSBZdmVzIFBpZ3VldDZzO7wAAAAASUVORK5C 104 | YII= 105 | --------------A1FCDEE154E03D875E5D6779 106 | Content-Type: image/png; 107 | name="blueball.png" 108 | Content-Transfer-Encoding: base64 109 | Content-Disposition: inline; 110 | filename="blueball.png" 111 | 112 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAgAABAAABgA 113 | AAAACCkAEEIAEEoACDEAEFIIIXMIKXsIKYQIIWsAGFoACDkIIWMQOZwYQqUYQq0YQrUQOaUQ 114 | MZQAGFIQMYwpUrU5Y8Y5Y84pWs4YSs4YQs4YQr1Ca8Z7nNacvd6Mtd5jlOcxa94hUt4YStYY 115 | QsYQMaUAACHO5+/n7++cxu9ShO8pWucQOa1Ke86tzt6lzu9ajO8QMZxahNat1ufO7++Mve9K 116 | e+8YOaUYSsaMvee15++Uve8AAClajOdzpe9rnO8IKYwxY+8pWu8IIXsAAAAAAAAAAAAAAAAA 117 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 118 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 119 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 120 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 121 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 122 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 123 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 124 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 125 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 126 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADB 127 | Mg1VAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAuMT1evmgAAAGI 128 | SURBVHicddJtV5swGAbgEk6AJhBSk4bMCUynBSLaqovbrG/bfPn/vyh70lbsscebL5xznTsh 129 | 5BmNhgQoRChwo50EOIohUYLDj4zHhKYQkrEoQdvock4ne0IKMVUpKZLQDeqSTIsv+18PyqqW 130 | Uw2IBsRM7307PPp+fDJrWtnpLDJvewYxnewfnvanZ+fzpmwXijC8KbqEa3Fx2ff91Y95U9XC 131 | UpaDeQwiMpHXP/v+1++bWVPWQoGFawtjury9vru/f/C1Vi7ezT0WWpQHf/7+u/G71aLThK/M 132 | jRxmT6KdzZ9fGk9yatMsTgZLl3XVgFRAC6spj/13enssqJVtWVa3NdBSacL8+VZmYqKmdd1C 133 | SYoOiMOSGwtzlqqlFFIuOqv0a1ZEZrUkWICLLFW266y1KvWE1zV/iDAH1EopnVLCiygZCIom 134 | H3NCKX0lnI+B1iuuzCGTxwXjnDO4d7NpbX42YJJHkBwmAm2TxwAZg40J3+Xtbv1rgOAZwG0N 135 | xW62p+lT+Yi747sD/wEUVMzYmWkOvwAAACV0RVh0Q29tbWVudABjbGlwMmdpZiB2LjAuNiBi 136 | eSBZdmVzIFBpZ3VldDZzO7wAAAAASUVORK5CYII= 137 | --------------A1FCDEE154E03D875E5D6779-- 138 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m1004.txt: -------------------------------------------------------------------------------- 1 | Message-ID: <39235EAD.E48E2160@example.com> 2 | Date: Wed, 17 May 2000 23:08:29 -0400 3 | From: Doug Sauder 4 | X-Mailer: Mozilla 4.7 [en] (WinNT; I) 5 | X-Accept-Language: en 6 | MIME-Version: 1.0 7 | To: Joe Blow 8 | Subject: Test message from Netscape Communicator 4.7 9 | Content-Type: multipart/mixed; 10 | boundary="------------C78F594988075E36AE03C243" 11 | 12 | This is a multi-part message in MIME format. 13 | --------------C78F594988075E36AE03C243 14 | Content-Type: multipart/alternative; 15 | boundary="------------D74AE2393FB01D1B284AE257" 16 | 17 | 18 | --------------D74AE2393FB01D1B284AE257 19 | Content-Type: text/plain; charset=iso-8859-1 20 | Content-Transfer-Encoding: quoted-printable 21 | 22 | Die Hasen und die Fr=F6sche 23 | 24 | Die Hasen klagten einst =FCber ihre mi=DFliche Lage; "wir leben", sprach = 25 | ein 26 | Redner, "in steter Furcht vor Menschen und Tieren, eine Beute der Hunde, 27 | der Adler, ja fast aller Raubtiere! Unsere stete Angst ist =E4rger als de= 28 | r 29 | Tod selbst. Auf, la=DFt uns ein f=FCr allemal sterben." 30 | 31 | In einem nahen Teich wollten sie sich nun ers=E4ufen; sie eilten ihm zu; 32 | allein das au=DFerordentliche Get=F6se und ihre wunderbare Gestalt 33 | erschreckte eine Menge Fr=F6sche, die am Ufer sa=DFen, so sehr, da=DF sie= 34 | aufs 35 | schnellste untertauchten. 36 | 37 | "Halt", rief nun eben dieser Sprecher, "wir wollen das Ers=E4ufen noch ei= 38 | n 39 | wenig aufschieben, denn auch uns f=FCrchten, wie ihr seht, einige Tiere, 40 | welche also wohl noch ungl=FCcklicher sein m=FCssen als wir." 41 | 42 | 43 | 44 | --------------D74AE2393FB01D1B284AE257 45 | Content-Type: text/html; charset=us-ascii 46 | Content-Transfer-Encoding: 7bit 47 | 48 | 49 | 50 | Die Hasen und die Frösche 51 |

Die Hasen klagten einst über ihre mißliche Lage; "wir leben", 52 | sprach ein Redner, "in steter Furcht vor Menschen und Tieren, eine Beute 53 | der Hunde, der Adler, ja fast aller Raubtiere! Unsere stete Angst ist ärger 54 | als der Tod selbst. Auf, laßt uns ein für allemal sterben." 55 |

In einem nahen Teich wollten sie sich nun ersäufen; sie eilten 56 | ihm zu; allein das außerordentliche Getöse und ihre wunderbare 57 | Gestalt erschreckte eine Menge Frösche, die am Ufer saßen, so 58 | sehr, daß sie aufs schnellste untertauchten. 59 |

"Halt", rief nun eben dieser Sprecher, "wir wollen das Ersäufen 60 | noch ein wenig aufschieben, denn auch uns fürchten, wie ihr seht, 61 | einige Tiere, welche also wohl noch unglücklicher sein müssen 62 | als wir." 63 |
  64 |
  65 | 66 | --------------D74AE2393FB01D1B284AE257-- 67 | 68 | --------------C78F594988075E36AE03C243 69 | Content-Type: image/png; 70 | name="greenball.png" 71 | Content-Transfer-Encoding: base64 72 | Content-Disposition: inline; 73 | filename="greenball.png" 74 | 75 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAAAEAAAGAAA 76 | IQAACAAAMQAAQgAAUgAAWgAASgAIYwAIcwAIewAQjAAIawAAOQAAYwAQlAAQnAAhpQAQpQAh 77 | rQBCvRhjxjFjxjlSxiEpzgAYvQAQrQAYrQAhvQCU1mOt1nuE1lJK3hgh1gAYxgAYtQAAKQBC 78 | zhDO55Te563G55SU52NS5yEh3gAYzgBS3iGc52vW75y974yE71JC7xCt73ul3nNa7ykh5wAY 79 | 1gAx5wBS7yFr7zlK7xgp5wAp7wAx7wAIhAAQtQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 80 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 81 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 82 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 83 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 84 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 85 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 86 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 87 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 88 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 89 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAp 90 | 1fnZAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAuMT1evmgAAAFt 91 | SURBVHicddJtV8IgFAdwD2zIgMEE1+NcqdsoK+m5tCyz7/+ZiLmHsyzvq53zO/cy+N9ery1b 92 | Ve9PWQA9z4MQ+H8Yoj7GASZ95IHfaBGmLOSchyIgyOu22mgQSjUcDuNYcoGjLiLK1cHh0fHJ 93 | aTKKOcMItgYxT89OzsfjyTTLC8UF0c2ZNmKquJhczq6ub+YmSVUYRF59GeDastu7+9nD41Nm 94 | kiJ2jc2J3kAWZ9Pr55fH18XSmRuKUTXUaqHy7O19tfr4NFle/w3YDrWRUIlZrL/W86XJkyJV 95 | G9EaEjIx2XyZmZJGioeUaL+2AY8TY8omR6nkLKhu70zjUKVJXsp3quS2DVSJWNh3zzJKCyex 96 | I0ZxBP3afE0ElyqOlZJyw8r3BE2SFiJCyxA434SCkg65RhdeQBljQtCg39LWrA90RDDG1EWr 97 | YUO23hMANUKRRl61E529cR++D2G5LK002dr/qrcfu9u0V3bxn/XdhR/NYeeN0ggsLAAAACV0 98 | RVh0Q29tbWVudABjbGlwMmdpZiB2LjAuNiBieSBZdmVzIFBpZ3VldDZzO7wAAAAASUVORK5C 99 | YII= 100 | --------------C78F594988075E36AE03C243 101 | Content-Type: image/png; 102 | name="blueball.png" 103 | Content-Transfer-Encoding: base64 104 | Content-Disposition: inline; 105 | filename="blueball.png" 106 | 107 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAgAABAAABgA 108 | AAAACCkAEEIAEEoACDEAEFIIIXMIKXsIKYQIIWsAGFoACDkIIWMQOZwYQqUYQq0YQrUQOaUQ 109 | MZQAGFIQMYwpUrU5Y8Y5Y84pWs4YSs4YQs4YQr1Ca8Z7nNacvd6Mtd5jlOcxa94hUt4YStYY 110 | QsYQMaUAACHO5+/n7++cxu9ShO8pWucQOa1Ke86tzt6lzu9ajO8QMZxahNat1ufO7++Mve9K 111 | e+8YOaUYSsaMvee15++Uve8AAClajOdzpe9rnO8IKYwxY+8pWu8IIXsAAAAAAAAAAAAAAAAA 112 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 113 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 114 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 115 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 116 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 117 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 118 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 119 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 120 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 121 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADB 122 | Mg1VAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAuMT1evmgAAAGI 123 | SURBVHicddJtV5swGAbgEk6AJhBSk4bMCUynBSLaqovbrG/bfPn/vyh70lbsscebL5xznTsh 124 | 5BmNhgQoRChwo50EOIohUYLDj4zHhKYQkrEoQdvock4ne0IKMVUpKZLQDeqSTIsv+18PyqqW 125 | Uw2IBsRM7307PPp+fDJrWtnpLDJvewYxnewfnvanZ+fzpmwXijC8KbqEa3Fx2ff91Y95U9XC 126 | UpaDeQwiMpHXP/v+1++bWVPWQoGFawtjury9vru/f/C1Vi7ezT0WWpQHf/7+u/G71aLThK/M 127 | jRxmT6KdzZ9fGk9yatMsTgZLl3XVgFRAC6spj/13enssqJVtWVa3NdBSacL8+VZmYqKmdd1C 128 | SYoOiMOSGwtzlqqlFFIuOqv0a1ZEZrUkWICLLFW266y1KvWE1zV/iDAH1EopnVLCiygZCIom 129 | H3NCKX0lnI+B1iuuzCGTxwXjnDO4d7NpbX42YJJHkBwmAm2TxwAZg40J3+Xtbv1rgOAZwG0N 130 | xW62p+lT+Yi747sD/wEUVMzYmWkOvwAAACV0RVh0Q29tbWVudABjbGlwMmdpZiB2LjAuNiBi 131 | eSBZdmVzIFBpZ3VldDZzO7wAAAAASUVORK5CYII= 132 | --------------C78F594988075E36AE03C243-- 133 | 134 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m1005.txt: -------------------------------------------------------------------------------- 1 | Message-ID: <39235FC5.276CCE00@example.com> 2 | Date: Wed, 17 May 2000 23:13:09 -0400 3 | From: Doug Sauder 4 | X-Mailer: Mozilla 4.7 [en] (WinNT; I) 5 | X-Accept-Language: en 6 | MIME-Version: 1.0 7 | To: Heinz =?iso-8859-1?Q?M=FCller?= 8 | Subject: Die Hasen und die =?iso-8859-1?Q?Fr=F6sche?= (Netscape Messenger 4.7) 9 | Content-Type: multipart/mixed; 10 | boundary="------------A1E83A41894D3755390B838A" 11 | 12 | This is a multi-part message in MIME format. 13 | --------------A1E83A41894D3755390B838A 14 | Content-Type: multipart/alternative; 15 | boundary="------------F03F94BA73D3B9E8C1B94D92" 16 | 17 | 18 | --------------F03F94BA73D3B9E8C1B94D92 19 | Content-Type: text/plain; charset=iso-8859-1 20 | Content-Transfer-Encoding: quoted-printable 21 | 22 | [blue ball] 23 | 24 | Die Hasen und die Fr=F6sche 25 | 26 | Die Hasen klagten einst =FCber ihre mi=DFliche Lage; "wir leben", sprach = 27 | ein 28 | Redner, "in steter Furcht vor Menschen und Tieren, eine Beute der Hunde, 29 | der Adler, ja fast aller Raubtiere! Unsere stete Angst ist =E4rger als de= 30 | r 31 | Tod selbst. Auf, la=DFt uns ein f=FCr allemal sterben." 32 | 33 | In einem nahen Teich wollten sie sich nun ers=E4ufen; sie eilten ihm zu; 34 | allein das au=DFerordentliche Get=F6se und ihre wunderbare Gestalt 35 | erschreckte eine Menge Fr=F6sche, die am Ufer sa=DFen, so sehr, da=DF sie= 36 | aufs 37 | schnellste untertauchten. 38 | 39 | "Halt", rief nun eben dieser Sprecher, "wir wollen das Ers=E4ufen noch ei= 40 | n 41 | wenig aufschieben, denn auch uns f=FCrchten, wie ihr seht, einige Tiere, 42 | welche also wohl noch ungl=FCcklicher sein m=FCssen als wir." 43 | 44 | [Image] 45 | 46 | 47 | 48 | --------------F03F94BA73D3B9E8C1B94D92 49 | Content-Type: multipart/related; 50 | boundary="------------C02FA3D0A04E95F295FB25EB" 51 | 52 | 53 | --------------C02FA3D0A04E95F295FB25EB 54 | Content-Type: text/html; charset=us-ascii 55 | Content-Transfer-Encoding: 7bit 56 | 57 | 58 | 59 | blue ball 60 |

Die Hasen und die Frösche 61 |

Die Hasen klagten einst über ihre mißliche Lage; "wir leben", 62 | sprach ein Redner, "in steter Furcht vor Menschen und Tieren, eine Beute 63 | der Hunde, der Adler, ja fast aller Raubtiere! Unsere stete Angst ist ärger 64 | als der Tod selbst. Auf, laßt uns ein für allemal sterben." 65 |

In einem nahen Teich wollten sie sich nun ersäufen; sie eilten 66 | ihm zu; allein das außerordentliche Getöse und ihre wunderbare 67 | Gestalt erschreckte eine Menge Frösche, die am Ufer saßen, so 68 | sehr, daß sie aufs schnellste untertauchten. 69 |

"Halt", rief nun eben dieser Sprecher, "wir wollen das Ersäufen 70 | noch ein wenig aufschieben, denn auch uns fürchten, wie ihr seht, 71 | einige Tiere, welche also wohl noch unglücklicher sein müssen 72 | als wir." 73 |

74 |
  75 |
  76 | 77 | --------------C02FA3D0A04E95F295FB25EB 78 | Content-Type: image/png 79 | Content-ID: 80 | Content-Transfer-Encoding: base64 81 | Content-Disposition: inline; filename="C:\TEMP\nsmailEG.png" 82 | 83 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAgAABAAABgA 84 | AAAACCkAEEIAEEoACDEAEFIIIXMIKXsIKYQIIWsAGFoACDkIIWMQOZwYQqUYQq0YQrUQOaUQ 85 | MZQAGFIQMYwpUrU5Y8Y5Y84pWs4YSs4YQs4YQr1Ca8Z7nNacvd6Mtd5jlOcxa94hUt4YStYY 86 | QsYQMaUAACHO5+/n7++cxu9ShO8pWucQOa1Ke86tzt6lzu9ajO8QMZxahNat1ufO7++Mve9K 87 | e+8YOaUYSsaMvee15++Uve8AAClajOdzpe9rnO8IKYwxY+8pWu8IIXsAAAAAAAAAAAAAAAAA 88 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 89 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 90 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 91 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 92 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 93 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 94 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 95 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 96 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 97 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADB 98 | Mg1VAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAuMT1evmgAAAGI 99 | SURBVHicddJtV5swGAbgEk6AJhBSk4bMCUynBSLaqovbrG/bfPn/vyh70lbsscebL5xznTsh 100 | 5BmNhgQoRChwo50EOIohUYLDj4zHhKYQkrEoQdvock4ne0IKMVUpKZLQDeqSTIsv+18PyqqW 101 | Uw2IBsRM7307PPp+fDJrWtnpLDJvewYxnewfnvanZ+fzpmwXijC8KbqEa3Fx2ff91Y95U9XC 102 | UpaDeQwiMpHXP/v+1++bWVPWQoGFawtjury9vru/f/C1Vi7ezT0WWpQHf/7+u/G71aLThK/M 103 | jRxmT6KdzZ9fGk9yatMsTgZLl3XVgFRAC6spj/13enssqJVtWVa3NdBSacL8+VZmYqKmdd1C 104 | SYoOiMOSGwtzlqqlFFIuOqv0a1ZEZrUkWICLLFW266y1KvWE1zV/iDAH1EopnVLCiygZCIom 105 | H3NCKX0lnI+B1iuuzCGTxwXjnDO4d7NpbX42YJJHkBwmAm2TxwAZg40J3+Xtbv1rgOAZwG0N 106 | xW62p+lT+Yi747sD/wEUVMzYmWkOvwAAACV0RVh0Q29tbWVudABjbGlwMmdpZiB2LjAuNiBi 107 | eSBZdmVzIFBpZ3VldDZzO7wAAAAASUVORK5CYII= 108 | --------------C02FA3D0A04E95F295FB25EB 109 | Content-Type: image/png 110 | Content-ID: 111 | Content-Transfer-Encoding: base64 112 | Content-Disposition: inline; filename="C:\TEMP\nsmail39.png" 113 | 114 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAABAAALAAAV 115 | AAAaAAAXAAARAAAKAAADAAAcAAAyAABEAABNAABIAAA9AAAjAAAWAAAmAABhAAB7AACGAACH 116 | AAB9AAB0AABgAAA5AAAUAAAGAAAnAABLAABvAACQAAClAAC7AAC/AACrAAChAACMAABzAABb 117 | AAAuAAAIAABMAAB3AACZAAC0GRnKODjVPT3bKSndBQW4AACoAAB5AAAxAAAYAAAEAABFAACa 118 | AAC7JCTRYWHfhITmf3/mVlbqHx/SAAC5AACjAABdAABCAAAoAAAJAABnAAC6Dw/QVFTek5Pl 119 | rKzpmZntZWXvJSXXAADBAACxAACcAABtAABTAAA2AAAbAAAFAABKAACBAADLICDdZ2fonJzr 120 | pqbtiorvUVHvFBTRAADDAAC2AAB4AABeAABAAAAiAABXAACSAADCAADaGxvoVVXseHjveHjv 121 | V1fvJibhAADOAAC3AACnAACVAABHAAArAAAPAACdAADFAADhBQXrKCjvPDzvNTXvGxvjAADQ 122 | AADJAAC1AACXAACEAABsAABPAAASAAACAABiAADpAADvAgLnAADYAADLAAC6AACwAABwAAAT 123 | AAAkAABYAADIAADTAADNAACzAACDAABuAAAeAAB+AADAAACkAACNAAB/AABpAABQAAAwAACR 124 | AACpAAC8AACqAACbAABlAABJAAAqAAAOAAA0AACsAACvAACtAACmAACJAAB6AABrAABaAAA+ 125 | AAApAABqAACCAACfAACeAACWAACPAAB8AAAZAAAHAABVAACOAACKAAA4AAAQAAA/AAByAACA 126 | AABcAAA3AAAsAABmAABDAABWAAAgAAAzAAA8AAA6AAAfAAAMAAAdAAANAAAAAAAAAAAAAAAA 127 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 128 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8 129 | LtlFAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAuMT1evmgAAAII 130 | SURBVHicY2CAg/8QwIABmJhZWFnZ2Dk4MaU5uLh5eHn5+LkFBDlQJf8zC/EIi4iKiUtI8koJ 131 | Scsgyf5nlpWTV1BUUlZRVVPX4NFk1UJIyghp6+jq6RsYGhmbKJgK85mZW8Dk/rNaSlhZ29ja 132 | 2Ts4Ojkr6Li4urFDNf53N/Ow8vTy9vH18w8IDAoWDQkNC4+ASP5ni4wKio6JjYtPSExKTnFW 133 | SE1LF4A69n9GZlZ2Tm5efkFhUXFySWlZlEd5RSVY7j+TkGRVdU1tXX1DY1Ozcktpa1t7h2Yn 134 | OAj+d7l1tyo79vT29SdNSJ44SbFVdHIo9xSIHNPUaWqTpifNSJrZnK00S0U1a/acUG5piNz/ 135 | uXLzVJ2qm6dXz584S2WB1cJFi5cshZr539xVftnyFKUVTi2TVjqvyhJLXb1m7TqoHPt6F/HW 136 | 0g0bN63crGqVtWXrtu07BJihcsw71+zanRW8Z89eq337RQ/Ip60xO3gIElX/LbikDm8T36Kw 137 | bNmRo7O3zpHkPSZwHBqL//8flz1x2OOkyKJTi7aqbzutfUZI2gIuF8F2lr/D5dw2+fZdwpl8 138 | YVOlI+CJ4/9/joOyYed5QzMvhGqnm2V0WiClm///D0lfXHtJ6vLlK9w7rx7vQk5SQJbFtSms 139 | 1y9evXid7QZacgOxmSxktNzdtSwwU+J/VICaCPFIYU3XAJhIOtjf5sfyAAAAJXRFWHRDb21t 140 | ZW50AGNsaXAyZ2lmIHYuMC42IGJ5IFl2ZXMgUGlndWV0NnM7vAAAAABJRU5ErkJggg== 141 | --------------C02FA3D0A04E95F295FB25EB-- 142 | 143 | --------------F03F94BA73D3B9E8C1B94D92-- 144 | 145 | --------------A1E83A41894D3755390B838A 146 | Content-Type: image/png; 147 | name="redball.png" 148 | Content-Transfer-Encoding: base64 149 | Content-Disposition: inline; 150 | filename="redball.png" 151 | 152 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAABAAALAAAV 153 | AAAaAAAXAAARAAAKAAADAAAcAAAyAABEAABNAABIAAA9AAAjAAAWAAAmAABhAAB7AACGAACH 154 | AAB9AAB0AABgAAA5AAAUAAAGAAAnAABLAABvAACQAAClAAC7AAC/AACrAAChAACMAABzAABb 155 | AAAuAAAIAABMAAB3AACZAAC0GRnKODjVPT3bKSndBQW4AACoAAB5AAAxAAAYAAAEAABFAACa 156 | AAC7JCTRYWHfhITmf3/mVlbqHx/SAAC5AACjAABdAABCAAAoAAAJAABnAAC6Dw/QVFTek5Pl 157 | rKzpmZntZWXvJSXXAADBAACxAACcAABtAABTAAA2AAAbAAAFAABKAACBAADLICDdZ2fonJzr 158 | pqbtiorvUVHvFBTRAADDAAC2AAB4AABeAABAAAAiAABXAACSAADCAADaGxvoVVXseHjveHjv 159 | V1fvJibhAADOAAC3AACnAACVAABHAAArAAAPAACdAADFAADhBQXrKCjvPDzvNTXvGxvjAADQ 160 | AADJAAC1AACXAACEAABsAABPAAASAAACAABiAADpAADvAgLnAADYAADLAAC6AACwAABwAAAT 161 | AAAkAABYAADIAADTAADNAACzAACDAABuAAAeAAB+AADAAACkAACNAAB/AABpAABQAAAwAACR 162 | AACpAAC8AACqAACbAABlAABJAAAqAAAOAAA0AACsAACvAACtAACmAACJAAB6AABrAABaAAA+ 163 | AAApAABqAACCAACfAACeAACWAACPAAB8AAAZAAAHAABVAACOAACKAAA4AAAQAAA/AAByAACA 164 | AABcAAA3AAAsAABmAABDAABWAAAgAAAzAAA8AAA6AAAfAAAMAAAdAAANAAAAAAAAAAAAAAAA 165 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 166 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8 167 | LtlFAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAuMT1evmgAAAII 168 | SURBVHicY2CAg/8QwIABmJhZWFnZ2Dk4MaU5uLh5eHn5+LkFBDlQJf8zC/EIi4iKiUtI8koJ 169 | Scsgyf5nlpWTV1BUUlZRVVPX4NFk1UJIyghp6+jq6RsYGhmbKJgK85mZW8Dk/rNaSlhZ29ja 170 | 2Ts4Ojkr6Li4urFDNf53N/Ow8vTy9vH18w8IDAoWDQkNC4+ASP5ni4wKio6JjYtPSExKTnFW 171 | SE1LF4A69n9GZlZ2Tm5efkFhUXFySWlZlEd5RSVY7j+TkGRVdU1tXX1DY1Ozcktpa1t7h2Yn 172 | OAj+d7l1tyo79vT29SdNSJ44SbFVdHIo9xSIHNPUaWqTpifNSJrZnK00S0U1a/acUG5piNz/ 173 | uXLzVJ2qm6dXz584S2WB1cJFi5cshZr539xVftnyFKUVTi2TVjqvyhJLXb1m7TqoHPt6F/HW 174 | 0g0bN63crGqVtWXrtu07BJihcsw71+zanRW8Z89eq337RQ/Ip60xO3gIElX/LbikDm8T36Kw 175 | bNmRo7O3zpHkPSZwHBqL//8flz1x2OOkyKJTi7aqbzutfUZI2gIuF8F2lr/D5dw2+fZdwpl8 176 | YVOlI+CJ4/9/joOyYed5QzMvhGqnm2V0WiClm///D0lfXHtJ6vLlK9w7rx7vQk5SQJbFtSms 177 | 1y9evXid7QZacgOxmSxktNzdtSwwU+J/VICaCPFIYU3XAJhIOtjf5sfyAAAAJXRFWHRDb21t 178 | ZW50AGNsaXAyZ2lmIHYuMC42IGJ5IFl2ZXMgUGlndWV0NnM7vAAAAABJRU5ErkJggg== 179 | --------------A1E83A41894D3755390B838A 180 | Content-Type: image/png; 181 | name="greenball.png" 182 | Content-Transfer-Encoding: base64 183 | Content-Disposition: inline; 184 | filename="greenball.png" 185 | 186 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAAAEAAAGAAA 187 | IQAACAAAMQAAQgAAUgAAWgAASgAIYwAIcwAIewAQjAAIawAAOQAAYwAQlAAQnAAhpQAQpQAh 188 | rQBCvRhjxjFjxjlSxiEpzgAYvQAQrQAYrQAhvQCU1mOt1nuE1lJK3hgh1gAYxgAYtQAAKQBC 189 | zhDO55Te563G55SU52NS5yEh3gAYzgBS3iGc52vW75y974yE71JC7xCt73ul3nNa7ykh5wAY 190 | 1gAx5wBS7yFr7zlK7xgp5wAp7wAx7wAIhAAQtQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 191 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 192 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 193 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 194 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 195 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 196 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 197 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 198 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 199 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 200 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAp 201 | 1fnZAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAuMT1evmgAAAFt 202 | SURBVHicddJtV8IgFAdwD2zIgMEE1+NcqdsoK+m5tCyz7/+ZiLmHsyzvq53zO/cy+N9ery1b 203 | Ve9PWQA9z4MQ+H8Yoj7GASZ95IHfaBGmLOSchyIgyOu22mgQSjUcDuNYcoGjLiLK1cHh0fHJ 204 | aTKKOcMItgYxT89OzsfjyTTLC8UF0c2ZNmKquJhczq6ub+YmSVUYRF59GeDastu7+9nD41Nm 205 | kiJ2jc2J3kAWZ9Pr55fH18XSmRuKUTXUaqHy7O19tfr4NFle/w3YDrWRUIlZrL/W86XJkyJV 206 | G9EaEjIx2XyZmZJGioeUaL+2AY8TY8omR6nkLKhu70zjUKVJXsp3quS2DVSJWNh3zzJKCyex 207 | I0ZxBP3afE0ElyqOlZJyw8r3BE2SFiJCyxA434SCkg65RhdeQBljQtCg39LWrA90RDDG1EWr 208 | YUO23hMANUKRRl61E529cR++D2G5LK002dr/qrcfu9u0V3bxn/XdhR/NYeeN0ggsLAAAACV0 209 | RVh0Q29tbWVudABjbGlwMmdpZiB2LjAuNiBieSBZdmVzIFBpZ3VldDZzO7wAAAAASUVORK5C 210 | YII= 211 | --------------A1E83A41894D3755390B838A-- 212 | 213 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m1006.txt: -------------------------------------------------------------------------------- 1 | Message-ID: <39236103.FFE674FC@example.com> 2 | Date: Wed, 17 May 2000 23:18:27 -0400 3 | From: Doug Sauder 4 | X-Mailer: Mozilla 4.7 [en] (WinNT; I) 5 | X-Accept-Language: en 6 | MIME-Version: 1.0 7 | To: =?iso-8859-1?Q?J=FCrgen=20Schm=FCrgen?= 8 | Subject: Test message from Netscape Communicator 4.7 9 | Content-Type: multipart/mixed; 10 | boundary="------------B7133A01A6B323BF00DBC9A7" 11 | 12 | This is a multi-part message in MIME format. 13 | --------------B7133A01A6B323BF00DBC9A7 14 | Content-Type: multipart/related; 15 | boundary="------------8E6A06810565BCAB5E1F7D97" 16 | 17 | 18 | --------------8E6A06810565BCAB5E1F7D97 19 | Content-Type: text/html; charset=us-ascii 20 | Content-Transfer-Encoding: 7bit 21 | 22 | 23 | 24 | blue ball 25 |

Die Hasen und die Frösche 26 |

Die Hasen klagten einst über ihre mißliche Lage; "wir leben", 27 | sprach ein Redner, "in steter Furcht vor Menschen und Tieren, eine Beute 28 | der Hunde, der Adler, ja fast aller Raubtiere! Unsere stete Angst ist ärger 29 | als der Tod selbst. Auf, laßt uns ein für allemal sterben." 30 |

In einem nahen Teich wollten sie sich nun ersäufen; sie eilten 31 | ihm zu; allein das außerordentliche Getöse und ihre wunderbare 32 | Gestalt erschreckte eine Menge Frösche, die am Ufer saßen, so 33 | sehr, daß sie aufs schnellste untertauchten. 34 |

"Halt", rief nun eben dieser Sprecher, "wir wollen das Ersäufen 35 | noch ein wenig aufschieben, denn auch uns fürchten, wie ihr seht, 36 | einige Tiere, welche also wohl noch unglücklicher sein müssen 37 | als wir." 38 |

red ball 39 | 40 | --------------8E6A06810565BCAB5E1F7D97 41 | Content-Type: image/png 42 | Content-ID: 43 | Content-Transfer-Encoding: base64 44 | Content-Disposition: inline; filename="C:\TEMP\nsmailV0.png" 45 | 46 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAgAABAAABgA 47 | AAAACCkAEEIAEEoACDEAEFIIIXMIKXsIKYQIIWsAGFoACDkIIWMQOZwYQqUYQq0YQrUQOaUQ 48 | MZQAGFIQMYwpUrU5Y8Y5Y84pWs4YSs4YQs4YQr1Ca8Z7nNacvd6Mtd5jlOcxa94hUt4YStYY 49 | QsYQMaUAACHO5+/n7++cxu9ShO8pWucQOa1Ke86tzt6lzu9ajO8QMZxahNat1ufO7++Mve9K 50 | e+8YOaUYSsaMvee15++Uve8AAClajOdzpe9rnO8IKYwxY+8pWu8IIXsAAAAAAAAAAAAAAAAA 51 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 52 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 53 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 54 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 55 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 56 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 57 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 58 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 59 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 60 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADB 61 | Mg1VAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAuMT1evmgAAAGI 62 | SURBVHicddJtV5swGAbgEk6AJhBSk4bMCUynBSLaqovbrG/bfPn/vyh70lbsscebL5xznTsh 63 | 5BmNhgQoRChwo50EOIohUYLDj4zHhKYQkrEoQdvock4ne0IKMVUpKZLQDeqSTIsv+18PyqqW 64 | Uw2IBsRM7307PPp+fDJrWtnpLDJvewYxnewfnvanZ+fzpmwXijC8KbqEa3Fx2ff91Y95U9XC 65 | UpaDeQwiMpHXP/v+1++bWVPWQoGFawtjury9vru/f/C1Vi7ezT0WWpQHf/7+u/G71aLThK/M 66 | jRxmT6KdzZ9fGk9yatMsTgZLl3XVgFRAC6spj/13enssqJVtWVa3NdBSacL8+VZmYqKmdd1C 67 | SYoOiMOSGwtzlqqlFFIuOqv0a1ZEZrUkWICLLFW266y1KvWE1zV/iDAH1EopnVLCiygZCIom 68 | H3NCKX0lnI+B1iuuzCGTxwXjnDO4d7NpbX42YJJHkBwmAm2TxwAZg40J3+Xtbv1rgOAZwG0N 69 | xW62p+lT+Yi747sD/wEUVMzYmWkOvwAAACV0RVh0Q29tbWVudABjbGlwMmdpZiB2LjAuNiBi 70 | eSBZdmVzIFBpZ3VldDZzO7wAAAAASUVORK5CYII= 71 | --------------8E6A06810565BCAB5E1F7D97 72 | Content-Type: image/png 73 | Content-ID: 74 | Content-Transfer-Encoding: base64 75 | Content-Disposition: inline; filename="C:\TEMP\nsmailNM.png" 76 | 77 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAABAAALAAAV 78 | AAAaAAAXAAARAAAKAAADAAAcAAAyAABEAABNAABIAAA9AAAjAAAWAAAmAABhAAB7AACGAACH 79 | AAB9AAB0AABgAAA5AAAUAAAGAAAnAABLAABvAACQAAClAAC7AAC/AACrAAChAACMAABzAABb 80 | AAAuAAAIAABMAAB3AACZAAC0GRnKODjVPT3bKSndBQW4AACoAAB5AAAxAAAYAAAEAABFAACa 81 | AAC7JCTRYWHfhITmf3/mVlbqHx/SAAC5AACjAABdAABCAAAoAAAJAABnAAC6Dw/QVFTek5Pl 82 | rKzpmZntZWXvJSXXAADBAACxAACcAABtAABTAAA2AAAbAAAFAABKAACBAADLICDdZ2fonJzr 83 | pqbtiorvUVHvFBTRAADDAAC2AAB4AABeAABAAAAiAABXAACSAADCAADaGxvoVVXseHjveHjv 84 | V1fvJibhAADOAAC3AACnAACVAABHAAArAAAPAACdAADFAADhBQXrKCjvPDzvNTXvGxvjAADQ 85 | AADJAAC1AACXAACEAABsAABPAAASAAACAABiAADpAADvAgLnAADYAADLAAC6AACwAABwAAAT 86 | AAAkAABYAADIAADTAADNAACzAACDAABuAAAeAAB+AADAAACkAACNAAB/AABpAABQAAAwAACR 87 | AACpAAC8AACqAACbAABlAABJAAAqAAAOAAA0AACsAACvAACtAACmAACJAAB6AABrAABaAAA+ 88 | AAApAABqAACCAACfAACeAACWAACPAAB8AAAZAAAHAABVAACOAACKAAA4AAAQAAA/AAByAACA 89 | AABcAAA3AAAsAABmAABDAABWAAAgAAAzAAA8AAA6AAAfAAAMAAAdAAANAAAAAAAAAAAAAAAA 90 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 91 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8 92 | LtlFAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAuMT1evmgAAAII 93 | SURBVHicY2CAg/8QwIABmJhZWFnZ2Dk4MaU5uLh5eHn5+LkFBDlQJf8zC/EIi4iKiUtI8koJ 94 | Scsgyf5nlpWTV1BUUlZRVVPX4NFk1UJIyghp6+jq6RsYGhmbKJgK85mZW8Dk/rNaSlhZ29ja 95 | 2Ts4Ojkr6Li4urFDNf53N/Ow8vTy9vH18w8IDAoWDQkNC4+ASP5ni4wKio6JjYtPSExKTnFW 96 | SE1LF4A69n9GZlZ2Tm5efkFhUXFySWlZlEd5RSVY7j+TkGRVdU1tXX1DY1Ozcktpa1t7h2Yn 97 | OAj+d7l1tyo79vT29SdNSJ44SbFVdHIo9xSIHNPUaWqTpifNSJrZnK00S0U1a/acUG5piNz/ 98 | uXLzVJ2qm6dXz584S2WB1cJFi5cshZr539xVftnyFKUVTi2TVjqvyhJLXb1m7TqoHPt6F/HW 99 | 0g0bN63crGqVtWXrtu07BJihcsw71+zanRW8Z89eq337RQ/Ip60xO3gIElX/LbikDm8T36Kw 100 | bNmRo7O3zpHkPSZwHBqL//8flz1x2OOkyKJTi7aqbzutfUZI2gIuF8F2lr/D5dw2+fZdwpl8 101 | YVOlI+CJ4/9/joOyYed5QzMvhGqnm2V0WiClm///D0lfXHtJ6vLlK9w7rx7vQk5SQJbFtSms 102 | 1y9evXid7QZacgOxmSxktNzdtSwwU+J/VICaCPFIYU3XAJhIOtjf5sfyAAAAJXRFWHRDb21t 103 | ZW50AGNsaXAyZ2lmIHYuMC42IGJ5IFl2ZXMgUGlndWV0NnM7vAAAAABJRU5ErkJggg== 104 | --------------8E6A06810565BCAB5E1F7D97-- 105 | 106 | --------------B7133A01A6B323BF00DBC9A7 107 | Content-Type: image/png; 108 | name="greenball.png" 109 | Content-Transfer-Encoding: base64 110 | Content-Disposition: inline; 111 | filename="greenball.png" 112 | 113 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAAAEAAAGAAA 114 | IQAACAAAMQAAQgAAUgAAWgAASgAIYwAIcwAIewAQjAAIawAAOQAAYwAQlAAQnAAhpQAQpQAh 115 | rQBCvRhjxjFjxjlSxiEpzgAYvQAQrQAYrQAhvQCU1mOt1nuE1lJK3hgh1gAYxgAYtQAAKQBC 116 | zhDO55Te563G55SU52NS5yEh3gAYzgBS3iGc52vW75y974yE71JC7xCt73ul3nNa7ykh5wAY 117 | 1gAx5wBS7yFr7zlK7xgp5wAp7wAx7wAIhAAQtQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 118 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 119 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 120 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 121 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 122 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 123 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 124 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 125 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 126 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 127 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAp 128 | 1fnZAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAuMT1evmgAAAFt 129 | SURBVHicddJtV8IgFAdwD2zIgMEE1+NcqdsoK+m5tCyz7/+ZiLmHsyzvq53zO/cy+N9ery1b 130 | Ve9PWQA9z4MQ+H8Yoj7GASZ95IHfaBGmLOSchyIgyOu22mgQSjUcDuNYcoGjLiLK1cHh0fHJ 131 | aTKKOcMItgYxT89OzsfjyTTLC8UF0c2ZNmKquJhczq6ub+YmSVUYRF59GeDastu7+9nD41Nm 132 | kiJ2jc2J3kAWZ9Pr55fH18XSmRuKUTXUaqHy7O19tfr4NFle/w3YDrWRUIlZrL/W86XJkyJV 133 | G9EaEjIx2XyZmZJGioeUaL+2AY8TY8omR6nkLKhu70zjUKVJXsp3quS2DVSJWNh3zzJKCyex 134 | I0ZxBP3afE0ElyqOlZJyw8r3BE2SFiJCyxA434SCkg65RhdeQBljQtCg39LWrA90RDDG1EWr 135 | YUO23hMANUKRRl61E529cR++D2G5LK002dr/qrcfu9u0V3bxn/XdhR/NYeeN0ggsLAAAACV0 136 | RVh0Q29tbWVudABjbGlwMmdpZiB2LjAuNiBieSBZdmVzIFBpZ3VldDZzO7wAAAAASUVORK5C 137 | YII= 138 | --------------B7133A01A6B323BF00DBC9A7 139 | Content-Type: image/png; 140 | name="blueball.png" 141 | Content-Transfer-Encoding: base64 142 | Content-Disposition: inline; 143 | filename="blueball.png" 144 | 145 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAgAABAAABgA 146 | AAAACCkAEEIAEEoACDEAEFIIIXMIKXsIKYQIIWsAGFoACDkIIWMQOZwYQqUYQq0YQrUQOaUQ 147 | MZQAGFIQMYwpUrU5Y8Y5Y84pWs4YSs4YQs4YQr1Ca8Z7nNacvd6Mtd5jlOcxa94hUt4YStYY 148 | QsYQMaUAACHO5+/n7++cxu9ShO8pWucQOa1Ke86tzt6lzu9ajO8QMZxahNat1ufO7++Mve9K 149 | e+8YOaUYSsaMvee15++Uve8AAClajOdzpe9rnO8IKYwxY+8pWu8IIXsAAAAAAAAAAAAAAAAA 150 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 151 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 152 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 153 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 154 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 155 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 156 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 157 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 158 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 159 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADB 160 | Mg1VAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAuMT1evmgAAAGI 161 | SURBVHicddJtV5swGAbgEk6AJhBSk4bMCUynBSLaqovbrG/bfPn/vyh70lbsscebL5xznTsh 162 | 5BmNhgQoRChwo50EOIohUYLDj4zHhKYQkrEoQdvock4ne0IKMVUpKZLQDeqSTIsv+18PyqqW 163 | Uw2IBsRM7307PPp+fDJrWtnpLDJvewYxnewfnvanZ+fzpmwXijC8KbqEa3Fx2ff91Y95U9XC 164 | UpaDeQwiMpHXP/v+1++bWVPWQoGFawtjury9vru/f/C1Vi7ezT0WWpQHf/7+u/G71aLThK/M 165 | jRxmT6KdzZ9fGk9yatMsTgZLl3XVgFRAC6spj/13enssqJVtWVa3NdBSacL8+VZmYqKmdd1C 166 | SYoOiMOSGwtzlqqlFFIuOqv0a1ZEZrUkWICLLFW266y1KvWE1zV/iDAH1EopnVLCiygZCIom 167 | H3NCKX0lnI+B1iuuzCGTxwXjnDO4d7NpbX42YJJHkBwmAm2TxwAZg40J3+Xtbv1rgOAZwG0N 168 | xW62p+lT+Yi747sD/wEUVMzYmWkOvwAAACV0RVh0Q29tbWVudABjbGlwMmdpZiB2LjAuNiBi 169 | eSBZdmVzIFBpZ3VldDZzO7wAAAAASUVORK5CYII= 170 | --------------B7133A01A6B323BF00DBC9A7-- 171 | 172 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m1007.txt: -------------------------------------------------------------------------------- 1 | Message-ID: <3923625B.59F0C3AC@example.com> 2 | Date: Wed, 17 May 2000 23:24:11 -0400 3 | From: Doug Sauder 4 | X-Mailer: Mozilla 4.7 [en] (WinNT; I) 5 | X-Accept-Language: en 6 | MIME-Version: 1.0 7 | To: Joe Blow 8 | Subject: Test message from Netscape Communicator 4.7 9 | Content-Type: text/plain; charset=us-ascii 10 | Content-Transfer-Encoding: 7bit 11 | 12 | 13 | The Hare and the Tortoise 14 | 15 | A HARE one day ridiculed the short feet and slow pace of the Tortoise, who replied, laughing: "Though you be swift as the wind, I will beat you in a race." The Hare, believing her assertion to be simply impossible, assented to the proposal; and they agreed that the Fox should choose the course and fix the goal. On the day appointed for the race the two started together. The Tortoise never for a moment stopped, but went on with a slow but steady pace straight to the end of the course. The Hare, lying down by the wayside, fell fast asleep. At last waking up, and moving as fast as he could, he saw the Tortoise had reached the goal, and was comfortably dozing after her fatigue. 16 | 17 | Slow but steady wins the race. 18 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m1008.txt: -------------------------------------------------------------------------------- 1 | Message-ID: <392362D8.B650789F@example.com> 2 | Date: Wed, 17 May 2000 23:26:16 -0400 3 | From: Doug Sauder 4 | X-Mailer: Mozilla 4.7 [en] (WinNT; I) 5 | X-Accept-Language: en 6 | MIME-Version: 1.0 7 | To: Joe Blow 8 | Subject: Test message from Netscape Communicator 4.7 9 | X-Priority: 1 (Highest) 10 | Content-Type: text/plain; charset=us-ascii 11 | Content-Transfer-Encoding: 7bit 12 | 13 | 14 | The Hare and the Tortoise 15 | 16 | A HARE one day ridiculed the short feet and slow pace of the Tortoise, 17 | who replied, laughing: "Though you be swift as the wind, I will beat 18 | you in a race." The Hare, believing her assertion to be simply 19 | impossible, assented to the proposal; and they agreed that the Fox 20 | should choose the course and fix the goal. On the day appointed for the 21 | race the two started together. The Tortoise never for a moment stopped, 22 | but went on with a slow but steady pace straight to the end of the 23 | course. The Hare, lying down by the wayside, fell fast asleep. At last 24 | waking up, and moving as fast as he could, he saw the Tortoise had 25 | reached the goal, and was comfortably dozing after her fatigue. 26 | 27 | Slow but steady wins the race. 28 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m1009.txt: -------------------------------------------------------------------------------- 1 | Message-ID: <3923635B.85C58444@example.com> 2 | Date: Wed, 17 May 2000 23:28:27 -0400 3 | From: Doug Sauder 4 | X-Mailer: Mozilla 4.7 [en] (WinNT; I) 5 | X-Accept-Language: en 6 | MIME-Version: 1.0 7 | To: Joe Blow 8 | Subject: Test message from Netscape Communicator 4.7 9 | Content-Type: multipart/mixed; 10 | boundary="------------0BBC657DDC74A0B8454627FD" 11 | 12 | This is a multi-part message in MIME format. 13 | --------------0BBC657DDC74A0B8454627FD 14 | Content-Type: text/plain; charset=us-ascii 15 | Content-Transfer-Encoding: 7bit 16 | 17 | 18 | The Hare and the Tortoise 19 | 20 | A HARE one day ridiculed the short feet and slow pace of the Tortoise, 21 | who replied, laughing: "Though you be swift as the wind, I will beat 22 | you in a race." The Hare, believing her assertion to be simply 23 | impossible, assented to the proposal; and they agreed that the Fox 24 | should choose the course and fix the goal. On the day appointed for the 25 | race the two started together. The Tortoise never for a moment stopped, 26 | but went on with a slow but steady pace straight to the end of the 27 | course. The Hare, lying down by the wayside, fell fast asleep. At last 28 | waking up, and moving as fast as he could, he saw the Tortoise had 29 | reached the goal, and was comfortably dozing after her fatigue. 30 | 31 | Slow but steady wins the race. 32 | --------------0BBC657DDC74A0B8454627FD 33 | Content-Type: image/png; 34 | name="blueball.png" 35 | Content-Transfer-Encoding: base64 36 | Content-Disposition: inline; 37 | filename="blueball.png" 38 | 39 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAgAABAAABgA 40 | AAAACCkAEEIAEEoACDEAEFIIIXMIKXsIKYQIIWsAGFoACDkIIWMQOZwYQqUYQq0YQrUQOaUQ 41 | MZQAGFIQMYwpUrU5Y8Y5Y84pWs4YSs4YQs4YQr1Ca8Z7nNacvd6Mtd5jlOcxa94hUt4YStYY 42 | QsYQMaUAACHO5+/n7++cxu9ShO8pWucQOa1Ke86tzt6lzu9ajO8QMZxahNat1ufO7++Mve9K 43 | e+8YOaUYSsaMvee15++Uve8AAClajOdzpe9rnO8IKYwxY+8pWu8IIXsAAAAAAAAAAAAAAAAA 44 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 45 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 46 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 47 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 48 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 49 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 50 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 51 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 52 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 53 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADB 54 | Mg1VAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAuMT1evmgAAAGI 55 | SURBVHicddJtV5swGAbgEk6AJhBSk4bMCUynBSLaqovbrG/bfPn/vyh70lbsscebL5xznTsh 56 | 5BmNhgQoRChwo50EOIohUYLDj4zHhKYQkrEoQdvock4ne0IKMVUpKZLQDeqSTIsv+18PyqqW 57 | Uw2IBsRM7307PPp+fDJrWtnpLDJvewYxnewfnvanZ+fzpmwXijC8KbqEa3Fx2ff91Y95U9XC 58 | UpaDeQwiMpHXP/v+1++bWVPWQoGFawtjury9vru/f/C1Vi7ezT0WWpQHf/7+u/G71aLThK/M 59 | jRxmT6KdzZ9fGk9yatMsTgZLl3XVgFRAC6spj/13enssqJVtWVa3NdBSacL8+VZmYqKmdd1C 60 | SYoOiMOSGwtzlqqlFFIuOqv0a1ZEZrUkWICLLFW266y1KvWE1zV/iDAH1EopnVLCiygZCIom 61 | H3NCKX0lnI+B1iuuzCGTxwXjnDO4d7NpbX42YJJHkBwmAm2TxwAZg40J3+Xtbv1rgOAZwG0N 62 | xW62p+lT+Yi747sD/wEUVMzYmWkOvwAAACV0RVh0Q29tbWVudABjbGlwMmdpZiB2LjAuNiBi 63 | eSBZdmVzIFBpZ3VldDZzO7wAAAAASUVORK5CYII= 64 | --------------0BBC657DDC74A0B8454627FD 65 | Content-Type: image/png; 66 | name="greenball.png" 67 | Content-Transfer-Encoding: base64 68 | Content-Disposition: inline; 69 | filename="greenball.png" 70 | 71 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAAAEAAAGAAA 72 | IQAACAAAMQAAQgAAUgAAWgAASgAIYwAIcwAIewAQjAAIawAAOQAAYwAQlAAQnAAhpQAQpQAh 73 | rQBCvRhjxjFjxjlSxiEpzgAYvQAQrQAYrQAhvQCU1mOt1nuE1lJK3hgh1gAYxgAYtQAAKQBC 74 | zhDO55Te563G55SU52NS5yEh3gAYzgBS3iGc52vW75y974yE71JC7xCt73ul3nNa7ykh5wAY 75 | 1gAx5wBS7yFr7zlK7xgp5wAp7wAx7wAIhAAQtQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 76 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 77 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 78 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 79 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 80 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 81 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 82 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 83 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 84 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 85 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAp 86 | 1fnZAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAuMT1evmgAAAFt 87 | SURBVHicddJtV8IgFAdwD2zIgMEE1+NcqdsoK+m5tCyz7/+ZiLmHsyzvq53zO/cy+N9ery1b 88 | Ve9PWQA9z4MQ+H8Yoj7GASZ95IHfaBGmLOSchyIgyOu22mgQSjUcDuNYcoGjLiLK1cHh0fHJ 89 | aTKKOcMItgYxT89OzsfjyTTLC8UF0c2ZNmKquJhczq6ub+YmSVUYRF59GeDastu7+9nD41Nm 90 | kiJ2jc2J3kAWZ9Pr55fH18XSmRuKUTXUaqHy7O19tfr4NFle/w3YDrWRUIlZrL/W86XJkyJV 91 | G9EaEjIx2XyZmZJGioeUaL+2AY8TY8omR6nkLKhu70zjUKVJXsp3quS2DVSJWNh3zzJKCyex 92 | I0ZxBP3afE0ElyqOlZJyw8r3BE2SFiJCyxA434SCkg65RhdeQBljQtCg39LWrA90RDDG1EWr 93 | YUO23hMANUKRRl61E529cR++D2G5LK002dr/qrcfu9u0V3bxn/XdhR/NYeeN0ggsLAAAACV0 94 | RVh0Q29tbWVudABjbGlwMmdpZiB2LjAuNiBieSBZdmVzIFBpZ3VldDZzO7wAAAAASUVORK5C 95 | YII= 96 | --------------0BBC657DDC74A0B8454627FD 97 | Content-Type: text/plain; charset=us-ascii; 98 | name="hareandtoroise.txt" 99 | Content-Transfer-Encoding: 7bit 100 | Content-Disposition: inline; 101 | filename="hareandtoroise.txt" 102 | 103 | 104 | The Hare and the Tortoise 105 | 106 | A HARE one day ridiculed the short feet and slow pace of the Tortoise, who replied, laughing: "Though you be swift as the wind, I will beat you in a race." The Hare, believing her assertion to be simply impossible, assented to the proposal; and they agreed that the Fox should choose the course and fix the goal. On the day appointed for the race the two started together. The Tortoise never for a moment stopped, but went on with a slow but steady pace straight to the end of the course. The Hare, lying down by the wayside, fell fast asleep. At last waking up, and moving as fast as he could, he saw the Tortoise had reached the goal, and was comfortably dozing after her fatigue. 107 | 108 | Slow but steady wins the race. 109 | 110 | --------------0BBC657DDC74A0B8454627FD-- 111 | 112 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m1010.txt: -------------------------------------------------------------------------------- 1 | Message-ID: <392363E1.2AC47AB3@example.com> 2 | Date: Wed, 17 May 2000 23:30:41 -0400 3 | From: Doug Sauder 4 | X-Mailer: Mozilla 4.7 [en] (WinNT; I) 5 | X-Accept-Language: en 6 | MIME-Version: 1.0 7 | To: Joe Blow 8 | Subject: Test message from Netscape Communicator 4.7 9 | X-Priority: 5 (Lowest) 10 | Content-Type: text/plain; charset=UTF-8 11 | Content-Transfer-Encoding: quoted-printable 12 | 13 | Die Hasen und die Fr=F6sche 14 | 15 | Die Hasen klagten einst =FCber ihre mi=DFliche Lage; "wir leben", sprach = 16 | ein 17 | Redner, "in steter Furcht vor Menschen und Tieren, eine Beute der Hunde, 18 | der Adler, ja fast aller Raubtiere! Unsere stete Angst ist =E4rger als de= 19 | r 20 | Tod selbst. Auf, la=DFt uns ein f=FCr allemal sterben." = 21 | 22 | 23 | In einem nahen Teich wollten sie sich nun ers=E4ufen; sie eilten ihm zu; 24 | allein das au=DFerordentliche Get=F6se und ihre wunderbare Gestalt 25 | erschreckte eine Menge Fr=F6sche, die am Ufer sa=DFen, so sehr, da=DF sie= 26 | aufs 27 | schnellste untertauchten. = 28 | 29 | 30 | "Halt", rief nun eben dieser Sprecher, "wir wollen das Ers=E4ufen noch ei= 31 | n 32 | wenig aufschieben, denn auch uns f=FCrchten, wie ihr seht, einige Tiere, 33 | welche also wohl noch ungl=FCcklicher sein m=FCssen als wir." 34 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m1011.txt: -------------------------------------------------------------------------------- 1 | Message-ID: <39236497.12FA2A89@example.com> 2 | Date: Wed, 17 May 2000 23:33:43 -0400 3 | From: Doug Sauder 4 | X-Mailer: Mozilla 4.7 [en] (WinNT; I) 5 | X-Accept-Language: en 6 | MIME-Version: 1.0 7 | To: "Heinz M+APw-ller" 8 | Subject: Die Hasen und die Fr+APY-sche 9 | Content-Type: text/plain; charset=UTF-7 10 | Content-Transfer-Encoding: 7bit 11 | 12 | Die Hasen und die Fr+XKM-he 13 | 14 | Die Hasen klagten einst +uGU-r ihre mi+B6w-iche Lage; "wir leben", sprach ein 15 | Redner, "in steter Furcht vor Menschen und Tieren, eine Beute der Hunde, 16 | der Adler, ja fast aller Raubtiere! Unsere stete Angst ist +PGc-er als der 17 | Tod selbst. Auf, la+B7Q- uns ein f+vCA-allemal sterben." 18 | 19 | In einem nahen Teich wollten sie sich nun ers+PSY-en; sie eilten ihm zu; 20 | allein das au+B6U-rordentliche Get+XKU- und ihre wunderbare Gestalt 21 | erschreckte eine Menge Fr+XKM-he, die am Ufer sa+B6U-n, so sehr, da+B2A-sie aufs 22 | schnellste untertauchten. 23 | 24 | "Halt", rief nun eben dieser Sprecher, "wir wollen das Ers+PSY-en noch ein 25 | wenig aufschieben, denn auch uns f+vGM-hten, wie ihr seht, einige Tiere, 26 | welche also wohl noch ungl+uKs-licher sein m+vLM-en als wir." 27 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m1012.txt: -------------------------------------------------------------------------------- 1 | Message-ID: <39236653.CAA8A090@example.com> 2 | Date: Wed, 17 May 2000 23:41:07 -0400 3 | From: Doug Sauder 4 | X-Mailer: Mozilla 4.7 [en] (WinNT; I) 5 | X-Accept-Language: en 6 | MIME-Version: 1.0 7 | To: =?iso-8859-1?Q?J=FCrgen=20Schm=FCrgen?= 8 | Subject: Die Hasen und die =?iso-8859-1?Q?Fr=F6sche?= 9 | Content-Type: text/plain; charset=iso-8859-1 10 | Content-Transfer-Encoding: quoted-printable 11 | 12 | Die Hasen und die Fr=F6sche 13 | 14 | Die Hasen klagten einst =FCber ihre mi=DFliche Lage; "wir leben", sprach = 15 | ein Redner, "in steter Furcht vor Menschen und Tieren, eine Beute der Hun= 16 | de, der Adler, ja fast aller Raubtiere! Unsere stete Angst ist =E4rger al= 17 | s der Tod selbst. Auf, la=DFt uns ein f=FCr allemal sterben." = 18 | 19 | 20 | In einem nahen Teich wollten sie sich nun ers=E4ufen; sie eilten ihm zu; = 21 | allein das au=DFerordentliche Get=F6se und ihre wunderbare Gestalt erschr= 22 | eckte eine Menge Fr=F6sche, die am Ufer sa=DFen, so sehr, da=DF sie aufs = 23 | schnellste untertauchten. = 24 | 25 | 26 | "Halt", rief nun eben dieser Sprecher, "wir wollen das Ers=E4ufen noch ei= 27 | n wenig aufschieben, denn auch uns f=FCrchten, wie ihr seht, einige Tiere= 28 | , welche also wohl noch ungl=FCcklicher sein m=FCssen als wir." 29 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m1013.txt: -------------------------------------------------------------------------------- 1 | Message-ID: <392366A7.21929EA7@example.com> 2 | Date: Wed, 17 May 2000 23:42:31 -0400 3 | From: Doug Sauder 4 | X-Mailer: Mozilla 4.7 [en] (WinNT; I) 5 | X-Accept-Language: en 6 | MIME-Version: 1.0 7 | To: Joe Blow 8 | Subject: Test message from Netscape Communicator 4.7 9 | Content-Type: multipart/mixed; 10 | boundary="------------E7889DDF0F75D34163841C59" 11 | 12 | This is a multi-part message in MIME format. 13 | --------------E7889DDF0F75D34163841C59 14 | Content-Type: text/plain; charset=us-ascii 15 | Content-Transfer-Encoding: 7bit 16 | 17 | 18 | --------------E7889DDF0F75D34163841C59 19 | Content-Type: image/png; 20 | name="blueball.png" 21 | Content-Transfer-Encoding: base64 22 | Content-Disposition: inline; 23 | filename="blueball.png" 24 | 25 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8AAAgAABAAABgA 26 | AAAACCkAEEIAEEoACDEAEFIIIXMIKXsIKYQIIWsAGFoACDkIIWMQOZwYQqUYQq0YQrUQOaUQ 27 | MZQAGFIQMYwpUrU5Y8Y5Y84pWs4YSs4YQs4YQr1Ca8Z7nNacvd6Mtd5jlOcxa94hUt4YStYY 28 | QsYQMaUAACHO5+/n7++cxu9ShO8pWucQOa1Ke86tzt6lzu9ajO8QMZxahNat1ufO7++Mve9K 29 | e+8YOaUYSsaMvee15++Uve8AAClajOdzpe9rnO8IKYwxY+8pWu8IIXsAAAAAAAAAAAAAAAAA 30 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 31 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 32 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 33 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 34 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 35 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 36 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 37 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 38 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 39 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADB 40 | Mg1VAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAuMT1evmgAAAGI 41 | SURBVHicddJtV5swGAbgEk6AJhBSk4bMCUynBSLaqovbrG/bfPn/vyh70lbsscebL5xznTsh 42 | 5BmNhgQoRChwo50EOIohUYLDj4zHhKYQkrEoQdvock4ne0IKMVUpKZLQDeqSTIsv+18PyqqW 43 | Uw2IBsRM7307PPp+fDJrWtnpLDJvewYxnewfnvanZ+fzpmwXijC8KbqEa3Fx2ff91Y95U9XC 44 | UpaDeQwiMpHXP/v+1++bWVPWQoGFawtjury9vru/f/C1Vi7ezT0WWpQHf/7+u/G71aLThK/M 45 | jRxmT6KdzZ9fGk9yatMsTgZLl3XVgFRAC6spj/13enssqJVtWVa3NdBSacL8+VZmYqKmdd1C 46 | SYoOiMOSGwtzlqqlFFIuOqv0a1ZEZrUkWICLLFW266y1KvWE1zV/iDAH1EopnVLCiygZCIom 47 | H3NCKX0lnI+B1iuuzCGTxwXjnDO4d7NpbX42YJJHkBwmAm2TxwAZg40J3+Xtbv1rgOAZwG0N 48 | xW62p+lT+Yi747sD/wEUVMzYmWkOvwAAACV0RVh0Q29tbWVudABjbGlwMmdpZiB2LjAuNiBi 49 | eSBZdmVzIFBpZ3VldDZzO7wAAAAASUVORK5CYII= 50 | --------------E7889DDF0F75D34163841C59-- 51 | 52 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m1014.txt: -------------------------------------------------------------------------------- 1 | Message-ID: <3923670C.67D83A99@example.com> 2 | Date: Wed, 17 May 2000 23:44:12 -0400 3 | From: Doug Sauder 4 | X-Mailer: Mozilla 4.7 [en] (WinNT; I) 5 | X-Accept-Language: en 6 | MIME-Version: 1.0 7 | To: Joe Blow 8 | Subject: Test message from Netscape Communicator 4.7 9 | Content-Type: multipart/mixed; 10 | boundary="------------177483472E7788F4AD46AB1A" 11 | 12 | This is a multi-part message in MIME format. 13 | --------------177483472E7788F4AD46AB1A 14 | Content-Type: text/plain; charset=us-ascii 15 | Content-Transfer-Encoding: 7bit 16 | 17 | 18 | The Hare and the Tortoise 19 | 20 | A HARE one day ridiculed the short feet and slow pace of the Tortoise, 21 | who replied, laughing: "Though you be swift as the wind, I will beat 22 | you in a race." The Hare, believing her assertion to be simply 23 | impossible, assented to the proposal; and they agreed that the Fox 24 | should choose the course and fix the goal. On the day appointed for the 25 | race the two started together. The Tortoise never for a moment stopped, 26 | but went on with a slow but steady pace straight to the end of the 27 | course. The Hare, lying down by the wayside, fell fast asleep. At last 28 | waking up, and moving as fast as he could, he saw the Tortoise had 29 | reached the goal, and was comfortably dozing after her fatigue. 30 | 31 | Slow but steady wins the race. 32 | --------------177483472E7788F4AD46AB1A 33 | Content-Type: image/png; 34 | name="redball.png" 35 | Content-Transfer-Encoding: x-uuencode 36 | Content-Disposition: inline; 37 | filename="redball.png" 38 | 39 | begin 644 redball.png 40 | MB5!.1PT*&@H -24A$4@ !L ;" , "Z"@1G # %!,5$7___\ 41 | M ! + 5 : 7 1 * # < R !$ !- !( ] C 42 | M 6 F !A ![ "& "' !] !T !@ Y 4 & G !+ !O 43 | M "0 "E "[ "_ "K "A ", !S !; N ( !, !W "9 "T 44 | M&1G*.#C5/3W;*2G=!06X "H !Y Q 8 $ !% ": "[)"3186'? 45 | MA(3F?W_F5E;J'Q_2 "Y "C != !" H ) !G "Z#P_05%3>DY/E 46 | MK*SIF9GM967O)277 #! "Q "< !M !3 V ; % !* "! #+ 47 | M("#=9V?HG)SKIJ;MBHKO45'O%!31 ## "V !X !> ! B !7 "2 48 | M #" #:&QOH557L>'CO>'CO5U?O)B;A #. "W "G "5 !' K / 49 | M "= #% #A!07K*"CO/#SO-37O&QOC #0 #) "U "7 "$ !L !/ 50 | M 2 " !B #I #O @+G #8 #+ "Z "P !P 3 D !8 #( 51 | M #3 #- "S "# !N > !^ # "D "- !_ !I !0 P "1 52 | M "I "\ "J "; !E !) J . T "L "O "M "F ") !Z 53 | M !K !: ^ I !J "" "? "> "6 "/ !\ 9 ' !5 ". 54 | M "* X 0 _ !R " !< W L !F !# !6 @ S \ 55 | M Z ? , = - 56 | M 57 | M #\ 58 | M+ME% 7123E, 0.;89@ !9T15AT4V]F='=AOF@ ((241!5'B<8V" @_\0P( !F)A96%G9V#DX,:4YN+AY>'GY^+D% 60 | M!#E0)?\S"_$(BXB*B4M(\DH)2?D%A47%R26E9E$=Y1258[C^3D&15=4UM77U#8U.SJWW[10_(IZTQ.W@($E7_+;BD#F\3WZ*P;-F1H[.WSI'D/29P'!J+__\? 68 | MESUQV..DR*)3B[:J;SNM?49(V@(N%\%VEK_#Y=PV^?9=PIE\85.E(^")X_]_ 69 | MCH.R8>=Y0S,OA&JGFV5T6B"EF___#TE?7'M)ZO+E*]P[KQ[O0DY20);%M2FL 70 | MUR]>O7B=[09:<@.QF2QDM-S=M2PP4^)_5(":"/%(84W7 )A(.MC?YL?R 71 | M)71%6'1#;VUM96YT &-L:7 R9VEF('8N,"XV(&)Y(%EV97,@4&EG=65T-G,[ 72 | -O !)14Y$KD)@@@ 73 | end 74 | 75 | --------------177483472E7788F4AD46AB1A 76 | Content-Type: image/png; 77 | name="greenball.png" 78 | Content-Transfer-Encoding: x-uuencode 79 | Content-Disposition: inline; 80 | filename="greenball.png" 81 | 82 | begin 644 greenball.png 83 | MB5!.1PT*&@H -24A$4@ !L ;" , "Z"@1G # %!,5$7___\ 84 | M $ & (0 " ,0 0@ 4@ 6@ 2@ (8P (

P 0C (:P 85 | M.0 8P 0E 0G AI0 0I0 AK0!"O1ACQC%CQCE2QB$IS@ 8O0 0K0 8K0 A 86 | MO0"4UF.MUGN$UE)*WA@AU@ 8Q@ 8M0 *0!"SA#.YY3>YZW&YY24YV-2YR$A 87 | MW@ 8S@!2WB&KRU;5>]/60 ]SX,0^'\8HC[& 29]Y('?:!&F+.2< 104 | MAR(@R.NVVF@02C4<#N-8#:LMN[^]G#XU-FDB)VC_PW8#K614(E9K+_6\Z7)DR)5 107 | M&]$:$C(QV7R9F9)&BH>4:+^V 8\38\HF1ZGD+*AN[TSC4*5)7LIWJN2V#52) 108 | M6-AWSS)*"R>Q(T9Q!/W:?$T$ERJ.E9)RP\KW!$V2%B)"RQ XWX2"D@ZY1A=> 109 | M0!EC0M"@W]+6K ]T1##&U$6K84.VWA, -4*11EZU$YV]<1^^#V&Y+*TTV=K_ 110 | MJK>-T@@L+ "5T15AT0V]M;65N= !C;&EP,F=I 111 | F9B!V+C N-B!B>2!9=F5S(%!I9W5E=#9S.[P 245.1*Y"8(( 112 | end 113 | 114 | --------------177483472E7788F4AD46AB1A 115 | Content-Type: image/png; 116 | name="blueball.png" 117 | Content-Transfer-Encoding: x-uuencode 118 | Content-Disposition: inline; 119 | filename="blueball.png" 120 | 121 | begin 644 blueball.png 122 | MB5!.1PT*&@H -24A$4@ !L ;" , "Z"@1G # %!,5$7___\ 123 | M @ ! !@ ""D $$( $$H "#$ $%(((7,(*7L(*80((6L &%H "#D( 124 | M(6,0.9P80J480JT80K40.:40,90 &%(0,8PI4K4Y8\8Y8\XI6LX82LX80LX8 125 | M0KU":\9[G-:\ZMSMZESN]:C.\0,9Q:A-:MUN?.[^^,O>]*>^\8.:482L:, 127 | MO>>UY^^4O>\ "E:C.=SI>]KG.\(*8PQ8^\I6N\((7L 128 | M 129 | M 130 | M 131 | M 132 | M 133 | M 134 | M 135 | M 136 | M 137 | M 138 | M 139 | M #! 140 | M,@U5 7123E, 0.;89@ !9T15AT4V]F='=AOF@ &(241!5'B<==)M5YLP& ;@$DZ )A!2DX;,"4RG!2+:JHO;K&_; 142 | M?/G_ORA[TE;LL<>;+YQSG3LAY!F-A@0H1"APHYT$.(HA48+#CXS'A*80DK$H 143 | M0=OHT(*,54I*9+0#>J23(LO^U\/RJJ64PV(!L1,[WT[//I^?#)K6MGI 144 | M+#)O>P8QG>P?GO:G9^?SIFP7BC"\*;J$:W%QV??]U8]Y4]7"4I:#>0PB,I'7 145 | M/_O^U^^;65/60H&%:PMCNKR]OKN_?_"U5B[>S3T66I0'?_[^N_&[U:+3A*_, 146 | MC1QF3Z*=S9]?&D]R:M,L3@9+EW75@%1 "ZLIC_UW>GLLJ)5M65:W-=!2:<+\ 147 | M^59F8J*F==U"28H.B,.2&PMSEJJE%%(N.JOT:U9$9K4D6("++%6VZZRU*O6$ 148 | MUS5_B# 'U$HIG5+"BR@9"(HF'W-"*7TEG(^!UBNNS"&3QP7CG#.X=[-I;7XV 149 | M8))'D!PF FV3QP 9@XT)W^7M;OUK@. 9P&T-Q6ZVI^E3^8B[X[L#_P$45,S8 150 | MF6D.OP "5T15AT0V]M;65N= !C;&EP,F=I9B!V+C N-B!B>2!9=F5S(%!I 151 | 49W5E=#9S.[P 245.1*Y"8(( 152 | end 153 | 154 | --------------177483472E7788F4AD46AB1A-- 155 | 156 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m1015.txt: -------------------------------------------------------------------------------- 1 | Message-ID: <392367BC.3D075C95@example.com> 2 | Date: Wed, 17 May 2000 23:47:08 -0400 3 | From: Doug Sauder 4 | X-Mailer: Mozilla 4.7 [en] (WinNT; I) 5 | X-Accept-Language: en 6 | MIME-Version: 1.0 7 | To: Joe Blow 8 | Subject: Test message from Netscape Communicator 4.7 9 | Content-Type: multipart/mixed; 10 | boundary="------------CA611088711119FBDB3473B4" 11 | 12 | This is a multi-part message in MIME format. 13 | --------------CA611088711119FBDB3473B4 14 | Content-Type: text/plain; charset=us-ascii 15 | Content-Transfer-Encoding: 7bit 16 | 17 | 18 | The Hare and the Tortoise 19 | 20 | A HARE one day ridiculed the short feet and slow pace of the Tortoise, 21 | who replied, laughing: "Though you be swift as the wind, I will beat 22 | you in a race." The Hare, believing her assertion to be simply 23 | impossible, assented to the proposal; and they agreed that the Fox 24 | should choose the course and fix the goal. On the day appointed for the 25 | race the two started together. The Tortoise never for a moment stopped, 26 | but went on with a slow but steady pace straight to the end of the 27 | course. The Hare, lying down by the wayside, fell fast asleep. At last 28 | waking up, and moving as fast as he could, he saw the Tortoise had 29 | reached the goal, and was comfortably dozing after her fatigue. 30 | 31 | Slow but steady wins the race. 32 | --------------CA611088711119FBDB3473B4 33 | Content-Type: text/plain; charset=iso-8859-1; 34 | name="=?iso-8859-1?Q?HasenundFr=F6sche=2Etxt?=" 35 | Content-Transfer-Encoding: quoted-printable 36 | Content-Disposition: inline; 37 | filename="=?iso-8859-1?Q?HasenundFr=F6sche=2Etxt?=" 38 | 39 | Die Hasen und die Fr=F6sche 40 | 41 | Die Hasen klagten einst =FCber ihre mi=DFliche Lage; "wir leben", sprach = 42 | ein Redner, "in steter Furcht vor Menschen und Tieren, eine Beute der Hun= 43 | de, der Adler, ja fast aller Raubtiere! Unsere stete Angst ist =E4rger al= 44 | s der Tod selbst. Auf, la=DFt uns ein f=FCr allemal sterben." = 45 | 46 | 47 | In einem nahen Teich wollten sie sich nun ers=E4ufen; sie eilten ihm zu; = 48 | allein das au=DFerordentliche Get=F6se und ihre wunderbare Gestalt erschr= 49 | eckte eine Menge Fr=F6sche, die am Ufer sa=DFen, so sehr, da=DF sie aufs = 50 | schnellste untertauchten. = 51 | 52 | 53 | "Halt", rief nun eben dieser Sprecher, "wir wollen das Ers=E4ufen noch ei= 54 | n wenig aufschieben, denn auch uns f=FCrchten, wie ihr seht, einige Tiere= 55 | , welche also wohl noch ungl=FCcklicher sein m=FCssen als wir." = 56 | 57 | 58 | 59 | --------------CA611088711119FBDB3473B4-- 60 | 61 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m1016.txt: -------------------------------------------------------------------------------- 1 | Message-ID: <3923686C.99FB5E36@example.com> 2 | Date: Wed, 17 May 2000 23:50:04 -0400 3 | From: Doug Sauder 4 | X-Mailer: Mozilla 4.7 [en] (WinNT; I) 5 | X-Accept-Language: en 6 | MIME-Version: 1.0 7 | To: Joe Blow 8 | Subject: Test message from Netscape Communicator 4.7 9 | Content-Type: multipart/mixed; 10 | boundary="------------77060D866A66DC8D0921E051" 11 | 12 | This is a multi-part message in MIME format. 13 | --------------77060D866A66DC8D0921E051 14 | Content-Type: text/plain; charset=us-ascii 15 | Content-Transfer-Encoding: 7bit 16 | 17 | 18 | The Hare and the Tortoise 19 | 20 | A HARE one day ridiculed the short feet and slow pace of the Tortoise, 21 | who replied, laughing: "Though you be swift as the wind, I will beat 22 | you in a race." The Hare, believing her assertion to be simply 23 | impossible, assented to the proposal; and they agreed that the Fox 24 | should choose the course and fix the goal. On the day appointed for the 25 | race the two started together. The Tortoise never for a moment stopped, 26 | but went on with a slow but steady pace straight to the end of the 27 | course. The Hare, lying down by the wayside, fell fast asleep. At last 28 | waking up, and moving as fast as he could, he saw the Tortoise had 29 | reached the goal, and was comfortably dozing after her fatigue. 30 | 31 | Slow but steady wins the race. 32 | --------------77060D866A66DC8D0921E051 33 | Content-Type: text/plain; charset=us-ascii; 34 | name="farmerandstork.txt" 35 | Content-Transfer-Encoding: 7bit 36 | Content-Disposition: inline; 37 | filename="farmerandstork.txt" 38 | 39 | 40 | The Farmer and the Stork 41 | 42 | A FARMER placed nets on his newly-sown plowlands and caught a 43 | number of Cranes, which came to pick up his seed. With them he 44 | trapped a Stork that had fractured his leg in the net and was 45 | earnestly beseeching the Farmer to spare his life. "Pray save 46 | me, Master," he said, "and let me go free this once. My broken 47 | limb should excite your pity. Besides, I am no Crane, I am a 48 | Stork, a bird of excellent character; and see how I love and 49 | slave for my father and mother. Look too, at my feathers-- 50 | they are not the least like those of a Crane." The Farmer 51 | laughed aloud and said, "It may be all as you say, I only know 52 | this: I have taken you with these robbers, the Cranes, and you 53 | must die in their company." 54 | 55 | Birds of a feather flock together. 56 | 57 | --------------77060D866A66DC8D0921E051-- 58 | 59 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m2001.txt: -------------------------------------------------------------------------------- 1 | Message-Id: <4.2.0.58.20000519001217.00a85b60@pop.example.com> 2 | X-Sender: dwsauder@pop.example.com (Unverified) 3 | X-Mailer: QUALCOMM Windows Eudora Pro Version 4.2.0.58 4 | Date: Fri, 19 May 2000 00:17:39 -0400 5 | To: =?iso-8859-1?Q?J=FCrgen?= =?iso-8859-1?Q?_Schm=FCrgen?= 6 | 7 | From: Doug Sauder 8 | Subject: =?iso-8859-1?Q?Die_Hasen_und_die_Fr=F6sche?= 9 | Mime-Version: 1.0 10 | Content-Type: text/plain; charset="iso-8859-1" 11 | Content-Transfer-Encoding: quoted-printable 12 | 13 | Die Hasen und die Fr=F6sche 14 | 15 | Die Hasen klagten einst =FCber ihre mi=DFliche Lage; "wir leben", sprach ein= 16 | Redner, "in steter Furcht vor Menschen und Tieren, eine Beute der Hunde,= 17 | der Adler, ja fast aller Raubtiere! Unsere stete Angst ist =E4rger als der= 18 | Tod selbst. Auf, la=DFt uns ein f=FCr allemal sterben."=20 19 | 20 | In einem nahen Teich wollten sie sich nun ers=E4ufen; sie eilten ihm zu;= 21 | allein das au=DFerordentliche Get=F6se und ihre wunderbare Gestalt= 22 | erschreckte eine Menge Fr=F6sche, die am Ufer sa=DFen, so sehr, da=DF sie= 23 | aufs schnellste untertauchten.=20 24 | 25 | "Halt", rief nun eben dieser Sprecher, "wir wollen das Ers=E4ufen noch ein= 26 | wenig aufschieben, denn auch uns f=FCrchten, wie ihr seht, einige Tiere,= 27 | welche also wohl noch ungl=FCcklicher sein m=FCssen als wir."=20 28 | 29 | 30 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m2002.txt: -------------------------------------------------------------------------------- 1 | Message-Id: <4.2.0.58.20000519002557.00a88870@pop.example.com> 2 | X-Sender: dwsauder@pop.example.com (Unverified) 3 | X-Mailer: QUALCOMM Windows Eudora Pro Version 4.2.0.58 4 | X-Priority: 2 (High) 5 | Date: Fri, 19 May 2000 00:29:55 -0400 6 | To: Heinz =?iso-8859-1?Q?M=FCller?= 7 | From: Doug Sauder 8 | Subject: =?iso-8859-1?Q?Die_Hasen_und_die_Fr=F6sche?= 9 | Mime-Version: 1.0 10 | Content-Type: multipart/alternative; 11 | boundary="=====================_714967308==_.ALT" 12 | 13 | --=====================_714967308==_.ALT 14 | Content-Type: text/plain; charset="iso-8859-1" 15 | Content-Transfer-Encoding: quoted-printable 16 | 17 | Die Hasen und die Fr=F6sche 18 | 19 | Die Hasen klagten einst =FCber ihre mi=DFliche Lage; "wir leben", sprach ein= 20 | Redner, "in steter Furcht vor Menschen und Tieren, eine Beute der Hunde,= 21 | der Adler, ja fast aller Raubtiere! Unsere stete Angst ist =E4rger als der= 22 | Tod selbst. Auf, la=DFt uns ein f=FCr allemal sterben."=20 23 | 24 | In einem nahen Teich wollten sie sich nun ers=E4ufen; sie eilten ihm zu;= 25 | allein das au=DFerordentliche Get=F6se und ihre wunderbare Gestalt= 26 | erschreckte eine Menge Fr=F6sche, die am Ufer sa=DFen, so sehr, da=DF sie= 27 | aufs schnellste untertauchten.=20 28 | 29 | "Halt", rief nun eben dieser Sprecher, "wir wollen das Ers=E4ufen noch ein= 30 | wenig aufschieben, denn auch uns f=FCrchten, wie ihr seht, einige Tiere,= 31 | welche also wohl noch ungl=FCcklicher sein m=FCssen als wir."=20 32 | 33 | 34 | --=====================_714967308==_.ALT 35 | Content-Type: text/html; charset="iso-8859-1" 36 | Content-Transfer-Encoding: quoted-printable 37 | 38 | 39 | Die Hasen und = 40 | die 41 | Fr=F6sche
42 |
43 |
Die Hasen klagten einst =FCber 44 | ihre mi=DFliche Lage; "wir leben", sprach ein Redner, "in 45 | steter Furcht vor Menschen und Tieren, eine Beute der Hunde, der Adler, 46 | ja fast aller Raubtiere! Unsere stete Angst ist =E4rger als der Tod selbst. 47 | Auf, la=DFt uns ein f=FCr allemal sterben."
48 |
49 | In einem nahen Teich wollten sie sich nun ers=E4ufen; sie eilten ihm zu; 50 | allein das au=DFerordentliche Get=F6se und ihre wunderbare Gestalt 51 | erschreckte eine Menge Fr=F6sche, die am Ufer sa=DFen, so sehr, da=DF sie au= 52 | fs 53 | schnellste untertauchten.
54 |
55 | "Halt", rief nun eben dieser Sprecher, "wir wollen das 56 | Ers=E4ufen noch ein wenig aufschieben, denn auch uns f=FCrchten, wie ihr 57 | seht, einige Tiere, welche also wohl noch ungl=FCcklicher sein m=FCssen als 58 | wir."
59 |
60 |
61 | 62 | --=====================_714967308==_.ALT-- 63 | 64 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m2003.txt: -------------------------------------------------------------------------------- 1 | Message-Id: <4.2.0.58.20000519003052.00a89c40@pop.example.com> 2 | X-Sender: dwsauder@pop.example.com (Unverified) 3 | X-Mailer: QUALCOMM Windows Eudora Pro Version 4.2.0.58 4 | X-Priority: 2 (High) 5 | Date: Fri, 19 May 2000 00:31:00 -0400 6 | To: Heinz =?iso-8859-1?Q?M=FCller?= 7 | From: Doug Sauder 8 | Subject: =?iso-8859-1?Q?Die_Hasen_und_die_Fr=F6sche?= 9 | Mime-Version: 1.0 10 | Content-Type: text/html; charset="iso-8859-1" 11 | Content-Transfer-Encoding: quoted-printable 12 | 13 | 14 | Die Hasen und = 15 | die 16 | Fr=F6sche
17 |
18 |
Die Hasen klagten einst =FCber 19 | ihre mi=DFliche Lage; "wir leben", sprach ein Redner, "in 20 | steter Furcht vor Menschen und Tieren, eine Beute der Hunde, der Adler, 21 | ja fast aller Raubtiere! Unsere stete Angst ist =E4rger als der Tod selbst. 22 | Auf, la=DFt uns ein f=FCr allemal sterben."
23 |
24 | In einem nahen Teich wollten sie sich nun ers=E4ufen; sie eilten ihm zu; 25 | allein das au=DFerordentliche Get=F6se und ihre wunderbare Gestalt 26 | erschreckte eine Menge Fr=F6sche, die am Ufer sa=DFen, so sehr, da=DF sie au= 27 | fs 28 | schnellste untertauchten.
29 |
30 | "Halt", rief nun eben dieser Sprecher, "wir wollen das 31 | Ers=E4ufen noch ein wenig aufschieben, denn auch uns f=FCrchten, wie ihr 32 | seht, einige Tiere, welche also wohl noch ungl=FCcklicher sein m=FCssen als 33 | wir."
34 |
35 |
36 | 37 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m2004.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gotthardp/rabbitmq-email/429cfad8dc0378a4c824cd099e67d114d1de0b9f/test/system_SUITE_data/samples/messages/m2004.txt -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m2005.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gotthardp/rabbitmq-email/429cfad8dc0378a4c824cd099e67d114d1de0b9f/test/system_SUITE_data/samples/messages/m2005.txt -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m2006.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gotthardp/rabbitmq-email/429cfad8dc0378a4c824cd099e67d114d1de0b9f/test/system_SUITE_data/samples/messages/m2006.txt -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m2007.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gotthardp/rabbitmq-email/429cfad8dc0378a4c824cd099e67d114d1de0b9f/test/system_SUITE_data/samples/messages/m2007.txt -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m2008.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gotthardp/rabbitmq-email/429cfad8dc0378a4c824cd099e67d114d1de0b9f/test/system_SUITE_data/samples/messages/m2008.txt -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m2009.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gotthardp/rabbitmq-email/429cfad8dc0378a4c824cd099e67d114d1de0b9f/test/system_SUITE_data/samples/messages/m2009.txt -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m2010.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gotthardp/rabbitmq-email/429cfad8dc0378a4c824cd099e67d114d1de0b9f/test/system_SUITE_data/samples/messages/m2010.txt -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m2011.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gotthardp/rabbitmq-email/429cfad8dc0378a4c824cd099e67d114d1de0b9f/test/system_SUITE_data/samples/messages/m2011.txt -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m2012.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gotthardp/rabbitmq-email/429cfad8dc0378a4c824cd099e67d114d1de0b9f/test/system_SUITE_data/samples/messages/m2012.txt -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m2013.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gotthardp/rabbitmq-email/429cfad8dc0378a4c824cd099e67d114d1de0b9f/test/system_SUITE_data/samples/messages/m2013.txt -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m2014.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gotthardp/rabbitmq-email/429cfad8dc0378a4c824cd099e67d114d1de0b9f/test/system_SUITE_data/samples/messages/m2014.txt -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m2015.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gotthardp/rabbitmq-email/429cfad8dc0378a4c824cd099e67d114d1de0b9f/test/system_SUITE_data/samples/messages/m2015.txt -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m2016.txt: -------------------------------------------------------------------------------- 1 | Message-Id: <4.2.0.58.20000519011207.00a8cd70@pop.example.com> 2 | X-Sender: dwsauder@pop.example.com (Unverified) 3 | X-Mailer: QUALCOMM Windows Eudora Pro Version 4.2.0.58 4 | X-Priority: 5 (Lowest) 5 | Date: Fri, 19 May 2000 01:13:19 -0400 6 | To: Joe Blow 7 | From: Doug Sauder 8 | Subject: The Hare and the Tortoise 9 | Mime-Version: 1.0 10 | Content-Type: text/plain; charset="us-ascii" 11 | 12 | 13 | The Hare and the Tortoise 14 | 15 | A HARE one day ridiculed the short feet and slow pace of the Tortoise, who replied, laughing: "Though you be swift as the wind, I will beat you in a race." The Hare, believing her assertion to be simply impossible, assented to the proposal; and they agreed that the Fox should choose the course and fix the goal. On the day appointed for the race the two started together. The Tortoise never for a moment stopped, but went on with a slow but steady pace straight to the end of the course. The Hare, lying down by the wayside, fell fast asleep. At last waking up, and moving as fast as he could, he saw the Tortoise had reached the goal, and was comfortably dozing after her fatigue. 16 | 17 | Slow but steady wins the race. 18 | 19 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m3001.txt: -------------------------------------------------------------------------------- 1 | Date: Fri, 19 May 2000 09:55:48 -0400 (EDT) 2 | From: Doug Sauder 3 | To: Joe Blow 4 | Subject: Test message from PINE 5 | Message-ID: 6 | MIME-Version: 1.0 7 | Content-Type: MULTIPART/MIXED; BOUNDARY="-1463757054-952513540-958744548=:8452" 8 | 9 | This message is in MIME format. The first part should be readable text, 10 | while the remaining parts are likely unreadable without MIME-aware tools. 11 | Send mail to mime@docserver.cac.washington.edu for more info. 12 | 13 | ---1463757054-952513540-958744548=:8452 14 | Content-Type: TEXT/PLAIN; charset=US-ASCII 15 | 16 | This is a test message from PINE MUA. 17 | 18 | 19 | ---1463757054-952513540-958744548=:8452 20 | Content-Type: APPLICATION/octet-stream; name="redball.png" 21 | Content-Transfer-Encoding: BASE64 22 | Content-ID: 23 | Content-Description: A PNG graphic file 24 | Content-Disposition: attachment; filename="redball.png" 25 | 26 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8A 27 | AAABAAALAAAVAAAaAAAXAAARAAAKAAADAAAcAAAyAABEAABNAABIAAA9AAAj 28 | AAAWAAAmAABhAAB7AACGAACHAAB9AAB0AABgAAA5AAAUAAAGAAAnAABLAABv 29 | AACQAAClAAC7AAC/AACrAAChAACMAABzAABbAAAuAAAIAABMAAB3AACZAAC0 30 | GRnKODjVPT3bKSndBQW4AACoAAB5AAAxAAAYAAAEAABFAACaAAC7JCTRYWHf 31 | hITmf3/mVlbqHx/SAAC5AACjAABdAABCAAAoAAAJAABnAAC6Dw/QVFTek5Pl 32 | rKzpmZntZWXvJSXXAADBAACxAACcAABtAABTAAA2AAAbAAAFAABKAACBAADL 33 | ICDdZ2fonJzrpqbtiorvUVHvFBTRAADDAAC2AAB4AABeAABAAAAiAABXAACS 34 | AADCAADaGxvoVVXseHjveHjvV1fvJibhAADOAAC3AACnAACVAABHAAArAAAP 35 | AACdAADFAADhBQXrKCjvPDzvNTXvGxvjAADQAADJAAC1AACXAACEAABsAABP 36 | AAASAAACAABiAADpAADvAgLnAADYAADLAAC6AACwAABwAAATAAAkAABYAADI 37 | AADTAADNAACzAACDAABuAAAeAAB+AADAAACkAACNAAB/AABpAABQAAAwAACR 38 | AACpAAC8AACqAACbAABlAABJAAAqAAAOAAA0AACsAACvAACtAACmAACJAAB6 39 | AABrAABaAAA+AAApAABqAACCAACfAACeAACWAACPAAB8AAAZAAAHAABVAACO 40 | AACKAAA4AAAQAAA/AAByAACAAABcAAA3AAAsAABmAABDAABWAAAgAAAzAAA8 41 | AAA6AAAfAAAMAAAdAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 42 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 43 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8 44 | LtlFAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAu 45 | MT1evmgAAAIISURBVHicY2CAg/8QwIABmJhZWFnZ2Dk4MaU5uLh5eHn5+LkF 46 | BDlQJf8zC/EIi4iKiUtI8koJScsgyf5nlpWTV1BUUlZRVVPX4NFk1UJIyghp 47 | 6+jq6RsYGhmbKJgK85mZW8Dk/rNaSlhZ29ja2Ts4Ojkr6Li4urFDNf53N/Ow 48 | 8vTy9vH18w8IDAoWDQkNC4+ASP5ni4wKio6JjYtPSExKTnFWSE1LF4A69n9G 49 | ZlZ2Tm5efkFhUXFySWlZlEd5RSVY7j+TkGRVdU1tXX1DY1Ozcktpa1t7h2Yn 50 | OAj+d7l1tyo79vT29SdNSJ44SbFVdHIo9xSIHNPUaWqTpifNSJrZnK00S0U1 51 | a/acUG5piNz/uXLzVJ2qm6dXz584S2WB1cJFi5cshZr539xVftnyFKUVTi2T 52 | VjqvyhJLXb1m7TqoHPt6F/HW0g0bN63crGqVtWXrtu07BJihcsw71+zanRW8 53 | Z89eq337RQ/Ip60xO3gIElX/LbikDm8T36KwbNmRo7O3zpHkPSZwHBqL//8f 54 | lz1x2OOkyKJTi7aqbzutfUZI2gIuF8F2lr/D5dw2+fZdwpl8YVOlI+CJ4/9/ 55 | joOyYed5QzMvhGqnm2V0WiClm///D0lfXHtJ6vLlK9w7rx7vQk5SQJbFtSms 56 | 1y9evXid7QZacgOxmSxktNzdtSwwU+J/VICaCPFIYU3XAJhIOtjf5sfyAAAA 57 | JXRFWHRDb21tZW50AGNsaXAyZ2lmIHYuMC42IGJ5IFl2ZXMgUGlndWV0NnM7 58 | vAAAAABJRU5ErkJggg== 59 | ---1463757054-952513540-958744548=:8452 60 | Content-Type: APPLICATION/octet-stream; name="blueball.png" 61 | Content-Transfer-Encoding: BASE64 62 | Content-ID: 63 | Content-Description: A PNG graphic file 64 | Content-Disposition: attachment; filename="blueball.png" 65 | 66 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8A 67 | AAgAABAAABgAAAAACCkAEEIAEEoACDEAEFIIIXMIKXsIKYQIIWsAGFoACDkI 68 | IWMQOZwYQqUYQq0YQrUQOaUQMZQAGFIQMYwpUrU5Y8Y5Y84pWs4YSs4YQs4Y 69 | Qr1Ca8Z7nNacvd6Mtd5jlOcxa94hUt4YStYYQsYQMaUAACHO5+/n7++cxu9S 70 | hO8pWucQOa1Ke86tzt6lzu9ajO8QMZxahNat1ufO7++Mve9Ke+8YOaUYSsaM 71 | vee15++Uve8AAClajOdzpe9rnO8IKYwxY+8pWu8IIXsAAAAAAAAAAAAAAAAA 72 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 73 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 74 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 75 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 76 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 77 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 78 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 79 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 80 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 81 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 82 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 83 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADB 84 | Mg1VAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAu 85 | MT1evmgAAAGISURBVHicddJtV5swGAbgEk6AJhBSk4bMCUynBSLaqovbrG/b 86 | fPn/vyh70lbsscebL5xznTsh5BmNhgQoRChwo50EOIohUYLDj4zHhKYQkrEo 87 | Qdvock4ne0IKMVUpKZLQDeqSTIsv+18PyqqWUw2IBsRM7307PPp+fDJrWtnp 88 | LDJvewYxnewfnvanZ+fzpmwXijC8KbqEa3Fx2ff91Y95U9XCUpaDeQwiMpHX 89 | P/v+1++bWVPWQoGFawtjury9vru/f/C1Vi7ezT0WWpQHf/7+u/G71aLThK/M 90 | jRxmT6KdzZ9fGk9yatMsTgZLl3XVgFRAC6spj/13enssqJVtWVa3NdBSacL8 91 | +VZmYqKmdd1CSYoOiMOSGwtzlqqlFFIuOqv0a1ZEZrUkWICLLFW266y1KvWE 92 | 1zV/iDAH1EopnVLCiygZCIomH3NCKX0lnI+B1iuuzCGTxwXjnDO4d7NpbX42 93 | YJJHkBwmAm2TxwAZg40J3+Xtbv1rgOAZwG0NxW62p+lT+Yi747sD/wEUVMzY 94 | mWkOvwAAACV0RVh0Q29tbWVudABjbGlwMmdpZiB2LjAuNiBieSBZdmVzIFBp 95 | Z3VldDZzO7wAAAAASUVORK5CYII= 96 | ---1463757054-952513540-958744548=:8452-- 97 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m3002.txt: -------------------------------------------------------------------------------- 1 | Date: Fri, 19 May 2000 10:18:03 -0400 (EDT) 2 | From: Doug Sauder 3 | To: =?iso-8859-1?Q?J=FCrgen_Schm=FCrgen?= 4 | Subject: =?iso-8859-1?Q?Die_Hasen_und_die_Fr=F6sche?= 5 | Message-ID: 6 | MIME-Version: 1.0 7 | Content-Type: TEXT/PLAIN; charset=iso-8859-1 8 | Content-Transfer-Encoding: QUOTED-PRINTABLE 9 | 10 | Die Hasen und die Fr=F6sche 11 | 12 | Die Hasen klagten einst =FCber ihre mi=DFliche Lage; "wir leben", sprach ei= 13 | n Redner, "in steter Furcht vor Menschen und Tieren, eine Beute der Hunde, = 14 | der Adler, ja fast aller Raubtiere! Unsere stete Angst ist =E4rger als der = 15 | Tod selbst. Auf, la=DFt uns ein f=FCr allemal sterben."=20 16 | 17 | In einem nahen Teich wollten sie sich nun ers=E4ufen; sie eilten ihm zu; al= 18 | lein das au=DFerordentliche Get=F6se und ihre wunderbare Gestalt erschreckt= 19 | e eine Menge Fr=F6sche, die am Ufer sa=DFen, so sehr, da=DF sie aufs schnel= 20 | lste untertauchten.=20 21 | 22 | "Halt", rief nun eben dieser Sprecher, "wir wollen das Ers=E4ufen noch ein = 23 | wenig aufschieben, denn auch uns f=FCrchten, wie ihr seht, einige Tiere, we= 24 | lche also wohl noch ungl=FCcklicher sein m=FCssen als wir."=20 25 | 26 | 27 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m3003.txt: -------------------------------------------------------------------------------- 1 | Date: Fri, 19 May 2000 10:23:16 -0400 (EDT) 2 | From: Doug Sauder 3 | To: =?iso-8859-1?Q?Heinz_M=FCller?= 4 | Subject: PNG graphic 5 | Message-ID: 6 | MIME-Version: 1.0 7 | Content-Type: MULTIPART/MIXED; BOUNDARY="-1463757054-170444605-958746196=:8452" 8 | 9 | This message is in MIME format. The first part should be readable text, 10 | while the remaining parts are likely unreadable without MIME-aware tools. 11 | Send mail to mime@docserver.cac.washington.edu for more info. 12 | 13 | ---1463757054-170444605-958746196=:8452 14 | Content-Type: TEXT/PLAIN; charset=US-ASCII 15 | 16 | 17 | ---1463757054-170444605-958746196=:8452 18 | Content-Type: APPLICATION/octet-stream; name="redball.png" 19 | Content-Transfer-Encoding: BASE64 20 | Content-ID: 21 | Content-Description: red ball 22 | Content-Disposition: attachment; filename="redball.png" 23 | 24 | iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAADAFBMVEX///8A 25 | AAABAAALAAAVAAAaAAAXAAARAAAKAAADAAAcAAAyAABEAABNAABIAAA9AAAj 26 | AAAWAAAmAABhAAB7AACGAACHAAB9AAB0AABgAAA5AAAUAAAGAAAnAABLAABv 27 | AACQAAClAAC7AAC/AACrAAChAACMAABzAABbAAAuAAAIAABMAAB3AACZAAC0 28 | GRnKODjVPT3bKSndBQW4AACoAAB5AAAxAAAYAAAEAABFAACaAAC7JCTRYWHf 29 | hITmf3/mVlbqHx/SAAC5AACjAABdAABCAAAoAAAJAABnAAC6Dw/QVFTek5Pl 30 | rKzpmZntZWXvJSXXAADBAACxAACcAABtAABTAAA2AAAbAAAFAABKAACBAADL 31 | ICDdZ2fonJzrpqbtiorvUVHvFBTRAADDAAC2AAB4AABeAABAAAAiAABXAACS 32 | AADCAADaGxvoVVXseHjveHjvV1fvJibhAADOAAC3AACnAACVAABHAAArAAAP 33 | AACdAADFAADhBQXrKCjvPDzvNTXvGxvjAADQAADJAAC1AACXAACEAABsAABP 34 | AAASAAACAABiAADpAADvAgLnAADYAADLAAC6AACwAABwAAATAAAkAABYAADI 35 | AADTAADNAACzAACDAABuAAAeAAB+AADAAACkAACNAAB/AABpAABQAAAwAACR 36 | AACpAAC8AACqAACbAABlAABJAAAqAAAOAAA0AACsAACvAACtAACmAACJAAB6 37 | AABrAABaAAA+AAApAABqAACCAACfAACeAACWAACPAAB8AAAZAAAHAABVAACO 38 | AACKAAA4AAAQAAA/AAByAACAAABcAAA3AAAsAABmAABDAABWAAAgAAAzAAA8 39 | AAA6AAAfAAAMAAAdAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 40 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 41 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8 42 | LtlFAAAAAXRSTlMAQObYZgAAABZ0RVh0U29mdHdhcmUAZ2lmMnBuZyAyLjAu 43 | MT1evmgAAAIISURBVHicY2CAg/8QwIABmJhZWFnZ2Dk4MaU5uLh5eHn5+LkF 44 | BDlQJf8zC/EIi4iKiUtI8koJScsgyf5nlpWTV1BUUlZRVVPX4NFk1UJIyghp 45 | 6+jq6RsYGhmbKJgK85mZW8Dk/rNaSlhZ29ja2Ts4Ojkr6Li4urFDNf53N/Ow 46 | 8vTy9vH18w8IDAoWDQkNC4+ASP5ni4wKio6JjYtPSExKTnFWSE1LF4A69n9G 47 | ZlZ2Tm5efkFhUXFySWlZlEd5RSVY7j+TkGRVdU1tXX1DY1Ozcktpa1t7h2Yn 48 | OAj+d7l1tyo79vT29SdNSJ44SbFVdHIo9xSIHNPUaWqTpifNSJrZnK00S0U1 49 | a/acUG5piNz/uXLzVJ2qm6dXz584S2WB1cJFi5cshZr539xVftnyFKUVTi2T 50 | VjqvyhJLXb1m7TqoHPt6F/HW0g0bN63crGqVtWXrtu07BJihcsw71+zanRW8 51 | Z89eq337RQ/Ip60xO3gIElX/LbikDm8T36KwbNmRo7O3zpHkPSZwHBqL//8f 52 | lz1x2OOkyKJTi7aqbzutfUZI2gIuF8F2lr/D5dw2+fZdwpl8YVOlI+CJ4/9/ 53 | joOyYed5QzMvhGqnm2V0WiClm///D0lfXHtJ6vLlK9w7rx7vQk5SQJbFtSms 54 | 1y9evXid7QZacgOxmSxktNzdtSwwU+J/VICaCPFIYU3XAJhIOtjf5sfyAAAA 55 | JXRFWHRDb21tZW50AGNsaXAyZ2lmIHYuMC42IGJ5IFl2ZXMgUGlndWV0NnM7 56 | vAAAAABJRU5ErkJggg== 57 | ---1463757054-170444605-958746196=:8452-- 58 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/messages/m3004.txt: -------------------------------------------------------------------------------- 1 | Date: Fri, 19 May 2000 10:26:12 -0400 (EDT) 2 | From: Doug Sauder 3 | To: Joe Blow , 4 | =?iso-8859-1?Q?Heinz_M=FCller?= 5 | Subject: =?iso-8859-1?Q?Die_Hasen_und_die_Fr=F6sche?= 6 | Message-ID: 7 | MIME-Version: 1.0 8 | Content-Type: MULTIPART/MIXED; BOUNDARY="-1463757054-891160829-958746372=:8452" 9 | 10 | This message is in MIME format. The first part should be readable text, 11 | while the remaining parts are likely unreadable without MIME-aware tools. 12 | Send mail to mime@docserver.cac.washington.edu for more info. 13 | 14 | ---1463757054-891160829-958746372=:8452 15 | Content-Type: TEXT/PLAIN; charset=US-ASCII 16 | 17 | 18 | ---1463757054-891160829-958746372=:8452 19 | Content-Type: TEXT/PLAIN; charset=iso-8859-1; name*="iso-8859-1''HasenundFr%F6sche.txt" 20 | Content-Transfer-Encoding: BASE64 21 | Content-ID: 22 | Content-Description: Short story in German 23 | Content-Disposition: attachment; filename*="iso-8859-1''HasenundFr%F6sche.txt" 24 | 25 | RGllIEhhc2VuIHVuZCBkaWUgRnL2c2NoZQ0NCg0NCkRpZSBIYXNlbiBrbGFn 26 | dGVuIGVpbnN0IPxiZXIgaWhyZSBtad9saWNoZSBMYWdlOyAid2lyIGxlYmVu 27 | Iiwgc3ByYWNoIGVpbiBSZWRuZXIsICJpbiBzdGV0ZXIgRnVyY2h0IHZvciBN 28 | ZW5zY2hlbiB1bmQgVGllcmVuLCBlaW5lIEJldXRlIGRlciBIdW5kZSwgZGVy 29 | IEFkbGVyLCBqYSBmYXN0IGFsbGVyIFJhdWJ0aWVyZSEgVW5zZXJlIHN0ZXRl 30 | IEFuZ3N0IGlzdCDkcmdlciBhbHMgZGVyIFRvZCBzZWxic3QuIEF1ZiwgbGHf 31 | dCB1bnMgZWluIGb8ciBhbGxlbWFsIHN0ZXJiZW4uIiANDQoNDQpJbiBlaW5l 32 | bSBuYWhlbiBUZWljaCB3b2xsdGVuIHNpZSBzaWNoIG51biBlcnPkdWZlbjsg 33 | c2llIGVpbHRlbiBpaG0genU7IGFsbGVpbiBkYXMgYXXfZXJvcmRlbnRsaWNo 34 | ZSBHZXT2c2UgdW5kIGlocmUgd3VuZGVyYmFyZSBHZXN0YWx0IGVyc2NocmVj 35 | a3RlIGVpbmUgTWVuZ2UgRnL2c2NoZSwgZGllIGFtIFVmZXIgc2HfZW4sIHNv 36 | IHNlaHIsIGRh3yBzaWUgYXVmcyBzY2huZWxsc3RlIHVudGVydGF1Y2h0ZW4u 37 | IA0NCg0NCiJIYWx0IiwgcmllZiBudW4gZWJlbiBkaWVzZXIgU3ByZWNoZXIs 38 | ICJ3aXIgd29sbGVuIGRhcyBFcnPkdWZlbiBub2NoIGVpbiB3ZW5pZyBhdWZz 39 | Y2hpZWJlbiwgZGVubiBhdWNoIHVucyBm/HJjaHRlbiwgd2llIGlociBzZWh0 40 | LCBlaW5pZ2UgVGllcmUsIHdlbGNoZSBhbHNvIHdvaGwgbm9jaCB1bmds/GNr 41 | bGljaGVyIHNlaW4gbfxzc2VuIGFscyB3aXIuIiANDQoNDQo= 42 | ---1463757054-891160829-958746372=:8452-- 43 | -------------------------------------------------------------------------------- /test/system_SUITE_data/samples/readme.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | The files in this directory that match the pattern m*.txt are sample 4 | messages in MIME format from common email Mail User Agents (MUAs). 5 | 6 | I created these samples mainly for the purpose of testing my own MIME 7 | implementation, particularly for testing the decoding of encoded text 8 | in the headers (RFC 2047) and for the extraction of attachments (not 9 | covered by any standard). 10 | 11 | I used four different MUAs to create the messages. You can determine which 12 | MUA was used by looking at the file name. The breakdown is: 13 | 14 | m0*.txt -- Microsoft Outlook 00 15 | m1*.txt -- Netscape Communicator 4.7 16 | m2*.txt -- Qualcomm Eudora 4.2 17 | m3*.txt -- PINE (Linux) 18 | 19 | Of course, you can also look at the headers of the message to determine the 20 | MUA. 21 | 22 | If you want to contribute to this collection of samples, please do send 23 | your contributions. I will evaluate the contributions for inclusion in 24 | this collection. The evaluation criteria will include: 25 | 26 | * Is the MUA a mainstream MUA (not some obscure, rare MUA)? 27 | 28 | * Are the messages short? 29 | 30 | * Are the messages useful for testing? 31 | 32 | * Are the messages genuine? Messages that have been through a relaying 33 | SMTP server might have been modified. This might not disqualify a 34 | sample message, as it probably still has value for interoperability 35 | testing. 36 | 37 | When you send messages, please zip them or tar them, so that they won't be 38 | changed as they pass through the mail system. If I include your messages, 39 | I will put your name on a list of contributors, unless you prefer otherwise. 40 | 41 | I am also considering creating a separate collection of messages designed 42 | to stress test MIME implementations. So, if you have any good examples of 43 | bad messages (but not bad examples of good messages :-), feel free to send 44 | them. 45 | 46 | Not all the messages are correct to the MIME standard. However, since 47 | these messages are from popular MUAs, they can be useful for 48 | interoperability testing. Please, if you are creating messages, read and 49 | understand the standards documents, rather than imitate what you see in 50 | these messages! 51 | 52 | I have included the files that were used for creating the attachments, 53 | so you can test that you have successfully decoded the attachments. 54 | 55 | I have also included a simple Java program that I used for creating these 56 | samples. This program, SmtpServer.java, is a simple SMTP server that will 57 | receive the message directly from you MUA. This is important, because if 58 | you just route the message through your normal SMTP server, the server 59 | might make changes to the message. For example, it seems to be common for 60 | some servers to convert quoted-printable encoded text to 8-bit text.[1] 61 | This SMTP server program records the entire SMTP client/server dialog, 62 | which is great if you are trying to debug your mail system, but it also 63 | means that you will have to edit the output of the program to get just 64 | the email message. 65 | 66 | The URL for this collection of messages is 67 | 68 | 69 | 70 | 71 | 72 | 73 | ---------------------------------------------------- 74 | 75 | [1] I don't like the fact that this happens, but that's life. I guess the 76 | MTA thinks that since it can handle 8-bit text, that quoted-printable 77 | encoding is not necessary. However, quoted-printable also makes long lines 78 | into short lines, which is something other than converting to 8-bit 79 | characters. In general, I think end-to-end transparency is a good thing; 80 | anything that interferes with transparency should be avoided. 81 | -------------------------------------------------------------------------------- /test/system_SUITE_data/t0001.txt: -------------------------------------------------------------------------------- 1 | From: doug@example.com 2 | To: schmuergen@example.com 3 | 4 | -------------------------------------------------------------------------------- /test/system_SUITE_data/t0002.txt: -------------------------------------------------------------------------------- 1 | From: doug@example.com 2 | To: schmuergen@example.com 3 | Subject: =?utf-8?B?Z29iYmxlZGlnb29r?= 4 | 5 | --------------------------------------------------------------------------------