Compare commits

..

196 commits

Author SHA1 Message Date
Akolzin Dmitry
8dcbff5d4c
Merge pull request #9 from iyzoer/fixes-undefined-index
check date is null
2024-02-08 13:11:18 +03:00
Akolzin Dmitry
cd6af40196 check date is null 2024-02-08 13:09:20 +03:00
Akolzin Dmitry
521f7bcff7
Merge pull request #8 from iyzoer/fixes-undefined-index
fixes undefined property
2024-02-08 12:28:21 +03:00
Akolzin Dmitry
bcaa835898 fixes undefined property 2024-02-08 12:08:07 +03:00
Akolzin Dmitry
2f87688e3d
Merge pull request #7 from iyzoer/fixes-deprecations
add message property check, handling imap_fetchstructure errors
2024-02-07 16:25:46 +03:00
Akolzin Dmitry
370b3ed6f8 add message property check, handling imap_fetchstructure errors 2024-02-07 16:10:55 +03:00
Akolzin Dmitry
40025f2dea
Merge pull request #6 from iyzoer/warning-fixes
[fix] add subject property check
2024-02-06 09:40:10 +03:00
Akolzin Dmitry
1c0e393b13 [fix] add subject property check 2024-02-06 09:22:17 +03:00
Ichern
68cb173bc5
Merge pull request #4 from pm14kas/fix-structure-extended-notation
fixed attachment detection for rare case with multiline utf8 headers
2024-01-24 12:23:32 +03:00
Alexander Kozlov
204aa76657 fixed attachment detection for rare case with multiline utf8 headers 2024-01-24 11:09:35 +03:00
Ilyas Salikhov
3374d13e3c Remove doctype for Server:: to allow phpstan to detect right type on php 8.1+ 2024-01-19 14:06:42 +03:00
u_mulder
c957e41478 Add "from" header stub 2023-05-11 11:36:40 +03:00
u_mulder
f73071ac22 fix: Подавление warning при работе на php7 2023-03-07 12:34:10 +03:00
Alexey
848792c24a
Merge pull request #1 from u-mulder/mb-func-suppress-fix
Вместо подавления ошибки в mb_string-функциях ловим выпадающий эксепшен
2023-03-06 17:59:01 +03:00
u_mulder
229e2e8a72 fix: Вместо подавления ошибки в mb_string-функциях ловим выпадающий эксепшен 2023-03-06 17:48:54 +03:00
Alexey Chelnakov
a306ea53af fix Array and string offset access syntax with curly braces is no longer supported 2023-01-27 17:09:14 +03:00
Sergey Linnik
9ccbd2a80b fix for emails that contains another emails in rfc822 format 2020-04-09 10:28:44 +03:00
Ivan Lutokhin
2e9989dbb3 Add escape non-literal characters for name in address field 2019-03-28 17:33:29 +03:00
Sergey Linnik
dfd4cbeda0 add ability to support alternative charset names 2019-03-27 23:43:33 +03:00
Sergey Linnik
29de2a7458 fix converting to utf for some invalid byte sequences 2019-03-27 23:43:27 +03:00
Sergey Linnik
366c5dc189 Fix all non utf8 strings 2017-03-07 18:13:26 +03:00
Sergey Linnik
82d18754bc autofix utf8 strings 2017-01-30 19:59:18 +03:00
Sergey Linnik
e8c4ea7985 Merge branch 'patch-fix-empty-attachment-name' 2015-09-24 04:06:05 +03:00
Sergey Linnik
64ca07075d Merge branch 'patch-generalize-charset-convert' 2015-09-24 04:05:57 +03:00
Sergey Linnik
f2722da2b3 Generalize charset converting 2015-09-24 04:03:52 +03:00
Sergey Linnik
10954d66dd Fix empty attachment name in some cases 2015-09-16 17:31:43 +03:00
Sergey Linnik
6cb6658526 Check name and filename is empty 2015-08-25 23:38:12 +03:00
Robert Hafner
3fbee968a6 Merge pull request #147 from linniksa/patch-mime-decoder
Provide mime text decoder by RFC2047
2015-08-05 00:26:24 -07:00
Sergey Linnik
a528129d37 Provide mime text decoder by RFC2047
Replace imap_utf8, and add decode address name
2015-08-05 06:00:14 +03:00
Robert Hafner
ea3f1bbde6 Merge pull request #145 from tedious/supress_php_warning
Suppressed imap_open warning
2015-08-01 20:38:12 -07:00
Robert Hafner
f86c17e629 Suppressed imap_open warning (still throwing exception after testing return results) 2015-08-01 20:32:46 -07:00
Robert Hafner
3448bffc17 Corrected docblock formatting 2015-08-01 20:19:23 -07:00
Robert Hafner
a17ae8abbf Merge pull request #131 from Lewiscowles1986/patch-2
can now get number of messages in a sub-folder
2015-08-01 20:18:59 -07:00
Robert Hafner
55a2756d85 Merge pull request #133 from Lewiscowles1986/patch-3
speed up Auth on some servers
2015-08-01 20:16:22 -07:00
Robert Hafner
29bf5d835f Removed unused exception. 2015-08-01 20:14:17 -07:00
Robert Hafner
2255634583 Merge pull request #115 from dharyk/unsupported_encodings
Fix for unsupported encodings
2015-08-01 20:07:31 -07:00
Robert Hafner
22ae7258c2 Merge pull request #137 from tomsommer/patch-1
Fix case where imap_fetch_overview() fails and returns empty array
2015-07-09 14:18:46 -07:00
Robert Hafner
9bcd94b866 Merge pull request #139 from benr77/patch-1
Update docblock with correct return type
2015-07-09 14:17:57 -07:00
Robert Hafner
99f91b71b5 Merge pull request #136 from Prestaspirit/master
Add FT_PEEK in processStructure method
2015-07-09 14:17:33 -07:00
Ben Roberts
bafc9d5cd6 Update docblock with correct return type 2015-06-30 12:25:36 +01:00
Tom Sommer
4495b9a7ca Fix case where imap_fetch_overview() fails and returns empty array 2015-06-19 08:53:46 +02:00
Prestaspirit
61ac0f64ca Update Message.php
Hi,

I justa added FT_PEEK flag for the seen flag is not added automatically when calling the method processStructure while the message was not read
2015-06-11 22:01:59 +02:00
Robert Hafner
129e45793c Merge pull request #134 from orzilca/patch-1
Fixed issue #74
2015-06-06 23:10:48 -07:00
Robert Hafner
db525aefff Merge pull request #135 from tedious/delete_mailbox
Added delete mailbox method
2015-06-06 23:09:52 -07:00
Robert Hafner
1ca08ba104 Fixed PSR formatting 2015-06-06 22:48:30 -07:00
Robert Hafner
eb76a808d1 Merge pull request #129 from VasuLief/raw-headers
getRawHeaders
2015-06-06 22:46:20 -07:00
Robert Hafner
fe3c91d471 Merge pull request #128 from Lewiscowles1986/patch-1
Debian / Ubuntu installation NB added!
2015-06-06 22:44:56 -07:00
Robert Hafner
6baf7fe404 Merge pull request #125 from benr77/imap-separator
Added method to access mailbox properties - including IMAP separator character
2015-06-06 22:44:26 -07:00
Robert Hafner
6a794a760f Merge pull request #124 from benr77/undefined-variable-currentAddress
Fix for Undefined Variable: $currentAddress
2015-06-06 22:43:04 -07:00
Robert Hafner
0a4f339fcb Added delete mailbox method 2015-06-06 22:35:25 -07:00
Robert Hafner
02af1096b2 Merge pull request #121 from kevinsmith/feature/dedicated_body_getters
Add getPlainTextMessage and getHtmlMessage methods
2015-06-06 22:22:05 -07:00
Or Zilca
774cfb2648 Fixed issue #74
imap_savebody() causing server error
2015-05-26 12:24:14 +03:00
Lewis Cowles
a3b85d5e32 Update Server.php 2015-05-24 13:08:32 +01:00
Lewis Cowles
92105be73d PSR Madness
at least google led me to this for the cryptic messages... http://cs.sensiolabs.org/
2015-05-24 13:02:47 +01:00
Lewis Cowles
5317b9955f PSR getting on my nerves again 2015-05-24 12:53:50 +01:00
Lewis Cowles
44a2080f3e Update Server.php 2015-05-24 12:46:35 +01:00
Lewis Cowles
743ceff0de logic update (should be the last) 2015-05-24 12:41:39 +01:00
Lewis Cowles
6986ef830f Update MessageTest.php 2015-05-24 12:33:21 +01:00
Lewis Cowles
5e11d722ad logic update... 2015-05-24 12:27:42 +01:00
Lewis Cowles
470cc114b0 Logic modification 2015-05-24 12:19:25 +01:00
Lewis Cowles
d52ceb17ec Update MessageTest.php 2015-05-24 12:08:51 +01:00
Lewis Cowles
0034aa69e9 Update MessageTest.php 2015-05-24 12:05:01 +01:00
Lewis Cowles
234a771ea1 Update MessageTest.php 2015-05-24 11:56:59 +01:00
Lewis Cowles
e6f3992329 Update MessageTest.php 2015-05-24 11:53:23 +01:00
Lewis Cowles
d491510b27 Update MessageTest.php 2015-05-24 11:49:11 +01:00
Lewis Cowles
030dade51b More PSR BS! 2015-05-24 11:37:16 +01:00
Lewis Cowles
3a53e18910 PSR Nonsense strikes again... 2015-05-24 11:31:38 +01:00
Lewis Cowles
35a756ee58 I think this should fix the PSR check 2015-05-24 11:26:40 +01:00
Lewis Cowles
cce3bbcfc1 Auth speed boost 2015-05-24 11:11:32 +01:00
Lewis Cowles
53b3aabca0 updated test to encompass new numMessages syntax 2015-05-24 10:46:32 +01:00
Lewis Cowles
9c3fe885e8 Update ServerTest.php 2015-05-24 10:41:14 +01:00
Lewis Cowles
c40d2ce48c more accurate check with support for zero 2015-05-24 10:38:53 +01:00
Lewis Cowles
397b748370 can now get number of messages in a sub-folder 2015-05-23 23:10:58 +01:00
Dieter Funk
5f3a078ac5 psr fix 2015-05-12 15:47:32 +02:00
Ben Roberts
1c526b989b Fixed indentation 2015-05-12 14:30:03 +02:00
Ben Roberts
ec9c2ff671 Fixed indentation 2015-05-12 14:22:24 +02:00
Dieter Funk
8d7a9c271b use space instead of tabs as indentation 2015-05-12 13:53:59 +02:00
Dieter Funk
45b8a2d5e2 fixes 2015-05-12 13:50:00 +02:00
Dieter Funk
c8c61d017e added new function to fetch raw headers from mail 2015-05-07 09:51:13 +02:00
Lewis Cowles
ccae718aa1 Debian / Ubuntu installation NB added! 2015-05-06 13:57:13 +01:00
Robert Hafner
6a6d909c17 Merge pull request #126 from kevinsmith/hotfix/fix_reset_imapstream
Fix an issue where the IMAP stream isn't reloaded after it's lost.
2015-03-31 09:57:57 -07:00
Kevin Smith
f0b6c14632 Fix an issue where the IMAP stream isn't reloaded after it's lost.
If $this->imapStream is lost, it will return 0. These conditionals evalute 0 as a set variable, therefore they don't reload the stream even though they should.
2015-03-30 20:13:19 -05:00
Ben Roberts
545489ee10 Added method to access mailbox properties 2015-03-27 06:53:52 +01:00
Ben Roberts
6ad63d3b35 Ensure variable gets set correctly 2015-03-27 06:14:54 +01:00
Kevin Smith
fd9784d14d Update method names to refer specifically to body part of the message rather than the whole message itself. 2015-03-24 12:54:42 -05:00
Kevin Smith
0fb02cad2c Add getPlainTextMessage and getHtmlMessage methods. 2015-03-13 17:06:07 -05:00
Robert Hafner
b5b790ea75 Merge pull request #90 from guiguidu31300/master
UTF-8 Translation
2015-02-05 23:41:24 -08:00
Robert Hafner
a258847cac Fixed braces (psr goodness) 2015-02-05 23:39:31 -08:00
Robert Hafner
6f713cb97d Merge pull request #98 from gwarnants/master
Allow setFlags() to set multiple flags as an array + minor code reviews
2015-02-05 23:35:41 -08:00
Robert Hafner
413fc24ba1 Merge pull request #44 from dangerous/master
Allow the passing of connection parameters to imap_open()
2015-02-05 23:33:21 -08:00
Robert Hafner
4adad3f685 Merge pull request #96 from gpilla/master
Added check on Message::processAddressObject()
2015-02-05 23:29:37 -08:00
Miguel Guerreiro
886a1fe82e Fix for unsupported encodings
When using mb_convert_encoding, check identified charset against list of available encodings. If none match use US-ASCII if encoding is 7-bit; UTF-8 otherwise.

When using iconv, suppress errors and check if the function returns false
2015-01-27 10:04:47 +00:00
Robert Hafner
ba247b861d Merge pull request #111 from eleazan/patch-1
Update composer version
2015-01-08 09:25:15 -08:00
Andrés
ac1406f52c Update composer version
Add to readme the correct composer version
2015-01-08 10:57:19 +01:00
Robert Hafner
3c5402c0aa Merge pull request #110 from tedious/travis_updates
Updating travis-ci to test more versions and enable fast_finish
2015-01-07 19:50:36 -08:00
Robert Hafner
7b5fa936ff Fixed allowed_failures formatting 2015-01-07 19:41:48 -08:00
Robert Hafner
bc031ea316 Added fast_finish and more php versions 2015-01-07 19:39:27 -08:00
Robert Hafner
154a84fdfa Merge pull request #109 from tedious/release-0.6.1
Changed function names for cs consistency
2015-01-07 19:22:20 -08:00
Robert Hafner
741a9eabc1 Changed function names for cs consistency 2015-01-07 19:18:16 -08:00
Robert Hafner
08ff0caa1c Merge pull request #106 from luxifer/fix-message-decoding
Fix message decoding
2014-12-19 12:00:06 -05:00
Florent Viel
bcdc85d5d8 Revert "fix message decoding"
This reverts commit 378bfbdbe0.
2014-12-16 15:34:55 +01:00
Florent Viel
378bfbdbe0 fix message decoding 2014-12-16 15:04:08 +01:00
Florent Viel
6124cdef74 fix html fetch 2014-12-16 15:04:08 +01:00
Robert Hafner
933cf095b8 Merge pull request #63 from AaronVanGeffen/master
Making the sender address easily accessibly through Message::getAddresses
2014-12-01 21:21:22 -08:00
Aaron van Geffen
cc8631581b Make the sender address easily accessibly through Message::getAddresses('sender'). 2014-12-01 21:57:54 +01:00
Geoffray
928d37c25f minor regex optimization to convert br to eol 2014-11-01 09:35:31 +01:00
Geoffray
56983f0365 allow setFlags() to set multiple flags as an array 2014-11-01 09:11:38 +01:00
Geoffray
4027b05fc6 using class constants in stead of raw strings 2014-11-01 09:03:49 +01:00
Gustavo Pilla
37203c6697 Added check on Message::processAddressObject()
Added check if the mail addresses are really a email address on  Message::processAddressObject()

The error is when the address is for example: undisclosed-recipients
2014-10-22 19:30:19 -03:00
Guillaume RODRIGUEZ
989e77b758 UTF-8 Translation 2014-09-27 19:07:47 +02:00
Robert Hafner
501d5d0974 Merge pull request #88 from Xethron/catch-mb_convert_encoding-exceptions
Catch mb convert encoding exceptions
2014-09-24 23:44:51 -07:00
Bernhard Breytenbach
3e61c32056 Fix control_spaces PSR error 2014-09-25 08:09:52 +02:00
Robert Hafner
d75a7e3f5c Merge pull request #89 from tedious/dependency-update
Dependency Update
2014-09-24 18:54:51 -07:00
Robert Hafner
e8ae09423f Updated php-cs-fixer 2014-09-24 18:46:49 -07:00
Robert Hafner
40e6427cf1 Updated phpunit 2014-09-24 18:45:01 -07:00
Robert Hafner
c5ce7778ec Merge pull request #76 from Xethron/date-fix
Bugfix: Set overview/header date field to null if not set
2014-09-24 17:05:31 -07:00
Robert Hafner
04600acf8d Merge pull request #82 from Xethron/fix-attachment-encoding
Fix attachment encoding bug introduced in 6f09bdc2
2014-09-24 17:03:42 -07:00
Robert Hafner
c2f694303d Merge pull request #78 from Xethron/stream-filter-fix
Fix typo in stream filter
2014-09-24 17:01:48 -07:00
Robert Hafner
dea2cfbe86 Merge pull request #80 from vsychov/rfc822-messages
added attachment emails support
2014-09-24 16:59:49 -07:00
Robert Hafner
b406e04899 Merge pull request #79 from vsychov/master
fixed usage not-exists property
2014-09-24 16:57:55 -07:00
Robert Hafner
94f2a5fceb Merge pull request #84 from luxifer/imap-list
Add: listMailbox function
2014-09-24 16:56:53 -07:00
Robert Hafner
4de6c93e4d Merge pull request #73 from rejinka/master
Added a dependency
2014-09-24 16:54:28 -07:00
Bernhard Breytenbach
38dd385cb8 Catch exceptions from mb_convert_encoding and default to iconv 2014-09-17 21:56:59 +02:00
Florent Viel
e8843a11f2 cs fixer 2014-08-26 18:41:21 +02:00
Florent Viel
5e78459970 Fix: launch list test before create test 2014-08-26 18:25:15 +02:00
Florent Viel
8d29ddeb73 Add: listMailbox function 2014-08-26 17:59:05 +02:00
Bernhard Breytenbach
b96c24a3e9 Merge branch 'fix-attachment-encoding' 2014-08-25 14:30:00 +02:00
Bernhard Breytenbach
3e9400bfe0 Fix Attachment encoding problem when saving to disk
The case statement returned true for 0 == 'quoted-printable',
and base64 decoded all 7bit encoded attachments.
I have removed the string representations as an int is always
returned by PHP's imap functions for encoding type.
2014-08-25 14:29:36 +02:00
Bernhard Breytenbach
6a581535e4 Code cleanup for Attatchment::saveAs() 2014-08-25 14:15:35 +02:00
Viacheslav Sychov
de108c0e86 add attachment emails support 2014-08-15 17:55:19 +03:00
Viacheslav Sychov
13c7fe2d7d fixed usage not-exists property 2014-08-15 16:56:20 +03:00
Bernhard Breytenbach
03720bdb55 Merge pull request #2 from Xethron/stream-filter-fix
Fix typo in stream filter
2014-08-15 14:21:24 +02:00
Bernhard Breytenbach
b0c372ee6d Fix typo in stream filter 2014-08-15 14:16:34 +02:00
Bernhard Breytenbach
5c717c9f21 Merge pull request #1 from Xethron/date-fix
Bugfix: Set overview/header date field to null if not set
2014-08-12 12:29:45 +02:00
Bernhard Breytenbach
af5161a232 Bugfix: Set overview/header date field to null if not set 2014-08-05 14:52:29 +02:00
Robert Hafner
766db0ad3a Merge pull request #75 from Aeolun/master
Give Message class constants to access the imap flags
2014-07-28 09:41:13 -07:00
Bart Riepe
6377be4416 Give Message class constants to access the imap flags 2014-07-28 16:24:20 +09:00
Tony Lemke
9334952ad2 Added a dependency 2014-07-16 13:31:08 +02:00
Robert Hafner
8647977f38 Merge pull request #71 from skl/stream-save
Fix incorrect variable name
2014-06-29 14:00:18 -07:00
Stephen Lang
fb57c942e2 Fix incorrect variable name 2014-06-29 21:34:09 +01:00
Robert Hafner
aa5d96033f Merge pull request #70 from skl/stream-save
Implement memory-efficient streaming save
2014-06-29 10:56:10 -07:00
Stephen Lang
6f09bdc25f Implement memory-efficient streaming save 2014-06-29 18:00:39 +01:00
Robert Hafner
ca5a988e82 Merge pull request #66 from alexkavon/patch-2
Check to see if message is already encoded in utf8
2014-06-13 17:44:56 +02:00
Alex Kavon
fa5ce2ddba head conflicts fix 2014-06-13 09:23:30 -06:00
Alex
c6c80ac45b variable and message fix 2014-06-13 09:11:12 -06:00
Alex
db0ef08142 bug fixes, message changes 2014-06-13 09:08:09 -06:00
Alex Kavon
d4d7f367ba Updated message for $charsetFlag 2014-06-13 09:05:35 -06:00
Alex
1790a917f4 bug fixes 2014-06-13 09:00:22 -06:00
Alex Kavon
90f8f7c53e Merge pull request #2 from alexkavon/patch-2
Patch 2
2014-06-13 08:52:05 -06:00
Alex Kavon
9e49db2dd0 picky travis, added else statement 2014-06-12 19:12:31 -06:00
Alex Kavon
b6874c4a49 whitespace 2014-06-12 19:03:18 -06:00
Alex Kavon
b8b426c045 Second $charset should of been $charsetFlag 2014-06-12 18:58:03 -06:00
Alex Kavon
05ad71a83f Compromise between mb_convert_encoding and iconv 2014-06-12 18:53:14 -06:00
Alex Kavon
2fc04c3d56 Merge pull request #1 from alexkavon/patch-2
Patch 2
2014-06-12 18:49:40 -06:00
Alex Kavon
f08630cde9 Switch to mb_convert_encoding
Changing from iconv to mb_convert_encoding. $charset = 'UTF-8//TRANSLIT' is no longer needed. 'UTF-8' set as default and user may change value to whatever they wish :)
2014-06-12 13:51:27 -06:00
Alex Kavon
04b5a5ed33 Check to see if message is already encoded in utf8
Adding requirement to if statement to check if message matches UTF-8 encoding via regex. This will prevent encoding errors when converting UTF-8 to UTF-8.
2014-06-12 09:55:34 -06:00
Robert Hafner
8e742ef80e Merge pull request #60 from domibi/master
FIX: Message with no subject throw exception.
2014-06-02 09:41:35 +02:00
domibi
be90bb9971 FIX: Message with no subject throw exception.
The subject of a message overview could not be set. Now we check if the property exists, if not we set subject to null.
2014-05-31 20:44:30 +02:00
Robert Hafner
7059e5159e Updated links 2014-05-21 01:16:33 -07:00
Robert Hafner
5bcc4fd8e6 Updated homepage 2014-05-21 00:54:40 -07:00
Robert Hafner
59e1e4169b Updated dovecottesting to 1.2.3 2014-05-19 21:52:17 -07:00
Robert Hafner
9dc46cea9f Merge pull request #51 from nulpunkt/get-orderd
Implemented getting messages in an ordered fashion
2014-05-19 14:28:57 -07:00
Robert Hafner
bc5f325805 Merge pull request #56 from iampersistent/message-decode
Message decode
2014-05-07 14:55:41 -07:00
Richard Shank
cab0aca17c fix the behavior in Message:decode 2014-05-07 14:26:59 -07:00
Richard Shank
52930d5d75 update Message::decode test 2014-05-07 14:26:22 -07:00
Robert Hafner
97597b1983 updated "total downloads" badge 2014-05-04 23:15:10 -07:00
Jesper Skovgaard Nielsen
7b04684c99 Implemented getting messages in an ordered fashion 2014-04-28 09:34:21 +02:00
Robert Hafner
70b982b319 Badges update 2014-04-20 00:32:28 -07:00
Robert Hafner
4de41720dc Merge pull request #49 from tedivm/more_testing
Use Composer provided phpunit for tests
2014-04-19 23:54:20 -07:00
Robert Hafner
259545731c Added contributing file 2014-04-19 23:42:32 -07:00
Robert Hafner
9d26773f7f use bin/php-cs-fixer instead of bundle version 2014-04-19 23:42:19 -07:00
Robert Hafner
9ad874d69e Use Composer provided phpunit for tests
This makes versioning pinning easier
2014-04-19 22:01:22 -07:00
Robert Hafner
33451f1e71 Removed Pear package file
I'm to lazy to maintain pear when composer is a thing.
2014-04-16 01:33:50 -07:00
Robert Hafner
ec929fb20a Merge pull request #47 from tedivm/testing_updates
Testing Suite Updates
2014-04-16 00:58:51 -07:00
Robert Hafner
b98ecaabaa Start testing hhvm on travis-ci
Lets see if it even has imap enabled :-)
2014-04-16 00:49:16 -07:00
Robert Hafner
767a9f0083 Updated to latest version of the DovecotTesting Package 2014-04-16 00:45:44 -07:00
Robert Hafner
3c900abb37 Added cover coverage badge 2014-04-16 00:36:52 -07:00
Robert Hafner
1725eb2f8b Formatting! PSR Compliance 2014-04-16 00:35:51 -07:00
Robert Hafner
faaff0711d Added code coverage and styling tests, refactored
Added runTests.sh to wrap up a bunch of test starting functionality.
Moved SetupEnvironment.sh out of Bootstrap.php and into the runTests.sh
file.

Added Coverall support for line coverage.

Added php-cs-fixer for code styling testing.
2014-04-16 00:28:38 -07:00
David Rainsford
b0d22fb76c Allow the passing of connection parameters to imap_open()
Since version 5.3.2 of PHP, imap_open() has an optional 6th
parameter which allows you to set certain connection parameters.

Currently the only key is:

- DISABLE_AUTHENTICATOR - Disable authentication properties

see https://bugs.php.net/bug.php?id=33500

Example of use:

  $server = new Server('imap.example.com', 993);
  $server->setParam('DISABLE_AUTHENTICATOR', 'GSSAPI');

This gets rid of the following errors:
<br />
<b>Notice</b>:  Unknown: Unknown GSSAPI failure: An invalid name was
supplied (errflg=1) in <b>Unknown</b> on line <b>0</b><br />
<br />
<b>Notice</b>:  Unknown: GSSAPI mechanism status: Hostname cannot be
canonicalized (errflg=1) in <b>Unknown</b> on line <b>0</b><br />
2014-04-03 10:59:19 +11:00
Robert Hafner
8650586610 Locked in the tedivm/dovecottesting version 2014-03-27 23:31:21 -07:00
Robert Hafner
0bf95d78b2 Merge pull request #40 from bjornpost/fix-multipart-messagebody
In a multipart email messageBody() keeps headers
2014-03-14 00:08:36 -07:00
Robert Hafner
b48ca178d7 Merge pull request #41 from tedivm/testing_dovecot
Dovecot Testing Package Updates
2014-03-14 00:05:34 -07:00
Bjorn Post
7b42853eec Rewrite fix as it broke other tests. This fixes my issue and the broken tests. 2014-03-11 22:16:43 +01:00
Bjorn Post
88f43819ee Be more specific when fetching body sections, references #39 2014-03-11 20:17:02 +01:00
Robert Hafner
ffeca296de Added back distinct IP address for Travis and Vagrant 2014-02-27 11:47:17 -08:00
Robert Hafner
56dc838df9 Updated to dovecottesting 1.2
This lets us simplify our test script by not having to care about
different ip addresses.
2014-02-27 00:12:28 -08:00
Robert Hafner
ef5f76d352 Added timezone and corrected path data
Adding a timezone prevents errors on misconfigured systems when
running, and the path correction automates the running of the dovecot
testing package between tests.
2014-02-27 00:11:19 -08:00
Robert Hafner
a2b41cd82c Added test to prevent fatal error in certain error conditions 2014-02-27 00:09:56 -08:00
Robert Hafner
223be18517 Telling composer to use any of the 1.x line of the Dovecot Test Package 2014-01-20 15:37:47 -08:00
Robert Hafner
30b3871e3d Switching back to dev-master for testing 2014-01-20 15:28:21 -08:00
Robert Hafner
4432bd110a Merge pull request #33 from tedivm/testing_update
Separate Mail Server Setup into Development Package
2014-01-20 15:04:10 -08:00
Robert Hafner
8b2a3c9647 Pinned Fetch to a specific stable version of the test suite. 2014-01-20 14:59:01 -08:00
Robert Hafner
4f2c2662e6 Updated vendor path used by travis for the SetupEnvironment script 2014-01-19 00:54:07 -08:00
Robert Hafner
550f3b62e0 Updated Fetch to use the DovecotTesting repository
Rather than ship with all of these files I’ve separated out the server
provisioning code from this repository.
2014-01-19 00:51:55 -08:00
Robert Hafner
1ff3441020 Update README.md 2014-01-14 00:32:45 -08:00
82 changed files with 925 additions and 20525 deletions

3
.coveralls.yml Normal file
View file

@ -0,0 +1,3 @@
src_dir: src
coverage_clover: build/logs/clover.xml
json_path: build/logs/coveralls-upload.json

2
.gitignore vendored
View file

@ -1,5 +1,4 @@
.vagrant
/.idea
/.settings
/.buildpath
@ -7,3 +6,4 @@
/composer.lock
/vendor
/report
/build

View file

@ -4,9 +4,21 @@ php:
- 5.3
- 5.4
- 5.5
- 5.6
- hhvm
- hhvm-nightly
before_script:
- tests/SetupEnvironment.sh
- composer install --dev
- composer self-update && composer install --dev
- vendor/tedivm/dovecottesting/SetupEnvironment.sh
script: phpunit --verbose --coverage-text
script: ./tests/runTests.sh
after_script:
- php vendor/bin/coveralls -v
matrix:
fast_finish: true
allow_failures:
- php: hhvm
- php: hhvm-nightly

54
CONTRIBUTING.md Normal file
View file

@ -0,0 +1,54 @@
# Contributions Welcome!
Pull Requests and Community Contributions are the bread and butter of open source software. Every contribution- from bug
reports to feature requests, typos to full new features- are greatly appreciated.
## Important Guidelines
* One Item Per Pull Request or Issue. This makes it much easier to review code and merge it back in, and prevents issues
with one request from blocking another.
* Code Coverage is extremely important, and pull requests are much more likely to be accepted if testing is also improved.
New code should be properly tested, and all tests must pass.
* Read the LICENSE document and make sure you understand it, because your code is going to be released under it.
* Be prepared to make revisions. Don't be discouraged if you're asked to make changes, as that is just another step
towards refining the code and getting it merged back in.
* Remember to add the relevant documentation, particular the docblock comments.
## Code Styling
This project follows the PSR standards set forth by the [PHP Framework Interop Group](http://www.php-fig.org/).
* [PSR-0: Class and file naming conventions](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md)
* [PSR-1: Basic coding standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-1-basic-coding-standard.md)
* [PSR-2: Coding style guide](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md)
All code most follow these standards to be accepted. The easiest way to accomplish this is to run php-cs-fixer once the
new changes are finished. The php-cs-fixer package is installed as a development dependency of this project.
composer install --dev
vendor/bin/php-cs-fixer fix ./ --level="all" -vv
## Running the test suite
First install dependencies using Composer. It's important to include the dev packages:
composer install --dev
The "runTests.sh" script runs the full test suite- phpunit, php-cs-fixer, as well as any environmental setup:
tests/runTests.sh
To call phpunit directly:
vendor/bin/phpunit
To call php-cs-fixer directly:
vendor/bin/php-cs-fixer fix ./ --level="all" -vv --dry-run

View file

@ -1,13 +1,19 @@
# Fetch [![Build Status](https://travis-ci.org/tedivm/Fetch.png?branch=master)](https://travis-ci.org/tedivm/Fetch)
# Fetch [![Build Status](https://travis-ci.org/tedious/Fetch.svg?branch=master)](https://travis-ci.org/tedious/Fetch)
[![Latest Stable Version](https://poser.pugx.org/tedivm/fetch/v/stable.png)](https://packagist.org/packages/tedivm/fetch)
[![Total Downloads](https://poser.pugx.org/tedivm/fetch/downloads.png)](https://packagist.org/packages/tedivm/fetch)
[![License](http://img.shields.io/packagist/l/tedivm/fetch.svg)](https://github.com/tedious/fetch/blob/master/LICENSE)
[![Latest Stable Version](http://img.shields.io/github/release/tedious/fetch.svg)](https://packagist.org/packages/tedivm/fetch)
[![Coverage Status](http://img.shields.io/coveralls/tedious/Fetch.svg)](https://coveralls.io/r/tedious/Fetch?branch=master)
[![Total Downloads](http://img.shields.io/packagist/dt/tedivm/fetch.svg)](https://packagist.org/packages/tedivm/fetch)
Fetch is a library for reading email and attachments, primarily using the POP
and IMAP protocols.
## Installing
> N.b. A note on Ubuntu 14.04 (probably other Debian-based / Apt managed systems), the install of php5-imap does not enable the extension for CLI (possibly others as well), which can cause composer to report fetch requires ext-imap
```
sudo ln -s /etc/php5/mods-available/imap.ini /etc/php5/cli/conf.d/30-imap.ini
```
### Composer
@ -20,7 +26,7 @@ backwards compatible.
```
"require": {
"tedivm/fetch": "0.5.*"
"tedivm/fetch": "0.6.*"
}
```
@ -35,7 +41,7 @@ $ pear install tedivm/Fetch
### Github
Releases of Stash are available on [Github](https://github.com/tedivm/Fetch/releases).
Releases of Fetch are available on [Github](https://github.com/tedious/Fetch/releases).
## Sample Usage

View file

@ -9,7 +9,7 @@
* file that was distributed with this source code.
*/
spl_autoload_register(function($class) {
spl_autoload_register(function ($class) {
$base = '/src/';
if (strpos($class, 'Fetch\Test') === 0) {
@ -22,4 +22,4 @@ spl_autoload_register(function($class) {
return true;
}
});
});

View file

@ -2,7 +2,7 @@
"name": "tedivm/fetch",
"description": "A PHP IMAP Library",
"keywords": ["email","imap","pop3"],
"homepage": "http://github.com/tedivm/Fetch",
"homepage": "http://github.com/tedious/Fetch",
"type": "library",
"license": "BSD-3-Clause",
"authors": [
@ -15,6 +15,11 @@
"php": ">=5.3.0",
"ext-imap": "*"
},
"require-dev": {
"tedivm/dovecottesting": "1.2.3",
"phpunit/phpunit": "4.2.*",
"fabpot/php-cs-fixer": "0.5.*"
},
"autoload": {
"psr-0": {"Fetch": "src/"}
}

View file

@ -1,70 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<package packagerversion="1.9.4" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd">
<name>Fetch</name>
<channel>pear.tedivm.com</channel>
<summary>A PHP IMAP Library</summary>
<description>Fetch is a OOP Library that utilized the IMAP Extension for manipulating email and inboxes.</description>
<lead>
<name>Robert Hafner</name>
<user>tedivm</user>
<email>tedivm@tedivm.com</email>
<active>yes</active>
</lead>
<date>2012-11-25</date>
<time>23:19:16</time>
<version>
<release>0.4.1</release>
<api>0.4.1</api>
</version>
<stability>
<release>alpha</release>
<api>alpha</api>
</stability>
<license uri="http://www.opensource.org/licenses/bsd-license.php">BSD Style</license>
<notes>
-
</notes>
<contents>
<dir baseinstalldir="/" name="/">
<file baseinstalldir="/" md5sum="aa29e2803ede52f7a7fc72c3f81d0d24" name="src/Fetch/Attachment.php" role="php" />
<file baseinstalldir="/" md5sum="c76addeca63ab68b96139fbeb5360595" name="src/Fetch/Message.php" role="php" />
<file baseinstalldir="/" md5sum="fb619248da9039016029c565ade38ef2" name="src/Fetch/Server.php" role="php" />
<file baseinstalldir="/" md5sum="29ca91f2fab5be26e82e068d352d35e4" name="tests/bootstrap.php" role="test" />
<file baseinstalldir="/" md5sum="4a2ac5dab1f6ac50bb8d23a89b3d7fa1" name="tests/Fetch/Test/AttachmentTest.php" role="test" />
<file baseinstalldir="/" md5sum="93aa1dfc13bf71b65ebe8ab984fe13cb" name="tests/Fetch/Test/MessageTest.php" role="test" />
<file baseinstalldir="/" md5sum="b80a4c7d372abcab271c5b211579bcc8" name="tests/Fetch/Test/ServerTest.php" role="test" />
<file baseinstalldir="/" md5sum="b6f9cec64c464148284c7e87d46b0d86" name="autoload.php" role="php" />
<file baseinstalldir="/" md5sum="28ef12b4e82e5fb81125eef74096adb5" name="composer.json" role="data" />
<file baseinstalldir="/" md5sum="0a8fd596034db85a8ae22c1d2330edfb" name="LICENSE" role="doc" />
<file baseinstalldir="/" md5sum="65a7e6bd0be62f07792b832160168dea" name="README.md" role="data" />
</dir>
</contents>
<dependencies>
<required>
<php>
<min>5.3.0</min>
</php>
<pearinstaller>
<min>1.4.0</min>
</pearinstaller>
</required>
</dependencies>
<phprelease />
<changelog>
<release>
<version>
<release>0.4.1</release>
<api>0.4.1</api>
</version>
<stability>
<release>alpha</release>
<api>alpha</api>
</stability>
<date>2012-11-25</date>
<license uri="http://www.opensource.org/licenses/bsd-license.php">BSD Style</license>
<notes>
-
</notes>
</release>
</changelog>
</package>

View file

@ -11,16 +11,17 @@
syntaxCheck="false"
bootstrap="tests/bootstrap.php"
>
<testsuites>
<testsuite name="Fetch Test Suite">
<directory>./tests</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory suffix=".php">./src/Fetch/</directory>
</whitelist>
</filter>
<logging>
<log type="coverage-text" target="php://stdout" showUncoveredFiles="false"/>
</logging>
</phpunit>

View file

@ -87,18 +87,56 @@ class Attachment
$this->imapStream = $message->getImapBox()->getImapStream();
$this->structure = $structure;
if (isset($partIdentifier))
if (isset($partIdentifier)) {
$this->partId = $partIdentifier;
// message in message
if ($this->structure->type === 2 && strtoupper($this->structure->subtype) === 'RFC822') {
$this->filename = 'message.eml';
$header = imap_fetchmime($this->imapStream, $this->messageId, $this->partId, FT_UID);
if (strtolower(Message::$charset) === 'utf-8') {
try {
$hObject = imap_rfc822_parse_headers($header);
if (property_exists($hObject, 'subject')) {
$subject = MIME::decode($hObject->subject, Message::$charset);
$subject = preg_replace('#\s+#', ' ', $subject);
$subject = preg_replace('#^(.{0,50})#u', '$1', $subject);
if ($subject) {
$this->filename = $subject . '.eml';
}
}
} catch (\Throwable $e) {
}
}
}
}
$parameters = Message::getParametersFromStructure($structure);
if (isset($parameters['filename'])) {
$this->filename = $parameters['filename'];
} elseif (isset($parameters['name'])) {
$this->filename = $parameters['name'];
// quick fix for Content-Disposition extended notation
// name*0*=UTF-8''%D0%A...
// name*1*=%D0%B8...
// etc
if (!empty($parameters['filename*'])) {
$this->setFileName($parameters['filename*']);
} elseif (!empty($parameters['name*'])) {
$this->setFileName($parameters['name*']);
}
$this->size = $structure->bytes;
if (!empty($parameters['filename'])) {
$this->setFileName($parameters['filename']);
} elseif (!empty($parameters['name'])) {
$this->setFileName($parameters['name']);
}
if (property_exists($structure, 'bytes')) {
$this->size = $structure->bytes;
}
$this->mimeType = Message::typeIdToString($structure->type);
@ -117,9 +155,18 @@ class Attachment
public function getData()
{
if (!isset($this->data)) {
$messageBody = isset($this->partId) ?
imap_fetchbody($this->imapStream, $this->messageId, $this->partId, FT_UID)
: imap_body($this->imapStream, $this->messageId, FT_UID);
if ($this->partId) {
$messageBody = imap_fetchbody($this->imapStream, $this->messageId, $this->partId, FT_UID);
// message in message
if ($this->structure->type === 2 && strtoupper($this->structure->subtype) === 'RFC822') {
$header = imap_fetchmime($this->imapStream, $this->messageId, $this->partId, FT_UID);
return $this->data = $header . $messageBody;
}
} else {
$messageBody = imap_body($this->imapStream, $this->messageId, FT_UID);
}
$messageBody = Message::decode($messageBody, $this->encoding);
$this->data = $messageBody;
@ -160,7 +207,7 @@ class Attachment
/**
* This function returns the object that contains the structure of this attachment.
*
*
* @return \stdClass
*/
public function getStructure()
@ -194,18 +241,46 @@ class Attachment
{
$dirname = dirname($path);
if (file_exists($path)) {
if (!is_writable($path))
if (!is_writable($path)) {
return false;
}
} elseif (!is_dir($dirname) || !is_writable($dirname)) {
return false;
}
if (($filePointer = fopen($path, 'w')) == false)
if (($filePointer = fopen($path, 'w')) == false) {
return false;
}
switch ($this->encoding) {
case 3: //base64
$streamFilter = stream_filter_append($filePointer, 'convert.base64-decode', STREAM_FILTER_WRITE);
break;
case 4: //quoted-printable
$streamFilter = stream_filter_append($filePointer, 'convert.quoted-printable-decode', STREAM_FILTER_WRITE);
break;
default:
$streamFilter = null;
}
// Fix an issue causing server to throw an error
// See: https://github.com/tedious/Fetch/issues/74 for more details
$fetch = imap_fetchbody($this->imapStream, $this->messageId, $this->partId ?: 1, FT_UID);
$result = imap_savebody($this->imapStream, $filePointer, $this->messageId, $this->partId ?: 1, FT_UID);
if ($streamFilter) {
stream_filter_remove($streamFilter);
}
$results = fwrite($filePointer, $this->getData());
fclose($filePointer);
return is_numeric($results);
return $result;
}
protected function setFileName($text)
{
$this->filename = MIME::decode($text, Message::$charset);
}
}

45
src/Fetch/MIME.php Normal file
View file

@ -0,0 +1,45 @@
<?php
/*
* This file is part of the Fetch package.
*
* (c) Robert Hafner <tedivm@tedivm.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Fetch;
/**
* This library is a wrapper around the Imap library functions included in php.
*
* @package Fetch
* @author Robert Hafner <tedivm@tedivm.com>
* @author Sergey Linnik <linniksa@gmail.com>
*/
final class MIME
{
/**
* @param string $text
* @param string $targetCharset
*
* @return string
*/
public static function decode($text, $targetCharset = 'utf-8')
{
if (null === $text) {
return null;
}
$result = '';
foreach (imap_mime_header_decode($text) as $word) {
$ch = 'default' === $word->charset ? 'ascii' : $word->charset;
$result .= Message::charsetConvert($word->text, $ch, $targetCharset) ?: $word->text;
}
return $result;
}
}

View file

@ -42,6 +42,13 @@ class Message
*/
protected $imapStream;
/**
* This as an string which contains raw header information for the message.
*
* @var string
*/
protected $rawHeaders;
/**
* This as an object which contains header information for the message.
*
@ -76,7 +83,7 @@ class Message
*
* @var string
*/
protected static $flagTypes = array('recent', 'flagged', 'answered', 'deleted', 'seen', 'draft');
protected static $flagTypes = array(self::FLAG_RECENT, self::FLAG_FLAGGED, self::FLAG_ANSWERED, self::FLAG_DELETED, self::FLAG_SEEN, self::FLAG_DRAFT);
/**
* This holds the plantext email message.
@ -120,6 +127,13 @@ class Message
*/
protected $from;
/**
* This is an array containing information about the address the email was sent from.
*
* @var string
*/
protected $sender;
/**
* This is an array of arrays that contains information about the addresses the email was sent to.
*
@ -167,8 +181,41 @@ class Message
*
* @var string
*/
public static $charset = 'UTF-8//TRANSLIT';
public static $charset = 'UTF-8';
/**
* This value defines the flag set for encoding if the mb_convert_encoding
* function can't be found, and in this case iconv encoding will be used.
*
* @var string
*/
public static $charsetFlag = '//TRANSLIT';
public static $charsetRenames = array(
'ks_c_5601-1987' => 'CP949',
);
/**
* These constants can be used to easily access available flags
*/
const FLAG_RECENT = 'recent';
const FLAG_FLAGGED = 'flagged';
const FLAG_ANSWERED = 'answered';
const FLAG_DELETED = 'deleted';
const FLAG_SEEN = 'seen';
const FLAG_DRAFT = 'draft';
/**
* When there's no "from" header in the message, code
* ```
* $val = '<' . $address['address'] . '>';
* ```
* in `self::getAddresses()` causes error.
*
* To avoid this error, if "from" header not found
* then it will be stored as array with this value
*/
const NO_FROM_HEADER_STUB_VALUE = 'unknown_sender';
/**
* This constructor takes in the uid for the message and the Imap class representing the mailbox the
@ -199,11 +246,18 @@ class Message
/* First load the message overview information */
if(!is_object($messageOverview = $this->getOverview()))
return false;
$this->subject = $messageOverview->subject;
$this->date = strtotime($messageOverview->date);
$this->size = $messageOverview->size;
if (property_exists($messageOverview, 'subject')) {
$this->subject = MIME::decode($messageOverview->subject, self::$charset);
}
if (property_exists($messageOverview, 'date') && null !== $messageOverview->date) {
$this->date = strtotime($messageOverview->date);
}
$this->size = $messageOverview->size;
foreach (self::$flagTypes as $flag)
$this->status[$flag] = ($messageOverview->$flag == 1);
@ -221,20 +275,30 @@ class Message
if (isset($headers->bcc))
$this->bcc = $this->processAddressObject($headers->bcc);
$this->from = $this->processAddressObject($headers->from);
if (isset($headers->sender))
$this->sender = $this->processAddressObject($headers->sender);
$this->from = isset($headers->from)
? $this->processAddressObject($headers->from)
: array(
array(
'address' => self::NO_FROM_HEADER_STUB_VALUE,
),
)
;
$this->replyTo = isset($headers->reply_to) ? $this->processAddressObject($headers->reply_to) : $this->from;
/* Finally load the structure itself */
$structure = $this->getStructure();
if (!isset($structure->parts)) {
// not multipart
$this->processStructure($structure);
} else {
if (isset($structure->parts)) {
// multipart
foreach ($structure->parts as $id => $part)
$this->processStructure($part, $id + 1);
} else {
// not multipart
$this->processStructure($structure);
}
return true;
@ -253,12 +317,34 @@ class Message
if ($forceReload || !isset($this->messageOverview)) {
// returns an array, and since we just want one message we can grab the only result
$results = imap_fetch_overview($this->imapStream, $this->uid, FT_UID);
if ( sizeof($results) == 0 ) {
throw new \RuntimeException('Error fetching overview');
}
$this->messageOverview = array_shift($results);
if ( ! isset($this->messageOverview->date)) {
$this->messageOverview->date = null;
}
}
return $this->messageOverview;
}
/**
* This function returns an object containing the raw headers of the message.
*
* @param bool $forceReload
* @return string
*/
public function getRawHeaders($forceReload = false)
{
if ($forceReload || !isset($this->rawHeaders)) {
// raw headers (since imap_headerinfo doesn't use the unique id)
$this->rawHeaders = imap_fetchheader($this->imapStream, $this->uid, FT_UID);
}
return $this->rawHeaders;
}
/**
* This function returns an object containing the headers of the message. This is done by taking the raw headers
* and running them through the imap_rfc822_parse_headers function. The results are only retrieved from the server
@ -271,13 +357,18 @@ class Message
{
if ($forceReload || !isset($this->headers)) {
// raw headers (since imap_headerinfo doesn't use the unique id)
$rawHeaders = imap_fetchheader($this->imapStream, $this->uid, FT_UID);
$rawHeaders = $this->getRawHeaders();
// convert raw header string into a usable object
$headerObject = imap_rfc822_parse_headers($rawHeaders);
// to keep this object as close as possible to the original header object we add the udate property
$headerObject->udate = strtotime($headerObject->date);
if (isset($headerObject->date)) {
$headerObject->udate = strtotime($headerObject->date);
} else {
$headerObject->date = null;
$headerObject->udate = null;
}
$this->headers = $headerObject;
}
@ -296,7 +387,7 @@ class Message
public function getStructure($forceReload = false)
{
if ($forceReload || !isset($this->structure)) {
$this->structure = imap_fetchstructure($this->imapStream, $this->uid, FT_UID);
$this->structure = @imap_fetchstructure($this->imapStream, $this->uid, FT_UID);
}
return $this->structure;
@ -324,7 +415,7 @@ class Message
}
} else {
if (!isset($this->plaintextMessage) && isset($this->htmlMessage)) {
$output = preg_replace('/\<br(\s*)?\/?\>/i', PHP_EOL, trim($this->htmlMessage) );
$output = preg_replace('/\s*\<br\s*\/?\>/i', PHP_EOL, trim($this->htmlMessage) );
$output = strip_tags($output);
return $output;
@ -336,26 +427,45 @@ class Message
return false;
}
/**
* This function returns the plain text body of the email or false if not present.
* @return string|bool Returns false if not present
*/
public function getPlainTextBody()
{
return isset($this->plaintextMessage) ? $this->plaintextMessage : false;
}
/**
* This function returns the HTML body of the email or false if not present.
* @return string|bool Returns false if not present
*/
public function getHtmlBody()
{
return isset($this->htmlMessage) ? $this->htmlMessage : false;
}
/**
* This function returns either an array of email addresses and names or, optionally, a string that can be used in
* mail headers.
*
* @param string $type Should be 'to', 'cc', 'bcc', 'from', or 'reply-to'.
* @param string $type Should be 'to', 'cc', 'bcc', 'from', 'sender', or 'reply-to'.
* @param bool $asString
* @return array|string|bool
*/
public function getAddresses($type, $asString = false)
{
$type = ( $type == 'reply-to' ) ? 'replyTo' : $type;
$addressTypes = array('to', 'cc', 'bcc', 'from', 'replyTo');
$addressTypes = array('to', 'cc', 'bcc', 'from', 'sender', 'replyTo');
if (!in_array($type, $addressTypes) || !isset($this->$type) || count($this->$type) < 1)
return false;
if (!$asString) {
if ($type == 'from')
return $this->from[0];
elseif ($type == 'sender')
return $this->sender[0];
return $this->$type;
} else {
@ -366,9 +476,12 @@ class Message
if (!isset($set))
$set = true;
$outputString .= isset($address['name']) ?
$address['name'] . ' <' . $address['address'] . '>'
: $address['address'];
$val = '<' . $address['address'] . '>';
if (isset($address['name'])) {
$val = '"' . preg_replace('/\W/u', '\\\\$0', $address['name']) . '" ' . $val;
}
$outputString .= $val;
}
return $outputString;
@ -422,27 +535,46 @@ class Message
*
* @param \stdClass $structure
* @param string $partIdentifier
* @todoa process attachments.
*/
protected function processStructure($structure, $partIdentifier = null)
{
if (!$structure) {
return;
}
$parameters = self::getParametersFromStructure($structure);
if (isset($parameters['name']) || isset($parameters['filename'])) {
$attachment = new Attachment($this, $structure, $partIdentifier);
$this->attachments[] = $attachment;
} elseif ($structure->type == 0 || $structure->type == 1) {
// quick fix for Content-Disposition extended notation
// name*0*=UTF-8''%D0%A...
// name*1*=%D0%B8...
// etc
if (empty($parameters['name']) && !empty($parameters['name*'])) {
$parameters['name'] = $parameters['name*'];
}
if (empty($parameters['filename']) && !empty($parameters['filename*'])) {
$parameters['filename'] = $parameters['filename*'];
}
if (!empty($parameters['name']) || !empty($parameters['filename'])) {
$attachment = new Attachment($this, $structure, $partIdentifier);
$this->attachments[] = $attachment;
} else if (strtoupper($structure->subtype) === 'RFC822') {
$attachment = new Attachment($this, $structure, $partIdentifier);
$this->attachments[] = $attachment;
// do not process subparts (maybe it should be for all attachments?)
return;
} elseif ($structure->type == 0 || $structure->type == 1) {
$messageBody = isset($partIdentifier) ?
imap_fetchbody($this->imapStream, $this->uid, $partIdentifier, FT_UID)
: imap_body($this->imapStream, $this->uid, FT_UID);
imap_fetchbody($this->imapStream, $this->uid, $partIdentifier, FT_UID | FT_PEEK)
: imap_body($this->imapStream, $this->uid, FT_UID | FT_PEEK);
$messageBody = self::decode($messageBody, $structure->encoding);
if (!empty($parameters['charset']) && $parameters['charset'] !== self::$charset)
$messageBody = iconv($parameters['charset'], self::$charset, $messageBody);
if (!empty($parameters['charset'])) {
$messageBody = self::charsetConvert($messageBody, $parameters['charset'], self::$charset) ?: $messageBody;
}
if (strtolower($structure->subtype) == 'plain' || $structure->type == 1) {
if (strtolower($structure->subtype) === 'plain' || ($structure->type == 1 && strtolower($structure->subtype) !== 'alternative')) {
if (isset($this->plaintextMessage)) {
$this->plaintextMessage .= PHP_EOL . PHP_EOL;
} else {
@ -450,8 +582,7 @@ class Message
}
$this->plaintextMessage .= trim($messageBody);
} else {
} elseif (strtolower($structure->subtype) === 'html') {
if (isset($this->htmlMessage)) {
$this->htmlMessage .= '<br><br>';
} else {
@ -475,6 +606,67 @@ class Message
}
}
/**
* @param string $text
* @param string $from
* @param string $to
*
* @return string|null
*/
public static function charsetConvert($text, $from, $to = null)
{
if (!$text) {
return '';
}
if (null === $to) {
$to = self::$charset;
}
$from = strtolower($from);
$to = strtolower($to);
if (isset(self::$charsetRenames[$from])) {
$from = self::$charsetRenames[$from];
}
if ($from === $to) {
if ($to === 'utf-8') {
return UTF8::fix($text);
}
return $text;
}
$converted = null;
if (!$converted && function_exists('mb_convert_encoding')) {
// `@` оставлена для совместимости с php7, так как в этой
// версии выкидывается warning, который надо подавлять
try {
if (@mb_check_encoding($text, $from)) {
$converted = @mb_convert_encoding($text, $to, $from);
}
} catch (\ValueError $e) {
// noop
}
}
if (!$converted && function_exists('iconv')) {
// Для `iconv` @ пока работает
$converted = @iconv($from, $to . self::$charsetFlag, $text);
}
if ($converted) {
return $converted;
}
if ($to === 'utf-8') {
return UTF8::fix($text);
}
return null;
}
/**
* This function takes in the message data and encoding type and returns the decoded data.
*
@ -484,16 +676,17 @@ class Message
*/
public static function decode($data, $encoding)
{
if (!is_numeric($encoding))
if (!is_numeric($encoding)) {
$encoding = strtolower($encoding);
}
switch ($encoding) {
case 'quoted-printable':
case 4:
switch (true) {
case $encoding === 'quoted-printable':
case $encoding === 4:
return quoted_printable_decode($data);
case 'base64':
case 3:
case $encoding === 'base64':
case $encoding === 3:
return base64_decode($data);
default:
@ -569,11 +762,20 @@ class Message
$outputAddresses = array();
if (is_array($addresses))
foreach ($addresses as $address) {
$currentAddress = array();
$currentAddress['address'] = $address->mailbox . '@' . $address->host;
if (isset($address->personal))
$currentAddress['name'] = $address->personal;
$outputAddresses[] = $currentAddress;
if (property_exists($address, 'mailbox') && $address->mailbox != 'undisclosed-recipients') {
$currentAddress = array();
$host = '';
if (property_exists($address, 'host')) {
$host = $address->host;
}
$currentAddress['address'] = $address->mailbox . '@' . $host;
if (isset($address->personal)) {
$currentAddress['name'] = MIME::decode($address->personal, self::$charset);
}
$outputAddresses[] = $currentAddress;
}
}
return $outputAddresses;
@ -629,31 +831,42 @@ class Message
* @param string $flag Recent, Flagged, Answered, Deleted, Seen, Draft
* @return bool
*/
public function checkFlag($flag = 'flagged')
public function checkFlag($flag = self::FLAG_FLAGGED)
{
return (isset($this->status[$flag]) && $this->status[$flag] === true);
}
/**
* This function is used to enable or disable a flag on the imap message.
* This function is used to enable or disable one or more flags on the imap message.
*
* @param string $flag Flagged, Answered, Deleted, Seen, Draft
* @param string|array $flag Flagged, Answered, Deleted, Seen, Draft
* @param bool $enable
* @throws \InvalidArgumentException
* @return bool
*/
public function setFlag($flag, $enable = true)
{
if (!in_array($flag, self::$flagTypes) || $flag == 'recent')
throw new \InvalidArgumentException('Unable to set invalid flag "' . $flag . '"');
$flags = (is_array($flag)) ? $flag : array($flag);
$imapifiedFlag = '\\' . ucfirst($flag);
foreach ($flags as $i => $flag) {
$flag = ltrim(strtolower($flag), '\\');
if (!in_array($flag, self::$flagTypes) || $flag == self::FLAG_RECENT)
throw new \InvalidArgumentException('Unable to set invalid flag "' . $flag . '"');
if ($enable) {
$this->status[$flag] = true;
} else {
unset($this->status[$flag]);
}
$flags[$i] = $flag;
}
$imapifiedFlag = '\\'.implode(' \\', array_map('ucfirst', $flags));
if ($enable === true) {
$this->status[$flag] = true;
return imap_setflag_full($this->imapStream, $this->uid, $imapifiedFlag, ST_UID);
} else {
unset($this->status[$flag]);
return imap_clearflag_full($this->imapStream, $this->uid, $imapifiedFlag, ST_UID);
}
}

View file

@ -93,11 +93,16 @@ class Server
*/
protected $options = 0;
/**
* This is the set of connection parameters
*
* @var array
*/
protected $params = array();
/**
* This is the resource connection to the server. It is required by a number of imap based functions to specify how
* to connect.
*
* @var resource
*/
protected $imapStream;
@ -140,23 +145,28 @@ class Server
*
* @param string $username
* @param string $password
* @param bool $tryFasterAuth tries to auth faster by disabling GSSAPI & NTLM auth methods (set to false if you use either of these auth methods)
*/
public function setAuthentication($username, $password)
public function setAuthentication($username, $password, $tryFasterAuth=true)
{
$this->username = $username;
$this->password = $password;
if ($tryFasterAuth) {
$this->setParam('DISABLE_AUTHENTICATOR', array('GSSAPI','NTLM'));
}
}
/**
* This function sets the mailbox to connect to.
*
* @param string $mailbox
* @param string $mailbox
* @return bool
*/
public function setMailBox($mailbox = '')
{
if(!$this->hasMailBox($mailbox))
if (!$this->hasMailBox($mailbox)) {
return false;
}
$this->mailbox = $mailbox;
if (isset($this->imapStream)) {
@ -225,13 +235,22 @@ class Server
}
/**
* This function gets the current saved imap resource and returns it.
* This function is used to set connection parameters
*
* @return resource
* @param string $key
* @param string $value
*/
public function setParam($key, $value)
{
$this->params[$key] = $value;
}
/**
* This function gets the current saved imap resource and returns it.
*/
public function getImapStream()
{
if (!isset($this->imapStream))
if (empty($this->imapStream))
$this->setImapStream();
return $this->imapStream;
@ -283,11 +302,11 @@ class Server
*/
protected function setImapStream()
{
if (isset($this->imapStream)) {
if (!empty($this->imapStream)) {
if (!imap_reopen($this->imapStream, $this->getServerString(), $this->options, 1))
throw new \RuntimeException(imap_last_error());
} else {
$imapStream = imap_open($this->getServerString(), $this->username, $this->password, $this->options, 1);
$imapStream = @imap_open($this->getServerString(), $this->username, $this->password, $this->options, 1, $this->params);
if ($imapStream === false)
throw new \RuntimeException(imap_last_error());
@ -299,11 +318,22 @@ class Server
/**
* This returns the number of messages that the current mailbox contains.
*
* @param string $mailbox
* @return int
*/
public function numMessages()
public function numMessages($mailbox='')
{
return imap_num_msg($this->getImapStream());
$cnt = 0;
if ($mailbox==='') {
$cnt = imap_num_msg($this->getImapStream());
} elseif ($this->hasMailbox($mailbox) && $mailbox !== '') {
$oldMailbox = $this->getMailBox();
$this->setMailbox($mailbox);
$cnt = $this->numMessages();
$this->setMailbox($oldMailbox);
}
return ((int) $cnt);
}
/**
@ -371,23 +401,40 @@ class Server
return $messages;
}
/**
* Returns the emails in the current mailbox as an array of ImapMessage objects
* ordered by some ordering
*
* @see http://php.net/manual/en/function.imap-sort.php
* @param int $orderBy
* @param bool $reverse
* @param int $limit
* @return Message[]
*/
public function getOrderedMessages($orderBy, $reverse, $limit)
{
$msgIds = imap_sort($this->getImapStream(), $orderBy, $reverse ? 1 : 0, SE_UID);
return array_map(array($this, 'getMessageByUid'), array_slice($msgIds, 0, $limit));
}
/**
* Returns the requested email or false if it is not found.
*
* @param int $uid
* @param int $uid
* @return Message|bool
*/
public function getMessageByUid($uid)
{
try {
$message = new \Fetch\Message($uid, $this);
return $message;
}catch(\Exception $e){
} catch (\Exception $e) {
return false;
}
}
/**
* This function removes all of the messages flagged for deletion from the mailbox.
*
@ -407,7 +454,19 @@ class Server
*/
public function hasMailBox($mailbox)
{
return (boolean) imap_getmailboxes(
return (boolean) $this->getMailBoxDetails($mailbox);
}
/**
* Return information about the mailbox or mailboxes
*
* @param $mailbox
*
* @return array
*/
public function getMailBoxDetails($mailbox)
{
return imap_getmailboxes(
$this->getImapStream(),
$this->getServerString(),
$this->getServerSpecification() . $mailbox
@ -425,4 +484,28 @@ class Server
{
return imap_createmailbox($this->getImapStream(), $this->getServerSpecification() . $mailbox);
}
/**
* List available mailboxes
*
* @param string $pattern
*
* @return array
*/
public function listMailBoxes($pattern = '*')
{
return imap_list($this->getImapStream(), $this->getServerSpecification(), $pattern);
}
/**
* Deletes the given mailbox.
*
* @param $mailbox
*
* @return bool
*/
public function deleteMailBox($mailbox)
{
return imap_deletemailbox($this->getImapStream(), $this->getServerSpecification() . $mailbox);
}
}

64
src/Fetch/UTF8.php Normal file
View file

@ -0,0 +1,64 @@
<?php
namespace Fetch;
final class UTF8
{
public static function fix($text)
{
if (!is_string($text) || !$text) {
return $text;
}
if (\function_exists('mb_convert_encoding')) {
if ($val = @mb_convert_encoding($text, 'utf-8', 'utf-8')) {
return $val;
}
}
$buf = '';
for ($i = 0, $max = strlen($text); $i < $max; $i++) {
$c1 = $text[$i];
if ($c1 <= "\x7F") { // single byte
$buf .= $c1;
} elseif ($c1 <= "\xC1") { // single byte (invalid)
$buf .= '?';
} elseif ($c1 <= "\xDF") { // 2 byte
$c2 = $i + 1 >= $max ? "\x00" : $text[$i + 1];
if ($c2 >= "\x80" && $c2 <= "\xBF") {
$buf .= $c1 . $c2;
$i += 1;
} else {
$buf .= '?';
}
} elseif ($c1 <= "\xEF") { // 3 bytes
$c2 = $i + 1 >= $max ? "\x00" : $text[$i + 1];
$c3 = $i + 2 >= $max ? "\x00" : $text[$i + 2];
if ($c2 >= "\x80" && $c2 <= "\xbf" && $c3 >= "\x80" && $c3 <= "\xbf") {
$buf .= $c1 . $c2 . $c3;
$i += 2;
} else {
$buf .= '?';
}
} else if ($c1 <= "\xF4") { //Should be converted to UTF8, if it's not UTF8 already
$c2 = $i + 1 >= $max ? "\x00" : $text[$i + 1];
$c3 = $i + 2 >= $max ? "\x00" : $text[$i + 2];
$c4 = $i + 3 >= $max ? "\x00" : $text[$i + 3];
if ($c2 >= "\x80" && $c2 <= "\xbf" && $c3 >= "\x80" && $c3 <= "\xbf" && $c4 >= "\x80" && $c4 <= "\xbf") {
$buf .= $c1 . $c2 . $c3 . $c4;
$i += 3;
} else {
$buf .= '?';
}
} else { // invalid
$buf .= '?';
}
}
return $buf;
}
}

View file

@ -11,7 +11,6 @@
namespace Fetch\Test;
/**
* @package Fetch
* @author Robert Hafner <tedivm@tedivm.com>
@ -27,6 +26,7 @@ class AttachmentTest extends \PHPUnit_Framework_TestCase
$returnAttachments = array();
foreach($attachments as $attachment)
$returnAttachments[$attachment->getFileName()] = $attachment;
return $returnAttachments;
}
@ -100,20 +100,16 @@ class AttachmentTest extends \PHPUnit_Framework_TestCase
$this->assertFileExists($filepath);
$this->assertEquals(md5(file_get_contents($filepath)), md5($attachment_RCA->getData()));
$attachments = static::getAttachments('6');
$attachment_RCA = $attachments['RCA_Indian_Head_test_pattern.JPG.zip'];
$this->assertFalse($attachment_RCA->saveToDirectory('/'), 'Returns false when attempting to save without filesystem permission.');
$attachments = static::getAttachments('6');
$attachment_RCA = $attachments['RCA_Indian_Head_test_pattern.JPG.zip'];
$this->assertFalse($attachment_RCA->saveToDirectory($filepath), 'Returns false when attempting to save over a file.');
}
static function tearDownAfterClass()
public static function tearDownAfterClass()
{
$tmpdir = rtrim(sys_get_temp_dir(), '/') . '/';
$filepath = $tmpdir . 'RCA_Indian_Head_test_pattern.JPG.zip';

View file

@ -0,0 +1,65 @@
<?php
/*
* This file is part of the Fetch library.
*
* (c) Robert Hafner <tedivm@tedivm.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Fetch\Test;
use Fetch\MIME;
/**
* @package Fetch
* @author Robert Hafner <tedivm@tedivm.com>
* @author Sergey Linnik <linniksa@gmail.com>
*/
class MIMETest extends \PHPUnit_Framework_TestCase
{
public function decodeData()
{
return array(
array(null, null),
array('Just text', 'Just text'),
array('Keith Moore <moore@cs.utk.edu>', '=?US-ASCII?Q?Keith_Moore?= <moore@cs.utk.edu>'),
array('Keld Jørn Simonsen <keld@dkuug.dk>', '=?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@dkuug.dk>'),
array('André Pirard <PIRARD@vm1.ulg.ac.be>', '=?ISO-8859-1?Q?Andr=E9?= Pirard <PIRARD@vm1.ulg.ac.be>'),
array(
'If you can read this you understand the example.',
'=?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?='
. PHP_EOL .
'=?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?='
),
array(
'ab11 ? ?????.jpg',
"\x61\x62\x31\x31\x20\x97\x20\x3f\x3f\x3f\x3f\x3f\x2e\x6a\x70\x67",
),
array(
'?????? ?????.pdf',
'=?UTF-8?B?' .base64_encode("\xCF\xF0\xE8\xEC\xE5\xF0 \xEF\xEB\xE0\xED\xE0\x2E\x70\x64\x66") . '?=',
),
array(
' (ИСТРЕБИТЕЛЬ ЛЕТАЮЩИХ НАСЕКОМЫХ "БАРГУЗИН" КП ДИЛЕР - 2019г)',
' =?ks_c_5601-1987?B?ICisqqyzrLSssqymrKKsqqy0rKasray+IKytrKastKyhrMCsu6yq?=' .
' =?ks_c_5601-1987?B?rLcgrK+soayzrKasrKywrK6svay3ICKsoqyhrLKspKy1?=' .
' =?ks_c_5601-1987?B?rKmsqqyvIiCsrKyxIKylrKqsraymrLIgLSAyMDE5rNQp?=',
),
);
}
/**
* @dataProvider decodeData
*
* @param string $expected
* @param string $text
* @param string $charset
*/
public function testDecode($expected, $text, $charset = 'UTF-8')
{
self::assertSame($expected, MIME::decode($text, $charset));
}
}

View file

@ -12,7 +12,6 @@
namespace Fetch\Test;
use Fetch\Message;
/**
* @package Fetch
* @author Robert Hafner <tedivm@tedivm.com>
@ -22,6 +21,7 @@ class MessageTest extends \PHPUnit_Framework_TestCase
public static function getMessage($id)
{
$server = ServerTest::getServer();
return new \Fetch\Message($id, $server);
}
@ -68,7 +68,6 @@ class MessageTest extends \PHPUnit_Framework_TestCase
$messageNonHTML = $message->getMessageBody();
$this->assertEquals($plaintextTest, md5($messageNonHTML), 'Message returns as plaintext.');
$messageHTML = $message->getMessageBody(true);
$this->assertEquals($convertedHtmlTest, md5($messageHTML), 'Message converts from plaintext to HTML when requested.');
@ -78,6 +77,43 @@ class MessageTest extends \PHPUnit_Framework_TestCase
}
public function testGetPlainTextBody()
{
// easiest way to deal with php encoding issues is simply not to.
$plaintextTest1 = 'f9377a89c9c935463a2b35c92dd61042';
$plaintextTest2 = '0b8fc9b534a1789f1071f996f238a07a';
$plaintextTest3 = 'd41d8cd98f00b204e9800998ecf8427e';
$message = static::getMessage(3);
$messagePlainText = $message->getPlainTextBody();
$this->assertEquals($plaintextTest1, md5($messagePlainText), 'Message returns as plaintext.');
$message = static::getMessage(4);
$messagePlainText = $message->getPlainTextBody();
$this->assertEquals($plaintextTest2, md5($messagePlainText), 'Message returns as plaintext.');
$message = static::getMessage(6);
$messagePlainText = $message->getPlainTextBody();
$this->assertEquals($plaintextTest3, md5($messagePlainText), 'Message does not return as plaintext.');
}
public function testGetHtmlBody()
{
// easiest way to deal with php encoding issues is simply not to.
$HtmlTest1 = 'd41d8cd98f00b204e9800998ecf8427e';
$HtmlTest2 = '6a366ddecf080199284146d991d52169';
$message = static::getMessage(3);
$messageHtml = $message->getHtmlBody();
$this->assertEquals($HtmlTest1, md5($messageHtml), 'Message does not return as HTML.');
$message = static::getMessage(4);
$messageHtml = $message->getHtmlBody();
$this->assertEquals($HtmlTest2, md5($messageHtml), 'Message returns as HTML.');
}
public function testGetAddresses()
{
$message = static::getMessage(3);
@ -130,14 +166,12 @@ class MessageTest extends \PHPUnit_Framework_TestCase
$messageWithoutAttachments = static::getMessage('3');
$this->assertFalse($messageWithoutAttachments->getAttachments(), 'getAttachments returns false when no attachments present.');
$messageWithAttachments = static::getMessage('6');
$attachments = $messageWithAttachments->getAttachments();
$this->assertCount(2, $attachments);
foreach($attachments as $attachment)
$this->assertInstanceOf('\Fetch\Attachment', $attachment, 'getAttachments returns Fetch\Attachment objects.');
$attachment = $messageWithAttachments->getAttachments('Test_card.png.zip');
$this->assertInstanceOf('\Fetch\Attachment', $attachment, 'getAttachment returns specified Fetch\Attachment object.');
}
@ -160,7 +194,6 @@ class MessageTest extends \PHPUnit_Framework_TestCase
$this->assertTrue($message->setFlag('answered', false), 'setFlag returned true.');
$this->assertFalse($message->checkFlag('answered'), 'Message was successfully unanswered.');
$message = static::getMessage('2');
$this->assertFalse($message->checkFlag('flagged'), 'Message is not flagged.');
@ -179,47 +212,67 @@ class MessageTest extends \PHPUnit_Framework_TestCase
// Testing by moving message from "Test Folder" to "Sent"
// Count Test Folder
$server->setMailBox('Test Folder');
$testFolderNumStart = $server->numMessages();
$testFolderNumStart = $server->numMessages('Test Folder');
$server->setMailbox('Test Folder');
$this->assertEquals($testFolderNumStart, $server->numMessages(), 'Server presents consistent information between numMessages when mailbox set and directly queried for number of messages');
// Get message from Test Folder
$message = $server->getMessageByUid(1);
$message = current($server->getMessages(1));
$this->assertInstanceOf('\Fetch\Message', $message, 'Server returned Message.');
// Switch to Sent folder, count messages
$server->setMailBox('Sent');
$sentFolderNumStart = $server->numMessages();
$sentFolderNumStart = $server->numMessages('Sent');
$server->setMailbox('Sent');
$this->assertEquals($sentFolderNumStart, $server->numMessages(), 'Server presents consistent information between numMessages when mailbox set and directly queried for number of messages');
// Switch to "Flagged" folder in order to test that function properly returns to it
$this->assertTrue($server->setMailBox('Flagged Email'));
// Move the message!
$this->assertTrue($message->moveToMailBox('Sent'));
// Make sure we're still in the same folder
$this->assertEquals('Flagged Email', $server->getMailBox(), 'Returned Server back to right mailbox.');
$this->assertAttributeEquals('Sent', 'mailbox', $message, 'Message mailbox changed to new location.');
// Make sure Test Folder lost a message
$this->assertTrue($server->setMailBox('Test Folder'));
$this->assertEquals($testFolderNumStart - 1, $server->numMessages(), 'Message moved out of Test Folder.');
// Make sure Sent folder gains one
$this->assertTrue($server->setMailBox('Sent'));
$this->assertEquals($sentFolderNumStart + 1, $server->numMessages(), 'Message moved into Sent Folder.');
}
public function testCharsetConvert()
{
$this->assertSame('Привет', Message::charsetConvert(
implode(array_map('chr', array(0xF0, 0xD2, 0xC9, 0xD7, 0xC5, 0xD4))),
'koi8-r',
'utf-8'
));
$this->assertSame('test', Message::charsetConvert('test', 'unk1', 'unk1'), 'Same charsets not try converting');
$this->assertSame('', Message::charsetConvert('', 'unk1', 'unk1'), 'Empty text not try converting');
$this->assertSame(null, Message::charsetConvert('test', 'unk1', 'utf-8'), 'Null when source charset is unknown');
$this->assertSame(null, Message::charsetConvert('test', 'utf-8', 'unk1'), 'Null when destination charset is unknown');
}
public function testDecode()
{
$quotedPrintableDecoded = "Now's the time for all folk to come to the aid of their country.";
$quotedPrintable = <<<'ENCODE'
Now's the time =
for all folk to come=
to the aid of their country.
ENCODE;
$this->assertEquals($quotedPrintableDecoded, Message::decode($quotedPrintable, 'quoted-printable'), 'Decodes quoted printable');
$this->assertEquals($quotedPrintableDecoded, Message::decode($quotedPrintable, 4), 'Decodes quoted printable');
$testString = 'This is a test string';
$quotedPrintable = quoted_printable_encode($testString);
$this->assertEquals($testString, Message::decode($quotedPrintable, 'quoted-printable'), 'Decodes quoted printable');
$base64 = base64_encode($testString);
$this->assertEquals($testString, Message::decode($base64, 'base64'), 'Decodes quoted base64');
$this->assertEquals($testString, Message::decode($base64, 3), 'Decodes quoted base64');
$notEncoded = '> w - www.somesite.com.au<http://example.com/track/click.php?u=30204369&id=af4110cab28e464cb0702723bc84b3f3>';
$this->assertEquals($notEncoded, Message::decode($notEncoded, 0), 'Nothing to decode');
}
public function testTypeIdToString()
@ -245,5 +298,4 @@ class MessageTest extends \PHPUnit_Framework_TestCase
}
}

View file

@ -19,26 +19,28 @@ use Fetch\Server;
*/
class ServerTest extends \PHPUnit_Framework_TestCase
{
public static $num_messages_inbox = 12;
/**
* @dataProvider flagsDataProvider
* @param string $expected server string with %host% placeholder
* @param integer $port to use (needed to test behavior on port 143 and 993 from constructor)
* @param array $flags to set/unset ($flag => $value)
* @param string $expected server string with %host% placeholder
* @param integer $port to use (needed to test behavior on port 143 and 993 from constructor)
* @param array $flags to set/unset ($flag => $value)
*/
public function testFlags($expected, $port, $flags)
{
$server = new Server(TESTING_SERVER_HOST, $port);
foreach ($flags as $flag => $value) {
$server->setFlag($flag, $value);
}
$this->assertEquals(str_replace('%host%', TESTING_SERVER_HOST, $expected), $server->getServerString());
}
public function testFlagOverwrite()
{
$server = Static::getServer();
$server = static::getServer();
$server->setFlag('TestFlag', 'true');
$this->assertAttributeContains('TestFlag=true', 'flags', $server);
@ -46,8 +48,9 @@ class ServerTest extends \PHPUnit_Framework_TestCase
$server->setFlag('TestFlag', 'false');
$this->assertAttributeContains('TestFlag=false', 'flags', $server);
}
public function flagsDataProvider() {
public function flagsDataProvider()
{
return array(
array('{%host%:143/novalidate-cert}', 143, array()),
array('{%host%:143/validate-cert}', 143, array('validate-cert' => true)),
@ -67,9 +70,9 @@ class ServerTest extends \PHPUnit_Framework_TestCase
/**
* @dataProvider connectionDataProvider
* @param integer $port to use (needed to test behavior on port 143 and 993 from constructor)
* @param array $flags to set/unset ($flag => $value)
* @param string $message Assertion message
* @param integer $port to use (needed to test behavior on port 143 and 993 from constructor)
* @param array $flags to set/unset ($flag => $value)
* @param string $message Assertion message
*/
public function testConnection($port, $flags, $message)
{
@ -84,7 +87,8 @@ class ServerTest extends \PHPUnit_Framework_TestCase
$this->assertInternalType('resource', $imapSteam, $message);
}
public function connectionDataProvider() {
public function connectionDataProvider()
{
return array(
array(143, array(), 'Connects with default settings.'),
array(993, array('novalidate-cert' => true), 'Connects over SSL (self signed).'),
@ -93,25 +97,44 @@ class ServerTest extends \PHPUnit_Framework_TestCase
public function testNumMessages()
{
$server = Static::getServer();
$server = static::getServer();
$numMessages = $server->numMessages();
$this->assertEquals(11, $numMessages);
$this->assertEquals(self::$num_messages_inbox, $numMessages);
$this->assertEquals(0, $server->numMessages( 'DOESNOTEXIST'.time() ) );
}
public function testGetMessages()
{
$server = Static::getServer();
$server = static::getServer();
$messages = $server->getMessages(5);
$this->assertCount(5, $messages, 'Five messages returned');
foreach($messages as $message) {
foreach ($messages as $message) {
$this->assertInstanceOf('\Fetch\Message', $message, 'Returned values are Messages');
}
}
public function testGetMessagesOrderedByDateAsc()
{
$server = static::getServer();
$messages = $server->getOrderedMessages(SORTDATE, false, 2);
$this->assertCount(2, $messages, 'Two messages returned');
$this->assertGreaterThan($messages[0]->getDate(), $messages[1]->getDate(), 'Messages in ascending order');
}
public function testGetMessagesOrderedByDateDesc()
{
$server = static::getServer();
$messages = $server->getOrderedMessages(SORTDATE, true, 2);
$this->assertCount(2, $messages, 'Two messages returned');
$this->assertLessThan($messages[0]->getDate(), $messages[1]->getDate(), 'Messages in descending order');
}
public function testGetMailBox()
{
$server = Static::getServer();
$server = static::getServer();
$this->assertEquals('', $server->getMailBox());
$this->assertTrue($server->setMailBox('Sent'));
$this->assertEquals('Sent', $server->getMailBox());
@ -119,7 +142,7 @@ class ServerTest extends \PHPUnit_Framework_TestCase
public function testSetMailBox()
{
$server = Static::getServer();
$server = static::getServer();
$this->assertTrue($server->setMailBox('Sent'));
$this->assertEquals('Sent', $server->getMailBox());
@ -135,43 +158,59 @@ class ServerTest extends \PHPUnit_Framework_TestCase
public function testHasMailBox()
{
$server = Static::getServer();
$server = static::getServer();
$this->assertTrue($server->hasMailBox('Sent'), 'Has mailbox "Sent"');
$this->assertTrue($server->hasMailBox('Flagged Email'), 'Has mailbox "Flagged Email"');
$this->assertFalse($server->hasMailBox('Cheese'), 'Does not have mailbox "Cheese"');
}
public function testListMailBoxes()
{
$server = static::getServer();
$spec = sprintf('{%s:143/novalidate-cert}', TESTING_SERVER_HOST);
$list = $server->listMailboxes('*');
$this->assertContains($spec.'Sent', $list, 'Has mailbox "Sent"');
$this->assertNotContains($spec.'Cheese', $list, 'Does not have mailbox "Cheese"');
}
public function testCreateMailbox()
{
$server = Static::getServer();
$server = static::getServer();
$this->assertFalse($server->hasMailBox('Cheese'), 'Does not have mailbox "Cheese"');
$this->assertTrue($server->createMailBox('Cheese'), 'createMailbox returns true.');
$this->assertTrue($server->hasMailBox('Cheese'), 'Mailbox "Cheese" was created');
}
public function testDeleteMailbox()
{
$server = static::getServer();
$this->assertTrue($server->hasMailBox('Cheese'), 'Does have mailbox "Cheese"');
$this->assertTrue($server->deleteMailBox('Cheese'), 'deleteMailBox returns true.');
$this->assertFalse($server->hasMailBox('Cheese'), 'Mailbox "Cheese" was deleted');
}
/**
* @expectedException \RuntimeException
*/
public function testSetOptionsException()
{
$server = Static::getServer();
$server = static::getServer();
$server->setOptions('purple');
}
public function testSetOptions()
{
$server = Static::getServer();
$server = static::getServer();
$server->setOptions(5);
$this->assertAttributeEquals(5, 'options', $server);
}
public function testExpunge()
{
$server = Static::getServer();
$server = static::getServer();
$message = $server->getMessageByUid(12);
$this->assertInstanceOf('\Fetch\Message', $message, 'Message exists');
@ -185,10 +224,11 @@ class ServerTest extends \PHPUnit_Framework_TestCase
$this->assertFalse($server->getMessageByUid(12), 'Message successfully expunged');
}
static public function getServer()
public static function getServer()
{
$server = new Server(TESTING_SERVER_HOST, 143);
$server->setAuthentication(TEST_USER, TEST_PASSWORD);
return $server;
}
}

View file

@ -0,0 +1,39 @@
<?php
namespace Fetch\Test;
use Fetch\UTF8;
/**
* @package Fetch
* @author Robert Hafner <tedivm@tedivm.com>
* @author Sergey Linnik <linniksa@gmail.com>
*/
class UTF8Test extends \PHPUnit_Framework_TestCase
{
public function dataFix()
{
return array(
array(
'ab11 ? ?????.jpg',
"\x61\x62\x31\x31\x20\x97\x20\x3f\x3f\x3f\x3f\x3f\x2e\x6a\x70\x67",
),
array(
' ??????????????',
base64_decode('IKytrKastKyhrMCsu6yq'),
)
);
}
/**
* @dataProvider dataFix
*
* @param string $expected
* @param string $text
* @param string $charset
*/
public function testFix($expected, $text)
{
self::assertSame($expected, UTF8::fix($text));
}
}

View file

@ -1,28 +0,0 @@
#!/bin/sh
if [ -n "$TRAVIS" ]; then
echo 'Travis config not yet written'
sudo cp -Rp $TRAVIS_BUILD_DIR/tests/resources /resources
sudo /bin/bash /resources/Scripts/Provision.sh
sudo /bin/bash /resources/Scripts/SSL.sh
else
# Since not in travis, lets load up a system with vagrant
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd $DIR/vagrant
VAGRANTSTATUS=$(vagrant status)
# If vagrant is running already, reprovision it so it has fresh email boxes.
if echo "$VAGRANTSTATUS" | egrep -q "running" ; then
vagrant provision
else
vagrant up --provision
fi
cd $DIR
fi

View file

@ -15,16 +15,14 @@ define('TESTING', true);
define('TEST_USER', 'testuser');
define('TEST_PASSWORD', 'applesauce');
if(getenv('TRAVIS'))
{
date_default_timezone_set('UTC');
if (getenv('TRAVIS')) {
define('TESTING_ENVIRONMENT', 'TRAVIS');
define('TESTING_SERVER_HOST', '127.0.0.1');
}else{
} else {
define('TESTING_ENVIRONMENT', 'VAGRANT');
define('TESTING_SERVER_HOST', '172.31.1.2');
echo 'Initializing Environment using Vagrant' . PHP_EOL;
passthru('/bin/bash ' . __DIR__ . '/SetupEnvironment.sh');
echo 'Environment Initialized' . PHP_EOL . PHP_EOL . PHP_EOL;
}
$filename = __DIR__ .'/../vendor/autoload.php';
@ -36,7 +34,7 @@ if (!file_exists($filename)) {
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" . PHP_EOL . PHP_EOL;
$filename = __DIR__ .'/../autoload.php';
require_once $filename;
}else{
$loader = require_once $filename;
} else {
$loader = require $filename;
$loader->add('Fetch\\Test', __DIR__);
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 320 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

View file

@ -1,93 +0,0 @@
Return-Path: <tedivm@tedivm.com>
Delivered-To: testuser@tedivm.com
Received: from localhost (localhost [127.0.0.1])
by figment.tedivm.com (Postfix) with ESMTP id 631F445C3D
for <testuser@tedivm.com>; Sun, 1 Dec 2013 21:51:12 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tedivm.com; h=
x-mailer:mime-version:to:date:date:message-id:subject:subject
:content-type:content-type:from:from; s=dkim; t=1385963472; x=
1386827472; bh=iIexVfQhqincSLyXKXms7j/pGakP2SIkk2cNvTrrKs0=; b=S
XSPdSP/8CiXd74f/WBBx7sQiZ1HcFIDmhtOka/w8NUu5dJUt+/IsnKk3QhFHLndp
0oOkz48o7WenhbGilFR1fczYdqHAdevyKs2YJ1j9lEFd1pFIjVt+MKzXi25Pxwcf
CCNdoiPAGFpk9KtfgqivRCqN7KktjJ18EFy/86oEDs=
X-Virus-Scanned: Debian amavisd-new at debian
Received: from figment.tedivm.com ([127.0.0.1])
by localhost (figment.tedivm.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id 8rqH8enDtDlO for <testuser@tedivm.com>;
Sun, 1 Dec 2013 21:51:12 -0800 (PST)
Received: from [10.0.42.10] (c-67-180-166-128.hsd1.ca.comcast.net [67.180.166.128])
by figment.tedivm.com (Postfix) with ESMTPSA id E9D1A45C3C
for <testuser@tedivm.com>; Sun, 1 Dec 2013 21:51:10 -0800 (PST)
From: Robert Hafner <tedivm@tedivm.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_4A5F1BD0-F7EF-4E6B-8E33-BF534EF6A627"
Subject: Flagged Green
Message-Id: <34719E6B-5985-469B-B864-E63C2DEC6508@tedivm.com>
Date: Sun, 1 Dec 2013 21:51:10 -0800
To: "testuser@tedivm.com" <testuser@tedivm.com>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
X-Mailer: Apple Mail (2.1510)
--Apple-Mail=_4A5F1BD0-F7EF-4E6B-8E33-BF534EF6A627
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=us-ascii
Green Green Green!
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque =
sollicitudin auctor tellus. Etiam ornare fringilla est, eget iaculis =
tellus pellentesque id. Integer vestibulum, dui at luctus porta, magna =
arcu faucibus turpis, eu vestibulum mauris quam vitae metus. In aliquam =
ornare neque ut aliquam. Vivamus eu tortor feugiat, ultricies nulla at, =
luctus enim. Nunc ultrices nulla et eleifend volutpat. Quisque aliquet =
aliquet elit, eget convallis sapien.
Nullam fringilla turpis ac tortor venenatis, sit amet rutrum odio =
faucibus. Aenean vel mollis diam, id tincidunt libero. Aenean imperdiet =
vestibulum blandit. Curabitur nec metus magna. Phasellus imperdiet, orci =
ut egestas fermentum, diam lacus vehicula felis, eget feugiat velit =
tortor quis tellus. Aliquam at massa ut purus ultrices molestie et a =
ligula. Maecenas tempus at tellus quis malesuada.
Nam sagittis rutrum tellus nec volutpat. Fusce ac leo quis dui eleifend =
scelerisque. In adipiscing pretium sapien at ullamcorper. Sed nec porta =
leo. Curabitur dapibus commodo rutrum. Nulla in odio elit. Sed id =
sodales sapien, at fringilla purus. Quisque ut volutpat odio. Curabitur =
et hendrerit dui, blandit auctor erat.
--Apple-Mail=_4A5F1BD0-F7EF-4E6B-8E33-BF534EF6A627
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
charset=us-ascii
<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Green =
Green Green!<div><br></div><div><p style=3D"margin: 0px 0px 14px; =
text-align: justify; font-size: 11px; font-family: Arial; ">Lorem ipsum =
dolor sit amet, consectetur adipiscing elit. Quisque sollicitudin auctor =
tellus. Etiam ornare fringilla est, eget iaculis tellus pellentesque id. =
Integer vestibulum, dui at luctus porta, magna arcu faucibus turpis, eu =
vestibulum mauris quam vitae metus. In aliquam ornare neque ut aliquam. =
Vivamus eu tortor feugiat, ultricies nulla at, luctus enim. Nunc =
ultrices nulla et eleifend volutpat. Quisque aliquet aliquet elit, eget =
convallis sapien.</p><p style=3D"margin: 0px 0px 14px; text-align: =
justify; font-size: 11px; font-family: Arial; ">Nullam fringilla turpis =
ac tortor venenatis, sit amet rutrum odio faucibus. Aenean vel mollis =
diam, id tincidunt libero. Aenean imperdiet vestibulum blandit. =
Curabitur nec metus magna. Phasellus imperdiet, orci ut egestas =
fermentum, diam lacus vehicula felis, eget feugiat velit tortor quis =
tellus. Aliquam at massa ut purus ultrices molestie et a ligula. =
Maecenas tempus at tellus quis malesuada.</p><p style=3D"margin: 0px 0px =
14px; text-align: justify; font-size: 11px; font-family: Arial; ">Nam =
sagittis rutrum tellus nec volutpat. Fusce ac leo quis dui eleifend =
scelerisque. In adipiscing pretium sapien at ullamcorper. Sed nec porta =
leo. Curabitur dapibus commodo rutrum. Nulla in odio elit. Sed id =
sodales sapien, at fringilla purus. Quisque ut volutpat odio. Curabitur =
et hendrerit dui, blandit auctor =
erat.</p></div><div><br></div></body></html>=
--Apple-Mail=_4A5F1BD0-F7EF-4E6B-8E33-BF534EF6A627--

View file

@ -1,93 +0,0 @@
Return-Path: <tedivm@tedivm.com>
Delivered-To: testuser@tedivm.com
Received: from localhost (localhost [127.0.0.1])
by figment.tedivm.com (Postfix) with ESMTP id 4A91045C3D
for <testuser@tedivm.com>; Sun, 1 Dec 2013 21:50:56 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tedivm.com; h=
x-mailer:mime-version:to:date:date:message-id:subject:subject
:content-type:content-type:from:from; s=dkim; t=1385963455; x=
1386827455; bh=hH8NY8psaE0eLAfEktS1Js1Wr7j8K4CucXDJg0P0VlI=; b=h
ySEh2f4yE56+Hu1Ng3Pm1lo+SBPmCMQR3tUWrlhWoPLxSahhTYfdCQtnFyRQ0joG
wbJj3dan30eyDTHNw6ShqQjN648rK6Imat3SEovTr2RDEZ2JaEifwm6CrMNs8FDi
sBHFE3Eq9old0XYJHuP73NCDpxN9ie7Yf8FUtklFfk=
X-Virus-Scanned: Debian amavisd-new at debian
Received: from figment.tedivm.com ([127.0.0.1])
by localhost (figment.tedivm.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id 3pZVDcwryG-x for <testuser@tedivm.com>;
Sun, 1 Dec 2013 21:50:55 -0800 (PST)
Received: from [10.0.42.10] (c-67-180-166-128.hsd1.ca.comcast.net [67.180.166.128])
by figment.tedivm.com (Postfix) with ESMTPSA id D0C1B45C3C
for <testuser@tedivm.com>; Sun, 1 Dec 2013 21:50:54 -0800 (PST)
From: Robert Hafner <tedivm@tedivm.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_BCD4170E-A89D-46E8-BAA8-D51415456744"
Subject: Flagged Yellow
Message-Id: <9791D31B-DBF0-476D-9D75-3079D6C616C3@tedivm.com>
Date: Sun, 1 Dec 2013 21:50:54 -0800
To: "testuser@tedivm.com" <testuser@tedivm.com>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
X-Mailer: Apple Mail (2.1510)
--Apple-Mail=_BCD4170E-A89D-46E8-BAA8-D51415456744
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=us-ascii
Yellow Yellow Yellow
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque =
sollicitudin auctor tellus. Etiam ornare fringilla est, eget iaculis =
tellus pellentesque id. Integer vestibulum, dui at luctus porta, magna =
arcu faucibus turpis, eu vestibulum mauris quam vitae metus. In aliquam =
ornare neque ut aliquam. Vivamus eu tortor feugiat, ultricies nulla at, =
luctus enim. Nunc ultrices nulla et eleifend volutpat. Quisque aliquet =
aliquet elit, eget convallis sapien.
Nullam fringilla turpis ac tortor venenatis, sit amet rutrum odio =
faucibus. Aenean vel mollis diam, id tincidunt libero. Aenean imperdiet =
vestibulum blandit. Curabitur nec metus magna. Phasellus imperdiet, orci =
ut egestas fermentum, diam lacus vehicula felis, eget feugiat velit =
tortor quis tellus. Aliquam at massa ut purus ultrices molestie et a =
ligula. Maecenas tempus at tellus quis malesuada.
Nam sagittis rutrum tellus nec volutpat. Fusce ac leo quis dui eleifend =
scelerisque. In adipiscing pretium sapien at ullamcorper. Sed nec porta =
leo. Curabitur dapibus commodo rutrum. Nulla in odio elit. Sed id =
sodales sapien, at fringilla purus. Quisque ut volutpat odio. Curabitur =
et hendrerit dui, blandit auctor erat.
--Apple-Mail=_BCD4170E-A89D-46E8-BAA8-D51415456744
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
charset=us-ascii
<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; =
">Yellow Yellow Yellow<div><br></div><div><p style=3D"margin: 0px 0px =
14px; text-align: justify; font-size: 11px; font-family: Arial; ">Lorem =
ipsum dolor sit amet, consectetur adipiscing elit. Quisque sollicitudin =
auctor tellus. Etiam ornare fringilla est, eget iaculis tellus =
pellentesque id. Integer vestibulum, dui at luctus porta, magna arcu =
faucibus turpis, eu vestibulum mauris quam vitae metus. In aliquam =
ornare neque ut aliquam. Vivamus eu tortor feugiat, ultricies nulla at, =
luctus enim. Nunc ultrices nulla et eleifend volutpat. Quisque aliquet =
aliquet elit, eget convallis sapien.</p><p style=3D"margin: 0px 0px =
14px; text-align: justify; font-size: 11px; font-family: Arial; ">Nullam =
fringilla turpis ac tortor venenatis, sit amet rutrum odio faucibus. =
Aenean vel mollis diam, id tincidunt libero. Aenean imperdiet vestibulum =
blandit. Curabitur nec metus magna. Phasellus imperdiet, orci ut egestas =
fermentum, diam lacus vehicula felis, eget feugiat velit tortor quis =
tellus. Aliquam at massa ut purus ultrices molestie et a ligula. =
Maecenas tempus at tellus quis malesuada.</p><p style=3D"margin: 0px 0px =
14px; text-align: justify; font-size: 11px; font-family: Arial; ">Nam =
sagittis rutrum tellus nec volutpat. Fusce ac leo quis dui eleifend =
scelerisque. In adipiscing pretium sapien at ullamcorper. Sed nec porta =
leo. Curabitur dapibus commodo rutrum. Nulla in odio elit. Sed id =
sodales sapien, at fringilla purus. Quisque ut volutpat odio. Curabitur =
et hendrerit dui, blandit auctor =
erat.</p></div><div><br></div></body></html>=
--Apple-Mail=_BCD4170E-A89D-46E8-BAA8-D51415456744--

View file

@ -1,93 +0,0 @@
Return-Path: <tedivm@tedivm.com>
Delivered-To: testuser@tedivm.com
Received: from localhost (localhost [127.0.0.1])
by figment.tedivm.com (Postfix) with ESMTP id DA59345C3D
for <testuser@tedivm.com>; Sun, 1 Dec 2013 21:50:30 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tedivm.com; h=
x-mailer:mime-version:to:date:date:message-id:subject:subject
:content-type:content-type:from:from; s=dkim; t=1385963430; x=
1386827430; bh=yFKo6com4Y5j3uJSC24Rki3FC4/eSePvbB9evr9Cih8=; b=N
GccIClX9Y7AVUKuQ0fvBqfGirnBQwbrIdWCa+3ht9lFew7ybJdo8g8fKThoX9SmI
LIFNX7zrnEVxPvm0IA9lZz3nMGtd0DYfruYVK6qaTsl6b0T1PPiYWCpe0HTFVbBB
nkhNDOnZ94efrveLm56ft/CmAGWFLmPW3ARVBwem70=
X-Virus-Scanned: Debian amavisd-new at debian
Received: from figment.tedivm.com ([127.0.0.1])
by localhost (figment.tedivm.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id S6RwJWTr+VpT for <testuser@tedivm.com>;
Sun, 1 Dec 2013 21:50:30 -0800 (PST)
Received: from [10.0.42.10] (c-67-180-166-128.hsd1.ca.comcast.net [67.180.166.128])
by figment.tedivm.com (Postfix) with ESMTPSA id D260F45C3C
for <testuser@tedivm.com>; Sun, 1 Dec 2013 21:50:29 -0800 (PST)
From: Robert Hafner <tedivm@tedivm.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_1D1765D6-469D-4D42-A596-C74CBF474AF8"
Subject: Flagged Red
Message-Id: <E9EFA81E-BDDB-4AD8-B181-23A4E5B3420C@tedivm.com>
Date: Sun, 1 Dec 2013 21:49:59 -0800
To: testuser@tedivm.com
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
X-Mailer: Apple Mail (2.1510)
--Apple-Mail=_1D1765D6-469D-4D42-A596-C74CBF474AF8
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=us-ascii
Red Red Red!
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque =
sollicitudin auctor tellus. Etiam ornare fringilla est, eget iaculis =
tellus pellentesque id. Integer vestibulum, dui at luctus porta, magna =
arcu faucibus turpis, eu vestibulum mauris quam vitae metus. In aliquam =
ornare neque ut aliquam. Vivamus eu tortor feugiat, ultricies nulla at, =
luctus enim. Nunc ultrices nulla et eleifend volutpat. Quisque aliquet =
aliquet elit, eget convallis sapien.
Nullam fringilla turpis ac tortor venenatis, sit amet rutrum odio =
faucibus. Aenean vel mollis diam, id tincidunt libero. Aenean imperdiet =
vestibulum blandit. Curabitur nec metus magna. Phasellus imperdiet, orci =
ut egestas fermentum, diam lacus vehicula felis, eget feugiat velit =
tortor quis tellus. Aliquam at massa ut purus ultrices molestie et a =
ligula. Maecenas tempus at tellus quis malesuada.
Nam sagittis rutrum tellus nec volutpat. Fusce ac leo quis dui eleifend =
scelerisque. In adipiscing pretium sapien at ullamcorper. Sed nec porta =
leo. Curabitur dapibus commodo rutrum. Nulla in odio elit. Sed id =
sodales sapien, at fringilla purus. Quisque ut volutpat odio. Curabitur =
et hendrerit dui, blandit auctor erat.
--Apple-Mail=_1D1765D6-469D-4D42-A596-C74CBF474AF8
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
charset=us-ascii
<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Red =
Red Red!<div><br></div><div><p style=3D"margin: 0px 0px 14px; =
text-align: justify; font-size: 11px; font-family: Arial; ">Lorem ipsum =
dolor sit amet, consectetur adipiscing elit. Quisque sollicitudin auctor =
tellus. Etiam ornare fringilla est, eget iaculis tellus pellentesque id. =
Integer vestibulum, dui at luctus porta, magna arcu faucibus turpis, eu =
vestibulum mauris quam vitae metus. In aliquam ornare neque ut aliquam. =
Vivamus eu tortor feugiat, ultricies nulla at, luctus enim. Nunc =
ultrices nulla et eleifend volutpat. Quisque aliquet aliquet elit, eget =
convallis sapien.</p><p style=3D"margin: 0px 0px 14px; text-align: =
justify; font-size: 11px; font-family: Arial; ">Nullam fringilla turpis =
ac tortor venenatis, sit amet rutrum odio faucibus. Aenean vel mollis =
diam, id tincidunt libero. Aenean imperdiet vestibulum blandit. =
Curabitur nec metus magna. Phasellus imperdiet, orci ut egestas =
fermentum, diam lacus vehicula felis, eget feugiat velit tortor quis =
tellus. Aliquam at massa ut purus ultrices molestie et a ligula. =
Maecenas tempus at tellus quis malesuada.</p><p style=3D"margin: 0px 0px =
14px; text-align: justify; font-size: 11px; font-family: Arial; ">Nam =
sagittis rutrum tellus nec volutpat. Fusce ac leo quis dui eleifend =
scelerisque. In adipiscing pretium sapien at ullamcorper. Sed nec porta =
leo. Curabitur dapibus commodo rutrum. Nulla in odio elit. Sed id =
sodales sapien, at fringilla purus. Quisque ut volutpat odio. Curabitur =
et hendrerit dui, blandit auctor =
erat.</p></div><div><br></div></body></html>=
--Apple-Mail=_1D1765D6-469D-4D42-A596-C74CBF474AF8--

View file

@ -1,93 +0,0 @@
Return-Path: <tedivm@tedivm.com>
Delivered-To: testuser@tedivm.com
Received: from localhost (localhost [127.0.0.1])
by figment.tedivm.com (Postfix) with ESMTP id 22BCA45C3D
for <testuser@tedivm.com>; Sun, 1 Dec 2013 21:51:59 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tedivm.com; h=
x-mailer:mime-version:to:date:date:message-id:subject:subject
:content-type:content-type:from:from; s=dkim; t=1385963518; x=
1386827518; bh=fNamFUAa8K0xYdJQvCnmBk+epFEfyc4l9PIJoW1Bl1k=; b=H
Ss40aKMtm/eMiwBvfUldixa1IIO5kgfpX93Ubg3D/TL5n5mVTxR3v32Ip4ZospK/
3I3IPnH4bn+mOHOARrt+FHczQs4lLWjZQE0yaDVMQHmPLiAxPkYqCC/Z+gO6hAMz
97TuyPhM71YNvRxraErvFNBTOb0hCIqqscH0hY5Rgo=
X-Virus-Scanned: Debian amavisd-new at debian
Received: from figment.tedivm.com ([127.0.0.1])
by localhost (figment.tedivm.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id 1iO2z0h8QU3B for <testuser@tedivm.com>;
Sun, 1 Dec 2013 21:51:58 -0800 (PST)
Received: from [10.0.42.10] (c-67-180-166-128.hsd1.ca.comcast.net [67.180.166.128])
by figment.tedivm.com (Postfix) with ESMTPSA id 72F5C45C3C
for <testuser@tedivm.com>; Sun, 1 Dec 2013 21:51:57 -0800 (PST)
From: Robert Hafner <tedivm@tedivm.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_AC5B2432-8192-44F2-A6B3-8F6E20FB7F60"
Subject: Flagged Purple
Message-Id: <1E9FFD61-66B3-4E88-A653-15E027426827@tedivm.com>
Date: Sun, 1 Dec 2013 21:51:57 -0800
To: "testuser@tedivm.com" <testuser@tedivm.com>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
X-Mailer: Apple Mail (2.1510)
--Apple-Mail=_AC5B2432-8192-44F2-A6B3-8F6E20FB7F60
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=us-ascii
Purple Purple Purple!
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque =
sollicitudin auctor tellus. Etiam ornare fringilla est, eget iaculis =
tellus pellentesque id. Integer vestibulum, dui at luctus porta, magna =
arcu faucibus turpis, eu vestibulum mauris quam vitae metus. In aliquam =
ornare neque ut aliquam. Vivamus eu tortor feugiat, ultricies nulla at, =
luctus enim. Nunc ultrices nulla et eleifend volutpat. Quisque aliquet =
aliquet elit, eget convallis sapien.
Nullam fringilla turpis ac tortor venenatis, sit amet rutrum odio =
faucibus. Aenean vel mollis diam, id tincidunt libero. Aenean imperdiet =
vestibulum blandit. Curabitur nec metus magna. Phasellus imperdiet, orci =
ut egestas fermentum, diam lacus vehicula felis, eget feugiat velit =
tortor quis tellus. Aliquam at massa ut purus ultrices molestie et a =
ligula. Maecenas tempus at tellus quis malesuada.
Nam sagittis rutrum tellus nec volutpat. Fusce ac leo quis dui eleifend =
scelerisque. In adipiscing pretium sapien at ullamcorper. Sed nec porta =
leo. Curabitur dapibus commodo rutrum. Nulla in odio elit. Sed id =
sodales sapien, at fringilla purus. Quisque ut volutpat odio. Curabitur =
et hendrerit dui, blandit auctor erat.
--Apple-Mail=_AC5B2432-8192-44F2-A6B3-8F6E20FB7F60
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
charset=us-ascii
<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; =
">Purple Purple Purple!<div><br></div><div><p style=3D"margin: 0px 0px =
14px; text-align: justify; font-size: 11px; font-family: Arial; ">Lorem =
ipsum dolor sit amet, consectetur adipiscing elit. Quisque sollicitudin =
auctor tellus. Etiam ornare fringilla est, eget iaculis tellus =
pellentesque id. Integer vestibulum, dui at luctus porta, magna arcu =
faucibus turpis, eu vestibulum mauris quam vitae metus. In aliquam =
ornare neque ut aliquam. Vivamus eu tortor feugiat, ultricies nulla at, =
luctus enim. Nunc ultrices nulla et eleifend volutpat. Quisque aliquet =
aliquet elit, eget convallis sapien.</p><p style=3D"margin: 0px 0px =
14px; text-align: justify; font-size: 11px; font-family: Arial; ">Nullam =
fringilla turpis ac tortor venenatis, sit amet rutrum odio faucibus. =
Aenean vel mollis diam, id tincidunt libero. Aenean imperdiet vestibulum =
blandit. Curabitur nec metus magna. Phasellus imperdiet, orci ut egestas =
fermentum, diam lacus vehicula felis, eget feugiat velit tortor quis =
tellus. Aliquam at massa ut purus ultrices molestie et a ligula. =
Maecenas tempus at tellus quis malesuada.</p><p style=3D"margin: 0px 0px =
14px; text-align: justify; font-size: 11px; font-family: Arial; ">Nam =
sagittis rutrum tellus nec volutpat. Fusce ac leo quis dui eleifend =
scelerisque. In adipiscing pretium sapien at ullamcorper. Sed nec porta =
leo. Curabitur dapibus commodo rutrum. Nulla in odio elit. Sed id =
sodales sapien, at fringilla purus. Quisque ut volutpat odio. Curabitur =
et hendrerit dui, blandit auctor =
erat.</p></div><div><br></div></body></html>=
--Apple-Mail=_AC5B2432-8192-44F2-A6B3-8F6E20FB7F60--

View file

@ -1,93 +0,0 @@
Return-Path: <tedivm@tedivm.com>
Delivered-To: testuser@tedivm.com
Received: from localhost (localhost [127.0.0.1])
by figment.tedivm.com (Postfix) with ESMTP id 3F73D45C3D
for <testuser@tedivm.com>; Sun, 1 Dec 2013 21:51:35 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tedivm.com; h=
x-mailer:mime-version:to:date:date:message-id:subject:subject
:content-type:content-type:from:from; s=dkim; t=1385963494; x=
1386827494; bh=ySy413FySVkRO+LpFSlsGNro/19xMgoUeXDSBvpC4EQ=; b=p
75fMkxVcFK9+QOTB3ZYPIGy9WUuCeGyFHqsLBgXgM4TjJ69hsHPqa2z6/wxNLFkr
6uqJa1qhfZyD692PSeWK0gktpFtTemPz7h3uTYvETQyyloB3SQPvrj3kVyqzdDn6
D9cLmdM/H0tgjYO9xb+6xAqmfThCtxO/FornyRewNk=
X-Virus-Scanned: Debian amavisd-new at debian
Received: from figment.tedivm.com ([127.0.0.1])
by localhost (figment.tedivm.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id oZW8AO0XysZo for <testuser@tedivm.com>;
Sun, 1 Dec 2013 21:51:34 -0800 (PST)
Received: from [10.0.42.10] (c-67-180-166-128.hsd1.ca.comcast.net [67.180.166.128])
by figment.tedivm.com (Postfix) with ESMTPSA id 8775445C3C
for <testuser@tedivm.com>; Sun, 1 Dec 2013 21:51:33 -0800 (PST)
From: Robert Hafner <tedivm@tedivm.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_61224D39-6A7E-4D30-B011-2386728C0595"
Subject: Flagged Blue
Message-Id: <6D82AE84-EECD-4CD2-87D1-79A738859931@tedivm.com>
Date: Sun, 1 Dec 2013 21:51:33 -0800
To: "testuser@tedivm.com" <testuser@tedivm.com>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
X-Mailer: Apple Mail (2.1510)
--Apple-Mail=_61224D39-6A7E-4D30-B011-2386728C0595
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=us-ascii
Blue Blue Blue!
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque =
sollicitudin auctor tellus. Etiam ornare fringilla est, eget iaculis =
tellus pellentesque id. Integer vestibulum, dui at luctus porta, magna =
arcu faucibus turpis, eu vestibulum mauris quam vitae metus. In aliquam =
ornare neque ut aliquam. Vivamus eu tortor feugiat, ultricies nulla at, =
luctus enim. Nunc ultrices nulla et eleifend volutpat. Quisque aliquet =
aliquet elit, eget convallis sapien.
Nullam fringilla turpis ac tortor venenatis, sit amet rutrum odio =
faucibus. Aenean vel mollis diam, id tincidunt libero. Aenean imperdiet =
vestibulum blandit. Curabitur nec metus magna. Phasellus imperdiet, orci =
ut egestas fermentum, diam lacus vehicula felis, eget feugiat velit =
tortor quis tellus. Aliquam at massa ut purus ultrices molestie et a =
ligula. Maecenas tempus at tellus quis malesuada.
Nam sagittis rutrum tellus nec volutpat. Fusce ac leo quis dui eleifend =
scelerisque. In adipiscing pretium sapien at ullamcorper. Sed nec porta =
leo. Curabitur dapibus commodo rutrum. Nulla in odio elit. Sed id =
sodales sapien, at fringilla purus. Quisque ut volutpat odio. Curabitur =
et hendrerit dui, blandit auctor erat.
--Apple-Mail=_61224D39-6A7E-4D30-B011-2386728C0595
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
charset=us-ascii
<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Blue =
Blue Blue!<div><br></div><div><p style=3D"margin: 0px 0px 14px; =
text-align: justify; font-size: 11px; font-family: Arial; ">Lorem ipsum =
dolor sit amet, consectetur adipiscing elit. Quisque sollicitudin auctor =
tellus. Etiam ornare fringilla est, eget iaculis tellus pellentesque id. =
Integer vestibulum, dui at luctus porta, magna arcu faucibus turpis, eu =
vestibulum mauris quam vitae metus. In aliquam ornare neque ut aliquam. =
Vivamus eu tortor feugiat, ultricies nulla at, luctus enim. Nunc =
ultrices nulla et eleifend volutpat. Quisque aliquet aliquet elit, eget =
convallis sapien.</p><p style=3D"margin: 0px 0px 14px; text-align: =
justify; font-size: 11px; font-family: Arial; ">Nullam fringilla turpis =
ac tortor venenatis, sit amet rutrum odio faucibus. Aenean vel mollis =
diam, id tincidunt libero. Aenean imperdiet vestibulum blandit. =
Curabitur nec metus magna. Phasellus imperdiet, orci ut egestas =
fermentum, diam lacus vehicula felis, eget feugiat velit tortor quis =
tellus. Aliquam at massa ut purus ultrices molestie et a ligula. =
Maecenas tempus at tellus quis malesuada.</p><p style=3D"margin: 0px 0px =
14px; text-align: justify; font-size: 11px; font-family: Arial; ">Nam =
sagittis rutrum tellus nec volutpat. Fusce ac leo quis dui eleifend =
scelerisque. In adipiscing pretium sapien at ullamcorper. Sed nec porta =
leo. Curabitur dapibus commodo rutrum. Nulla in odio elit. Sed id =
sodales sapien, at fringilla purus. Quisque ut volutpat odio. Curabitur =
et hendrerit dui, blandit auctor =
erat.</p></div><div><br></div></body></html>=
--Apple-Mail=_61224D39-6A7E-4D30-B011-2386728C0595--

View file

@ -1,93 +0,0 @@
Return-Path: <tedivm@tedivm.com>
Delivered-To: testuser@tedivm.com
Received: from localhost (localhost [127.0.0.1])
by figment.tedivm.com (Postfix) with ESMTP id 1CD1345C3D
for <testuser@tedivm.com>; Sun, 1 Dec 2013 21:53:22 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tedivm.com; h=
x-mailer:mime-version:to:date:date:message-id:subject:subject
:content-type:content-type:from:from; s=dkim; t=1385963601; x=
1386827601; bh=MtXZPSp8LJekOjdujrSkfKmJNP/eZ9SOo/7emBfbZDI=; b=Z
T6vnzKxhkjtMYtjKi6z+RO9rvPSED2xnSITkj16mFpqnWx50tfKd2KBNk3hxCSC1
0jQYiP0zU2C+xXIZ2uRflXoKTu3ywcBgvCdhK0DYER1paI3ofC45QmP7uaNw8PB5
s/vao1dbI0olMpRE2k3cb7MT1jn8vVhMiXFc1uDq6A=
X-Virus-Scanned: Debian amavisd-new at debian
Received: from figment.tedivm.com ([127.0.0.1])
by localhost (figment.tedivm.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id zCfWJqJxqXA6 for <testuser@tedivm.com>;
Sun, 1 Dec 2013 21:53:21 -0800 (PST)
Received: from [10.0.42.10] (c-67-180-166-128.hsd1.ca.comcast.net [67.180.166.128])
by figment.tedivm.com (Postfix) with ESMTPSA id 896AE45C3C
for <testuser@tedivm.com>; Sun, 1 Dec 2013 21:53:20 -0800 (PST)
From: Robert Hafner <tedivm@tedivm.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_6442231D-1386-4D77-8AF9-141ADC38F297"
Subject: Flagged Orange
Message-Id: <F3AB053F-04DB-4A95-A8BA-84A4E0A8E75A@tedivm.com>
Date: Sun, 1 Dec 2013 21:53:20 -0800
To: "testuser@tedivm.com" <testuser@tedivm.com>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
X-Mailer: Apple Mail (2.1510)
--Apple-Mail=_6442231D-1386-4D77-8AF9-141ADC38F297
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=us-ascii
Orange Orange Orange
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque =
sollicitudin auctor tellus. Etiam ornare fringilla est, eget iaculis =
tellus pellentesque id. Integer vestibulum, dui at luctus porta, magna =
arcu faucibus turpis, eu vestibulum mauris quam vitae metus. In aliquam =
ornare neque ut aliquam. Vivamus eu tortor feugiat, ultricies nulla at, =
luctus enim. Nunc ultrices nulla et eleifend volutpat. Quisque aliquet =
aliquet elit, eget convallis sapien.
Nullam fringilla turpis ac tortor venenatis, sit amet rutrum odio =
faucibus. Aenean vel mollis diam, id tincidunt libero. Aenean imperdiet =
vestibulum blandit. Curabitur nec metus magna. Phasellus imperdiet, orci =
ut egestas fermentum, diam lacus vehicula felis, eget feugiat velit =
tortor quis tellus. Aliquam at massa ut purus ultrices molestie et a =
ligula. Maecenas tempus at tellus quis malesuada.
Nam sagittis rutrum tellus nec volutpat. Fusce ac leo quis dui eleifend =
scelerisque. In adipiscing pretium sapien at ullamcorper. Sed nec porta =
leo. Curabitur dapibus commodo rutrum. Nulla in odio elit. Sed id =
sodales sapien, at fringilla purus. Quisque ut volutpat odio. Curabitur =
et hendrerit dui, blandit auctor erat.
--Apple-Mail=_6442231D-1386-4D77-8AF9-141ADC38F297
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
charset=us-ascii
<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; =
">Orange Orange Orange<div><br></div><div><p style=3D"margin: 0px 0px =
14px; text-align: justify; font-size: 11px; font-family: Arial; ">Lorem =
ipsum dolor sit amet, consectetur adipiscing elit. Quisque sollicitudin =
auctor tellus. Etiam ornare fringilla est, eget iaculis tellus =
pellentesque id. Integer vestibulum, dui at luctus porta, magna arcu =
faucibus turpis, eu vestibulum mauris quam vitae metus. In aliquam =
ornare neque ut aliquam. Vivamus eu tortor feugiat, ultricies nulla at, =
luctus enim. Nunc ultrices nulla et eleifend volutpat. Quisque aliquet =
aliquet elit, eget convallis sapien.</p><p style=3D"margin: 0px 0px =
14px; text-align: justify; font-size: 11px; font-family: Arial; ">Nullam =
fringilla turpis ac tortor venenatis, sit amet rutrum odio faucibus. =
Aenean vel mollis diam, id tincidunt libero. Aenean imperdiet vestibulum =
blandit. Curabitur nec metus magna. Phasellus imperdiet, orci ut egestas =
fermentum, diam lacus vehicula felis, eget feugiat velit tortor quis =
tellus. Aliquam at massa ut purus ultrices molestie et a ligula. =
Maecenas tempus at tellus quis malesuada.</p><p style=3D"margin: 0px 0px =
14px; text-align: justify; font-size: 11px; font-family: Arial; ">Nam =
sagittis rutrum tellus nec volutpat. Fusce ac leo quis dui eleifend =
scelerisque. In adipiscing pretium sapien at ullamcorper. Sed nec porta =
leo. Curabitur dapibus commodo rutrum. Nulla in odio elit. Sed id =
sodales sapien, at fringilla purus. Quisque ut volutpat odio. Curabitur =
et hendrerit dui, blandit auctor =
erat.</p></div><div><br></div></body></html>=
--Apple-Mail=_6442231D-1386-4D77-8AF9-141ADC38F297--

View file

@ -1,93 +0,0 @@
Return-Path: <tedivm@tedivm.com>
Delivered-To: testuser@tedivm.com
Received: from localhost (localhost [127.0.0.1])
by figment.tedivm.com (Postfix) with ESMTP id 8AF6E45C3D
for <testuser@tedivm.com>; Sun, 1 Dec 2013 21:52:29 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tedivm.com; h=
x-mailer:mime-version:to:date:date:message-id:subject:subject
:content-type:content-type:from:from; s=dkim; t=1385963549; x=
1386827549; bh=MZ43NFEHGiNkxyQ7rEcvRpAjcgeXAfHOq4rbhKaSlfQ=; b=S
LRduDMGqBZmST/ud1v8wTNm1VdR8gyUpVvhWbez2pYFw5hufKRv+yLf1ozaMJ/7R
7pQiWd0eknN1j5OnlSJ6BFzDfCTWmPRdRmu3xp6EBqDGZx8/PMGw+WnG0YZPeqFo
3J1UWgB70VMKCOP0v7iJCaEJXtW0z/mIA1/SCSe/qI=
X-Virus-Scanned: Debian amavisd-new at debian
Received: from figment.tedivm.com ([127.0.0.1])
by localhost (figment.tedivm.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id m8cNqH2CsW0d for <testuser@tedivm.com>;
Sun, 1 Dec 2013 21:52:29 -0800 (PST)
Received: from [10.0.42.10] (c-67-180-166-128.hsd1.ca.comcast.net [67.180.166.128])
by figment.tedivm.com (Postfix) with ESMTPSA id E327545C3C
for <testuser@tedivm.com>; Sun, 1 Dec 2013 21:52:27 -0800 (PST)
From: Robert Hafner <tedivm@tedivm.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_9B1210FB-6A7F-40A6-BB28-A7A7B7C010C6"
Subject: Flagged Grey
Message-Id: <5D511CEA-CBAC-4F41-AA4A-1849D477DE94@tedivm.com>
Date: Sun, 1 Dec 2013 21:52:27 -0800
To: "testuser@tedivm.com" <testuser@tedivm.com>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
X-Mailer: Apple Mail (2.1510)
--Apple-Mail=_9B1210FB-6A7F-40A6-BB28-A7A7B7C010C6
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=us-ascii
Grey Grey Grey!
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque =
sollicitudin auctor tellus. Etiam ornare fringilla est, eget iaculis =
tellus pellentesque id. Integer vestibulum, dui at luctus porta, magna =
arcu faucibus turpis, eu vestibulum mauris quam vitae metus. In aliquam =
ornare neque ut aliquam. Vivamus eu tortor feugiat, ultricies nulla at, =
luctus enim. Nunc ultrices nulla et eleifend volutpat. Quisque aliquet =
aliquet elit, eget convallis sapien.
Nullam fringilla turpis ac tortor venenatis, sit amet rutrum odio =
faucibus. Aenean vel mollis diam, id tincidunt libero. Aenean imperdiet =
vestibulum blandit. Curabitur nec metus magna. Phasellus imperdiet, orci =
ut egestas fermentum, diam lacus vehicula felis, eget feugiat velit =
tortor quis tellus. Aliquam at massa ut purus ultrices molestie et a =
ligula. Maecenas tempus at tellus quis malesuada.
Nam sagittis rutrum tellus nec volutpat. Fusce ac leo quis dui eleifend =
scelerisque. In adipiscing pretium sapien at ullamcorper. Sed nec porta =
leo. Curabitur dapibus commodo rutrum. Nulla in odio elit. Sed id =
sodales sapien, at fringilla purus. Quisque ut volutpat odio. Curabitur =
et hendrerit dui, blandit auctor erat.
--Apple-Mail=_9B1210FB-6A7F-40A6-BB28-A7A7B7C010C6
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
charset=us-ascii
<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Grey =
Grey Grey!<div><br></div><div><p style=3D"margin: 0px 0px 14px; =
text-align: justify; font-size: 11px; font-family: Arial; ">Lorem ipsum =
dolor sit amet, consectetur adipiscing elit. Quisque sollicitudin auctor =
tellus. Etiam ornare fringilla est, eget iaculis tellus pellentesque id. =
Integer vestibulum, dui at luctus porta, magna arcu faucibus turpis, eu =
vestibulum mauris quam vitae metus. In aliquam ornare neque ut aliquam. =
Vivamus eu tortor feugiat, ultricies nulla at, luctus enim. Nunc =
ultrices nulla et eleifend volutpat. Quisque aliquet aliquet elit, eget =
convallis sapien.</p><p style=3D"margin: 0px 0px 14px; text-align: =
justify; font-size: 11px; font-family: Arial; ">Nullam fringilla turpis =
ac tortor venenatis, sit amet rutrum odio faucibus. Aenean vel mollis =
diam, id tincidunt libero. Aenean imperdiet vestibulum blandit. =
Curabitur nec metus magna. Phasellus imperdiet, orci ut egestas =
fermentum, diam lacus vehicula felis, eget feugiat velit tortor quis =
tellus. Aliquam at massa ut purus ultrices molestie et a ligula. =
Maecenas tempus at tellus quis malesuada.</p><p style=3D"margin: 0px 0px =
14px; text-align: justify; font-size: 11px; font-family: Arial; ">Nam =
sagittis rutrum tellus nec volutpat. Fusce ac leo quis dui eleifend =
scelerisque. In adipiscing pretium sapien at ullamcorper. Sed nec porta =
leo. Curabitur dapibus commodo rutrum. Nulla in odio elit. Sed id =
sodales sapien, at fringilla purus. Quisque ut volutpat odio. Curabitur =
et hendrerit dui, blandit auctor =
erat.</p></div><div><br></div></body></html>=
--Apple-Mail=_9B1210FB-6A7F-40A6-BB28-A7A7B7C010C6--

View file

@ -1,5 +0,0 @@
0 $NotJunk
1 $MailFlagBit0
2 $MailFlagBit1
3 NotJunk
4 $MailFlagBit2

View file

@ -1,8 +0,0 @@
3 V1386550437 N1 G367c59021416a552f73c0000274587c9
1 :1386550861.M440704P15626.tedivm,S=4892,W=4985
2 :1386550861.M531133P15626.tedivm,S=4897,W=4990
3 :1386550861.M640422P15626.tedivm,S=4854,W=4947
4 :1386550862.M81175P15626.tedivm,S=4897,W=4990
5 :1386550862.M98424P15626.tedivm,S=4885,W=4978
6 :1386550862.M112157P15626.tedivm,S=4899,W=4992
7 :1386550862.M124169P15626.tedivm,S=4885,W=4978

View file

@ -1,62 +0,0 @@
From: Test User <testuser@tedivm.com>
Content-Type: multipart/alternative;
boundary="Apple-Mail=_F96B20A9-8CEA-4149-A3F7-33620343B9AD"
X-Smtp-Server: mail.tedivm.com:testuser@tedivm.com
Date: Sun, 1 Dec 2013 21:45:50 -0800
Subject: With BCC
X-Universally-Unique-Identifier: befaa3e3-7baa-4805-a83e-ad60462c5413
Bcc: Robert Hafner <tedium@gmail.com>
To: Robert Hafner <tedivm@tedivm.com>
Message-Id: <CFB01138-A038-4009-BD97-D9D0C5D24969@tedivm.com>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
--Apple-Mail=_F96B20A9-8CEA-4149-A3F7-33620343B9AD
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=us-ascii
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque =
sollicitudin auctor tellus. Etiam ornare fringilla est, eget iaculis =
tellus pellentesque id. Integer vestibulum, dui at luctus porta, magna =
arcu faucibus turpis, eu vestibulum mauris quam vitae metus. In aliquam =
ornare neque ut aliquam. Vivamus eu tortor feugiat, ultricies nulla at, =
luctus enim. Nunc ultrices nulla et eleifend volutpat. Quisque aliquet =
aliquet elit, eget convallis sapien.
Nullam fringilla turpis ac tortor venenatis, sit amet rutrum odio =
faucibus. Aenean vel mollis diam, id tincidunt libero. Aenean imperdiet =
vestibulum blandit. Curabitur nec metus magna. Phasellus imperdiet, orci =
ut egestas fermentum, diam lacus vehicula felis, eget feugiat velit =
tortor quis tellus. Aliquam at massa ut purus ultrices molestie et a =
ligula. Maecenas tempus at tellus quis malesuada.
--Apple-Mail=_F96B20A9-8CEA-4149-A3F7-33620343B9AD
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
charset=us-ascii
<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"><meta http-equiv=3D"Content-Type" content=3D"text/html=
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><p =
style=3D"margin: 0px 0px 14px; text-align: justify; font-size: 11px; =
font-family: Arial; ">Lorem ipsum dolor sit amet, consectetur adipiscing =
elit. Quisque sollicitudin auctor tellus. Etiam ornare fringilla est, =
eget iaculis tellus pellentesque id. Integer vestibulum, dui at luctus =
porta, magna arcu faucibus turpis, eu vestibulum mauris quam vitae =
metus. In aliquam ornare neque ut aliquam. Vivamus eu tortor feugiat, =
ultricies nulla at, luctus enim. Nunc ultrices nulla et eleifend =
volutpat. Quisque aliquet aliquet elit, eget convallis sapien.</p><p =
style=3D"margin: 0px 0px 14px; text-align: justify; font-size: 11px; =
font-family: Arial; ">Nullam fringilla turpis ac tortor venenatis, sit =
amet rutrum odio faucibus. Aenean vel mollis diam, id tincidunt libero. =
Aenean imperdiet vestibulum blandit. Curabitur nec metus magna. =
Phasellus imperdiet, orci ut egestas fermentum, diam lacus vehicula =
felis, eget feugiat velit tortor quis tellus. Aliquam at massa ut purus =
ultrices molestie et a ligula. Maecenas tempus at tellus quis =
malesuada.</p><div><br></div></body></html>=
--Apple-Mail=_F96B20A9-8CEA-4149-A3F7-33620343B9AD--

View file

@ -1,73 +0,0 @@
From: Test User <testuser@tedivm.com>
Content-Type: multipart/alternative;
boundary="Apple-Mail=_2AACDAB7-026D-4FC9-B113-F8490EFB9DA2"
X-Smtp-Server: mail.tedivm.com:testuser@tedivm.com
Subject: With CC
X-Universally-Unique-Identifier: b4585806-ac35-4451-afa7-5b3001c5cb47
Date: Sun, 1 Dec 2013 21:46:22 -0800
Message-Id: <A37F82E5-AB34-480C-A2CC-FF6846D1C964@tedivm.com>
Cc: Robert Hafner <tedium@gmail.com>
To: Robert Hafner <tedivm@tedivm.com>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
--Apple-Mail=_2AACDAB7-026D-4FC9-B113-F8490EFB9DA2
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=us-ascii
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque =
sollicitudin auctor tellus. Etiam ornare fringilla est, eget iaculis =
tellus pellentesque id. Integer vestibulum, dui at luctus porta, magna =
arcu faucibus turpis, eu vestibulum mauris quam vitae metus. In aliquam =
ornare neque ut aliquam. Vivamus eu tortor feugiat, ultricies nulla at, =
luctus enim. Nunc ultrices nulla et eleifend volutpat. Quisque aliquet =
aliquet elit, eget convallis sapien.
Nullam fringilla turpis ac tortor venenatis, sit amet rutrum odio =
faucibus. Aenean vel mollis diam, id tincidunt libero. Aenean imperdiet =
vestibulum blandit. Curabitur nec metus magna. Phasellus imperdiet, orci =
ut egestas fermentum, diam lacus vehicula felis, eget feugiat velit =
tortor quis tellus. Aliquam at massa ut purus ultrices molestie et a =
ligula. Maecenas tempus at tellus quis malesuada.
Nam sagittis rutrum tellus nec volutpat. Fusce ac leo quis dui eleifend =
scelerisque. In adipiscing pretium sapien at ullamcorper. Sed nec porta =
leo. Curabitur dapibus commodo rutrum. Nulla in odio elit. Sed id =
sodales sapien, at fringilla purus. Quisque ut volutpat odio. Curabitur =
et hendrerit dui, blandit auctor erat.
--Apple-Mail=_2AACDAB7-026D-4FC9-B113-F8490EFB9DA2
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
charset=us-ascii
<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><p =
style=3D"margin: 0px 0px 14px; text-align: justify; font-size: 11px; =
font-family: Arial; ">Lorem ipsum dolor sit amet, consectetur adipiscing =
elit. Quisque sollicitudin auctor tellus. Etiam ornare fringilla est, =
eget iaculis tellus pellentesque id. Integer vestibulum, dui at luctus =
porta, magna arcu faucibus turpis, eu vestibulum mauris quam vitae =
metus. In aliquam ornare neque ut aliquam. Vivamus eu tortor feugiat, =
ultricies nulla at, luctus enim. Nunc ultrices nulla et eleifend =
volutpat. Quisque aliquet aliquet elit, eget convallis sapien.</p><p =
style=3D"margin: 0px 0px 14px; text-align: justify; font-size: 11px; =
font-family: Arial; ">Nullam fringilla turpis ac tortor venenatis, sit =
amet rutrum odio faucibus. Aenean vel mollis diam, id tincidunt libero. =
Aenean imperdiet vestibulum blandit. Curabitur nec metus magna. =
Phasellus imperdiet, orci ut egestas fermentum, diam lacus vehicula =
felis, eget feugiat velit tortor quis tellus. Aliquam at massa ut purus =
ultrices molestie et a ligula. Maecenas tempus at tellus quis =
malesuada.</p><p style=3D"margin: 0px 0px 14px; text-align: justify; =
font-size: 11px; font-family: Arial; ">Nam sagittis rutrum tellus nec =
volutpat. Fusce ac leo quis dui eleifend scelerisque. In adipiscing =
pretium sapien at ullamcorper. Sed nec porta leo. Curabitur dapibus =
commodo rutrum. Nulla in odio elit. Sed id sodales sapien, at fringilla =
purus. Quisque ut volutpat odio. Curabitur et hendrerit dui, blandit =
auctor erat.</p><div><br></div></body></html>=
--Apple-Mail=_2AACDAB7-026D-4FC9-B113-F8490EFB9DA2--

View file

@ -1,94 +0,0 @@
From: Test User <testuser@tedivm.com>
Content-Type: multipart/alternative;
boundary="Apple-Mail=_B695AE8B-F4EE-42BA-85DD-C5EB4B7F4DA9"
X-Smtp-Server: mail.tedivm.com:testuser@tedivm.com
Subject: Flagged
Message-Id: <170E4586-34E9-44C6-951E-09500B90E123@tedivm.com>
X-Universally-Unique-Identifier: d5ed9c14-5279-43ba-abda-582d0f1ba003
Date: Sun, 1 Dec 2013 21:47:33 -0800
To: Robert Hafner <tedium@gmail.com>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
--Apple-Mail=_B695AE8B-F4EE-42BA-85DD-C5EB4B7F4DA9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=us-ascii
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque =
sollicitudin auctor tellus. Etiam ornare fringilla est, eget iaculis =
tellus pellentesque id. Integer vestibulum, dui at luctus porta, magna =
arcu faucibus turpis, eu vestibulum mauris quam vitae metus. In aliquam =
ornare neque ut aliquam. Vivamus eu tortor feugiat, ultricies nulla at, =
luctus enim. Nunc ultrices nulla et eleifend volutpat. Quisque aliquet =
aliquet elit, eget convallis sapien.
Nullam fringilla turpis ac tortor venenatis, sit amet rutrum odio =
faucibus. Aenean vel mollis diam, id tincidunt libero. Aenean imperdiet =
vestibulum blandit. Curabitur nec metus magna. Phasellus imperdiet, orci =
ut egestas fermentum, diam lacus vehicula felis, eget feugiat velit =
tortor quis tellus. Aliquam at massa ut purus ultrices molestie et a =
ligula. Maecenas tempus at tellus quis malesuada.
Nam sagittis rutrum tellus nec volutpat. Fusce ac leo quis dui eleifend =
scelerisque. In adipiscing pretium sapien at ullamcorper. Sed nec porta =
leo. Curabitur dapibus commodo rutrum. Nulla in odio elit. Sed id =
sodales sapien, at fringilla purus. Quisque ut volutpat odio. Curabitur =
et hendrerit dui, blandit auctor erat.
Nunc laoreet quis lacus vitae lobortis. In tincidunt rhoncus velit, ac =
egestas odio sollicitudin sed. Nam fermentum sapien vel tortor aliquam, =
vel lobortis ante dictum. Nulla commodo velit at velit tincidunt =
condimentum. Etiam tellus enim, fringilla sed leo sit amet, dignissim =
auctor ligula. Proin mattis, nisi quis varius convallis, nulla lectus =
elementum sem, vel aliquam quam nibh quis tellus. Phasellus tempor eget =
sem vitae rutrum. Donec bibendum condimentum pellentesque. Pellentesque =
suscipit felis nec sagittis ullamcorper. Duis sit amet est in risus =
vehicula mollis. Nunc venenatis lacus ipsum, ut consectetur risus =
egestas sed.
--Apple-Mail=_B695AE8B-F4EE-42BA-85DD-C5EB4B7F4DA9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
charset=us-ascii
<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><p =
style=3D"margin: 0px 0px 14px; text-align: justify; font-size: 11px; =
font-family: Arial; ">Lorem ipsum dolor sit amet, consectetur adipiscing =
elit. Quisque sollicitudin auctor tellus. Etiam ornare fringilla est, =
eget iaculis tellus pellentesque id. Integer vestibulum, dui at luctus =
porta, magna arcu faucibus turpis, eu vestibulum mauris quam vitae =
metus. In aliquam ornare neque ut aliquam. Vivamus eu tortor feugiat, =
ultricies nulla at, luctus enim. Nunc ultrices nulla et eleifend =
volutpat. Quisque aliquet aliquet elit, eget convallis sapien.</p><p =
style=3D"margin: 0px 0px 14px; text-align: justify; font-size: 11px; =
font-family: Arial; ">Nullam fringilla turpis ac tortor venenatis, sit =
amet rutrum odio faucibus. Aenean vel mollis diam, id tincidunt libero. =
Aenean imperdiet vestibulum blandit. Curabitur nec metus magna. =
Phasellus imperdiet, orci ut egestas fermentum, diam lacus vehicula =
felis, eget feugiat velit tortor quis tellus. Aliquam at massa ut purus =
ultrices molestie et a ligula. Maecenas tempus at tellus quis =
malesuada.</p><p style=3D"margin: 0px 0px 14px; text-align: justify; =
font-size: 11px; font-family: Arial; ">Nam sagittis rutrum tellus nec =
volutpat. Fusce ac leo quis dui eleifend scelerisque. In adipiscing =
pretium sapien at ullamcorper. Sed nec porta leo. Curabitur dapibus =
commodo rutrum. Nulla in odio elit. Sed id sodales sapien, at fringilla =
purus. Quisque ut volutpat odio. Curabitur et hendrerit dui, blandit =
auctor erat.</p><p style=3D"margin: 0px 0px 14px; text-align: justify; =
font-size: 11px; font-family: Arial; ">Nunc laoreet quis lacus vitae =
lobortis. In tincidunt rhoncus velit, ac egestas odio sollicitudin sed. =
Nam fermentum sapien vel tortor aliquam, vel lobortis ante dictum. Nulla =
commodo velit at velit tincidunt condimentum. Etiam tellus enim, =
fringilla sed leo sit amet, dignissim auctor ligula. Proin mattis, nisi =
quis varius convallis, nulla lectus elementum sem, vel aliquam quam nibh =
quis tellus. Phasellus tempor eget sem vitae rutrum. Donec bibendum =
condimentum pellentesque. Pellentesque suscipit felis nec sagittis =
ullamcorper. Duis sit amet est in risus vehicula mollis. Nunc venenatis =
lacus ipsum, ut consectetur risus egestas =
sed.</p><div><br></div></body></html>=
--Apple-Mail=_B695AE8B-F4EE-42BA-85DD-C5EB4B7F4DA9--

View file

@ -1,445 +0,0 @@
From: Test User <testuser@tedivm.com>
Content-Type: multipart/mixed;
boundary="Apple-Mail=_11F63200-BC6D-4915-A84C-2984BD601459"
X-Smtp-Server: mail.tedivm.com:testuser@tedivm.com
Subject: With Attachment
Message-Id: <53BAE44F-A805-4EC3-B248-CE2B475C9117@tedivm.com>
X-Universally-Unique-Identifier: f0448cb5-1fcc-4fec-aa13-94138c1a27e7
Date: Sun, 1 Dec 2013 21:44:47 -0800
To: Robert Hafner <tedivm@tedivm.com>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
--Apple-Mail=_11F63200-BC6D-4915-A84C-2984BD601459
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
charset=us-ascii
See Attached
--Apple-Mail=_11F63200-BC6D-4915-A84C-2984BD601459
Content-Disposition: attachment;
filename=Test_card.png.zip
Content-Type: application/zip;
name=Test_card.png.zip
Content-Transfer-Encoding: base64
UEsDBBQACAAIAB2sgUMAAAAAAAAAAAAAAAANABAAVGVzdF9jYXJkLnBuZ1VYDAAkHpxSihucUvUB
FADkfHVU1N/X7oBIKiEpSChISQhIKCUiIC3dICk1dNeAiChIS8eIEtLN0IMgXUoNPXQPnZMXv7/3
p/fP9677rrvuve8fLNbZc84+z37O3vvz2eecmQ8vNZRukjKSAgCAm8ovnmsDAPihAACePTHhlaRH
WEXr6h+ep7bSM0D58J2tqwbBazl1OQCgKo4MbXn9qk3i9sLIEwAg//H7Dy/5ATkTAGD3SPm5nK6f
OaJ1p0JUNQQ+4YSoExxBzK1npR/67d4O9BNKsOZ71M3G8JzzFQ+HXNS9tNC3+LdaVmQBqs8Xie9G
0L844Ix6+iLNLeYeDYeT2vIh5X0fq1skZBwPuWNFfsi8FtgYzDqWQk0Hzl8El+zAmn0QexOtAq0+
FXUymG855vNmME09g2CUwUSrEvQiGtqA3jaAGqtxJlk1mtLN1J7Dl35ElZVA6/3IT5HfnuvXqEcf
+pkOKs6AabtO1d2DMcV+HpcVBFD6Y+HFIT8jPsYV+8JqhZ9nvRTtPTbmdkd2UsKxA8sxClofFRUO
LVrQl8vhFDLc2KPX2LHRTokHHy/JZqd3ASqPf/KRnhx9qKrDlFjwRu2DoNzlWJRwzQDsdK6Vm+6t
OoGAyo2vsx4VPjxiSS96ZotmKrJZ583ftV3KIlmxK8uBcFTIoWAwyunVXGi7/SNBxUkXpcmwOMUV
K8uemfWvx1ZF5NNIRELd/vHWl7ShjclgXJ+VTCbtvvkCTU2R6OXAl7SZEJqdD+Y2rSrx44aGs/rn
kiInEB+muTmaLnDbRWY9lGfdwJXGcwXb1FDf9kNKAH6D5CN9Rf/sj2594AYZ2Y96obBf4m2HMWwA
sJS/9mBpWMmviprsJsAjjD40RiWl5rBUooa8wA+IfzBRd7oEuncBpQ6N5q5vLbSIDNFCLybFwcjc
HrUNkC8iCl3fYmK8ibcb4IaGPS5zuNFVTVooZhZqhk7VxDo3hGSStEe/R4niu5XQufuffUnLAtOL
cwKgqNZ9uv3neH6NQbd38nPN4vqPfQ3EnXAmtiGAsNcKjytp2Zk2nZtNB5+BDo5KV91FBfO7WriJ
ml5D9u8CfF+6DuQXiddBbWlCFPr862sjT1+yilCzRS+nS7eMqOUS4Nm/Wd1eDz94JSv6/RvW7vbs
4Ry6TNJn7zMDEVNX2XgNcGOybURQIGp2QDwaBquIlj36JUiE5xeInSNY/nLBsUAvAKj4Aghivr4o
QrCoD3x14gQ9c5IDFGu5Vl9x5JwyEGAKIaI/vY/vRHFRUV4RXbhSeN8OZENzBuxuOz1BcupJDT4U
aAmGvkeI+/TiNA5d6fehuJBDsGwcXdFUhUHEhxR57xNnp1vxXYI3ErvRLc4bXUMgQxq7BN4cbONR
BmTLVudaDK1vMUJcae9Oy2Nk1UzRy0aFA8Xs/uoLE9Ce+I3z8yjZo3NshOgDin0KYt3sWrNDy5cb
q3Z27hn9aqcr+X2ONhRz/vBro6ck34IH9Ag/eTKxF3Y1T4KgwvJ9o4zoCzUR+7WbQswKqpfVpZ95
p+yqbTFoFof37k/mA7etymFPxPDw4SzEgUr3BrytWifH/NL6q0Js62oSTu9A6MJFnAY9loHZPpsx
ooXsTskEqtt2Pm2TDm5d0ov3fYRj80TI9Jhgnx2IzioFdojpCvmR1PR+lzdia/THlyA8Hz/UeZvc
0zsVxLp5VpgPVrAIu88zNEQdEzEbEQz1BltSfKK3oxovxTfBEXQLOzUTz9ncfIUzkvpEM/4gr0Bq
x+gRd7d3csQkcropcVEhOwhJkFeYpm62QJLdX3V8dBR7s7gx4nTMY3+wIlr8Nfi5e+L7xAxH3us3
XICElvG1scZvbM8GL6Bm5Gke5rIC7RjDlNLxbGSoUR18iuh9zEdmF2YqcSGPB8mTAlmCpZL+QAag
cZhP8+1rrPo/RlAECEzuj8bY8t28OgRTDYHAcqfGffKkENPT5O7O/QmprFyY/C6Ri0sth6PW3Mzg
90e1ByWLKXaXScdlo1tuC8Xz18nYZlmIe++tlY45CBa014eDyRYYMgsops6ethP1S3Mo3EoIrbuM
KNO0nqUKq5fxmzjlVF2OrfYZ/zX+Ii596N4nwqKvApevSA1I2oN4JSCEBfodc1YSaaM3HrJnFP8q
OJMyUHojMA3kt8X/+fpNOsssv51VIAH+lpeNI7JS5i3RudI3Cs1EmRbxi3L+ow8Zjt2lkE+aIlYZ
HiOnOaRUz5VHKj+w4HM9D8XaaCabvcYrpd4I7B/+dT/pYO27HbQuGjB3bf9A19NV75zl1n0S4qeL
DcS9fLcK71CBevTqPhHix8kB8KZETlF0T93OP2Zu3nUTJqAM49KZoKHBb6V8mnDyJvnFXQAe8VMA
PqWhcmhqL0tdGBuAlVb2g/yVJBRAwPYS20VQH3zrKWAvScxB7j+EbmDA8r6WMQH+gVZlEjcB228N
iz9IHl5Hf7sJwLv4dqF8518drz7YBQPw3XCDylT/IQn7BBhrD3SlIG5vZeeS+2fm3/KDBgLK0LgB
8Pi/4YS2L5CwAc5jswj+SlZ+4wiDtk1VgJx/j6q/99nluauG42uQVeLN3x0KCLrlstLIQBUp5LY6
sTFL2gUD+RghTe/FxHm00GF2DWeHEtsiYgpJufPiFv3sBbvN1rdEr7Ztkeqe0y5T0J00hBbxwWXi
vFUcaGPmtLe1N7sOcV/rzfEG27ZlSUA7fgNt215YFc77dYQm8dPPYQC6pxmEBGyV7PjE7cxhHIx/
jHHjvjImUltnlfovDe+vaFBi+0D4R3KHFI9gMXec5vLtv9pXgyXvhQLmqF58CfsjiXwGwPPjFlWQ
+UtCLDEbwJcg0Z7tjySX8imARUU9QfMPgP9KSG6agFhFpOqK8797XUl71BbDrrs1mrJ4+vMw/Vso
zx6KcdgXHZW4zuf0+Qeb/vdWGAnJs0U3kk08YYkHz7bHGwcuH8vKzCUmehI/fcWE31hGMjsm9kic
dIDmQHGKmADv32DJUwE67ZEmvqt/vcj5eSgkVLxDke3ffXwUQ0VDJeWnRe8RvDLQvgj/A03pN2Mc
tMpCf/h5anBFRnneAdGfCWLfAvAPXvAmWv2bHUBY+RU9ZspLFH+5ILniIkGXo+uv1WZXDtmc2MH6
7zalxK0rzexFL6Lw/qhuunJRn/sRsn+J57jSrKSdQHPtj2qv+6GAXRVS0B9CF19crWlc3j0ewj+q
N1WuAjeZBnsFzQefHRW99z0dNs6PMBweuXQP/HjxL9AsV8MCQ1U+/VH0qvdqMvly5iPCP4AC2K4m
w+PVevbH1LvUTwHkjT69TH8nCwPgVxJ9e07yZ9Q7NQCexOrMXdc/qj8TXdnK8vnW/T+jGISvGIp3
imyR+6P6/xZAiz+J+VIVqLJspbzZJVOOPUOC7NfYof/PLf2/Azzhd4ArK2jf+KP6Z/IVQQ940H+p
Z78bCpBKjMpj+EvQA7z/ldiopWaIiboncZzRlM/8O1Bd4qhY/zXXtSs9FC8/3PpjxY30q8zRWye/
8FcPxZWp0k/vq/xB+NDmSvNdGLn/3+mlr8w4AyRz/81l8Ve0RppKrt78o/rk6ZXx13S//M1A8pyh
gDseiHjxv8b/3wLoDmPYWjX3m5qPhS42PR4hw3EUZUGr9P/HVuz/0Wz2VUuL4LW5DqTW+rHsRg9C
aPnaf99E9Z8BFCbPXmlKp+CWcjges/v7AXCYmxyHfvb/ZRL6r3LpnxqvHvFGLQ46baf48G1soBuk
FYP+Gyeq/wwgN3uClIEvxMPCOU0J/zwAZGqPEiz+v0xC/2UuPUPyUfHqNcNffX40dg2dxQrpeU/x
3zlRcVXW4vfGfJE8OYoH/SdeOAwzGgUb7C+dKML+xZofwdWHSqEaiX+XUejKQViTZBzkF3WJKwkP
dB0zPK7MJPqtl41WQexvQJT/LosUEv3+rm7Y79V9oZCg/rcsenCl3yyBg+WvK7FdgSfS1rL5n8qi
qKuIMOD4QPTXb4mvWAjTpZn+G1rNvys1WuXlv5Xa/z6kz+ntowJ9Vf9Q3c52NZZI66YN/l9ccVe4
QKXKJPg9mv8kt9JvHv+qyR6+uNIhp0+W/uYPGgzVVcLoSUm7AgMhqCaMr/9npV5eGRteTC587Y8T
ILmuXAcsxPM3auWuRpIXP+m98dd1rir4SlB3HuDPKEKFK9f5ts0m8td1QFcQsLeT8P+6Ds0VaZ+L
wwf/qsZerSXqtRrpX9f53wAk3k0W7a81R1Tq6dxKeQB9nKm0BwpPgSrMkp3xjoq1qZ+OuZbHip0d
epj2Vskt2hMbsgrHllepqYNMpPY3HgtEkd/YlItd38tl+2sDU1iVs24y0/T+ZspXLaqsLh3Mmef5
WVNI0/Bi38/XmbUnDX62fKsyd7Jp4eIGDCXNiDn0TGNjdklHVwnWpmavzUSaFVxBqMHuVOlxvFyd
Rkvv80qhwtPWuwqo2j4t8LFuzsO8qWPG380IdbZy+YO3b67IFftpDyPnwnPqk4EUaVnQNMC8j3wN
gkF8LJdaatYdmd8/SZA0+FaW4QkyrIVAPcdCjKqu78Bt3RjvrT2DA8/b0yfyTTfnhvRSnkFlp5oJ
jJxGKBuCRTgJ/3EBSvu0biOB1Ig7v7NAmPoV+eL36Tsdbmu4nX27dz7OYrK6YM4X7bseYOPPPD+e
Y1o+NG1t6xf1QVOceX3LYHjNNR0XfnOhdp0vx+Kj66CKx2wbuZWNd22MpGGoZL/fKQ3rY319+vSi
Vb7spvyKlXTpogxJb1UVl+xh/tvm6iELnFSDDWaDijVWMmJtLglWUBayjS3EWFmwOSv1DmRNYLej
sW5sWW9rDh7rAk6K46w6KhJkiDEnNKjbMdT0nB2YP51YuygyAUCuhye5hgL+CdZQAsXzlNQ7r/B6
hQnYDr4RVAJc3sNhGXqBNRcxg/xA92duxuv0cx03/FowzXfXz1413q80TjobLAWte5Dp2LrXPTHK
MJniZzNI94BhgEZzk1GBvUut75wRbnc3Urghlat05f24WL7FyEGBoWaIvLj3hShEoogs4a7KRszW
xFGpn9Ve3uyCwLaMhbXRKZcB4czcOMOIMwL+YufDUFd+qF5P7V4GEA23SEKwTQyXBQverDS1dfAm
A+4aDNu9jjB9XL/gDQ9BVVrEkeBXmlktXsMfIvARImb2uFMbo8Qeev3g18+khwSxb9r9bMg+jDjz
ymmo5hZDnGrzuG6o2U2TlgfgRcL7Zna2b27aSzQJxXroNFYtVIYwzlVLwEi/V//a9UCc3Y2ONFtt
He4opNeqM1dyEsCQHIUp3DfGNrXwNPSPaHldM6H5YtxpvZPfvf5GT8UVqkRmkXRdDLRzqgtfHoC9
1N/RYoeelOkIJdL+nPN6xOPSU89GGT1qdyNj0ljA9l1itAhBcpcg4cMdnbuQSjKP5s1Ojcfk+wFv
Dea7PW6Zor8pGr7h8bUbaFwrhoQfh2A+3XbR8uELNfkYDJSbEK9BpD/FDx5kLApZKiRrQFgWxlvP
8ofpgJTtII8+ABcJ/JqDobSPBPIaOmfF11QDkdVPL73xTJoLCtnKLGv2A/hPdfPEDVmdCzHETbWQ
Q21fLdNZ2EY5kLbzkUTrbecT/Cbx9Y0uJxPFo9GFZSfzTDr+t2Z6mJDZATdt1a7IUg5r1L6ak3e/
q2BbvaBp/2WSje3MMOybaJmeJMJu3kWPxHU1wuXeE6fKekJ9jLLbJXVAyMdKnv18NMozBA4rU08C
mdGrmsCbsmS/40/UgZ2PDVoxTotcfU8W7d354YYQwccXDwpVg4+1XYawjLjbNRLWlI1zU0+sHkO8
ULemHB3sxgY73BQLwvv7GrZMtENCijSygYH4r+ZyLBnld6nsJuUHS13N1Ta60IqtdSyvzi5ianVo
o/DnbZbXUV7NwJ0fYnfwF+LgRirvkiDy/cqni8xlmlWs807w4BctAf0lGLm+/fTvq0mv8G7QyabO
IN8Z75Fmj53vavta9xRuOEeAY0BjVi0SI3PUkik1x/V7+3MsMMGPOx5H1X7eh1rutps56YGV2cXx
U7VzVIvpMiX2Ta52CH0Nzc0Ayd2u3Q9GpisZA59JJ9qHeJ66+QgYkkO8MtdxDB3z1GGT4jSTFBeM
xQV1oMbrHMED3rOnaZF3ZPYps5JMPmcVDjPVZB7D+c01sSHN+WcMM0Zg22/dzRdPVyoSAoKzTF4H
uwBR6zGjjTgREws+CBDnXrwkD8/tUPpML8ZvR03kOmhBtGG4juw0Mva4neos4tLt0/Q18I2CpDSP
05crf2rBO1n0oEsFZ98H+ZeqzAcmqhw0bjCTtOsg2oNJJd7vvGAqeTESk7NJJBfqMMesHuz0Id17
0VjyzpNDufE9ZVurE03MMcj3cnW7uEEC5SEEm7U9q2T3PXU2n1tYoFtJKBOxDHz6VL/Aa/d4ZW4l
PVhlu671jr/LDjfoxPN1FwiFNAiq5WMCicbYlclKUZU1Zh9Fk393Zobl6wuyMRz05V1gKtCnyzWy
pzpdFehBMH9Y7Am9UWmc0fOSz6WzowIrBf6DojtLz1st0rpcLQeeC+BmUF2CuKN9GtAyxs9iiikx
Y7jxVwbP7EJaclbF1xfQn+zBEjKnrjYp25d8Ufb7St3IzKX6ebX1Ll3VkV3kpY1uiwTTtDFC4ZAV
fWjBvxCwU7YMyUGffKhv4Y/m/1zP/2X757nxqVH2h4VXEKAdSJm7diSup6tHFm15mA86V4rOzMxc
ls6cbmzLoTOgDuZ6+eTbrsGmglhJHMXuGexWzkY97oOgOS1oWzDIVG14iMYeGPJlLax+UHuWaW07
Z1ly+rDk5rvBIY+ArFzFVFdcxFpXl8Lh+hio6WIxnCKKfqTNMGhfEs6zgEko8pYas5Kpi9sqyFyf
3QMWTocFFrV2utwKhYg49Y0ZHQ5LutLInlnL6gc5HaVek1Ync8o0wH+b0rLHLyZSrpkzw0ohfvg6
SahrjrD7g8yM4ywc1QnVQ5+w4qy7cEgdXMjtMrL2fE2yfUVADhJuzTw/o6o5CRrE9V8xewi9zF6O
w7p8QD0DVQ/Wz3JflJ+k1jo3U4eex8HKUF8PWZPDd16VaRMPiZJ2JHhDt595BbmoFbLSdZm40neB
ceI4n8MuwaDcC/jwgiQjDYr3fQ5TnelzQWmNE5bIEKW9pF5pmQoazx3OBRDI3BS7pXwY7NT5pSxH
cpuSP4CYqfXcru416IT/ZF6s0Ry9KqlwqMo61Zl3elu8oEQQqH9BlN8WwgaAj/OyhO9h+jjrk4Y8
gkxzFbuSoNV8OSqrmJp8hX7YqlTVpMs1ZyG9iW9KT8rf7Oc/sqI7PcqXfhiy1BO9jNN2OucvNYom
yjySXktV/TGY3BASHeG3cw7DBWmhf8nq0+A2N/YhFhvMjY14Qi0HbQ7Mu/lCNwUTolIbMNpa6Hxc
MTd2FWcJzf9uhpezlelIOKvUrw1OxXysb3JALdHWQe+I1j2GVtzPa9Wkk4xJm0xFf8ftggTaTvIF
aXFjJrgXIH/J9bTg7V8osn36uTbLFFjlVgk+7vw8etkC7aUVJCxYvhuG6eZbOLx8Bz2stWQ6tJNl
3inB45T7uKOJXU2NgiKZ4MIDZ5l2bI18LmUjDKnvJlU+W/hhVldyZIWAaWCdm2ICzkjYOl3/UeYH
SS8xyyV3tPVeoYqd0lrIF6hiARej/IPCc/s3JZPqXfDM8gfTWjIUTxhPOR0hbQb7pWdOqgxvDl7M
ae/zpCXpKQyL42hGm1Dh6/W2650DbdUF7yuqxqkDKUHFRPy9N7i8Sr1l6s+9w73J0iCDA30E9Nqe
nk5w6uCzF1nuTA9/JmZOmWNsHyIwnSMZoBue8VWYYn7Z4G+TwQ5VQ4OzrDrt3raLZu1mOMnq9Cwt
QzHhlMeCAmTOLRXS+BUV5SQr++bszPQVYPoNcUFn4CcqM0N2+qmHoW2V5t3rjC0rMuksPkNvym+5
2Ok1ick7pk0KFai66xGVX15zbWfBxsNfBZW2NNP28RfNlChNXqoGRj2uuQwvDueuaGw/HptgNX85
1eRRS3ysgyN77NjDyNU1GcOZO1IpfhmVqanGwPi0sYX1MCFJEAkT/Hbu8oJiZWG4LtV24qeMLEib
z5mfEUTCsaW6w8KXMTzhfVyk1zdrS/nBmKGia46+a3CyfBvMZIvxxyoqupi+JhwuM7R/174g/nDY
gxr1bvMHoSrJ91+XHU20KFVbpKSxDx+ktqt6bxwyS4WrZ2sfjRA9XRBbKBn5KjTRcLMbZWn2WS8u
0f3plBnpj9qop/O3CGRTBShcbo3OkdVW5FK/mHz3wqXyVJ4NNzuJLtsJkSisEiNrl2gdA9FpsF23
AKfQiULCwADCKOIwIgKNYKmhCPd5i5fu9oXD20Iu4LGgHvf9vEwZAD/V1OpZTh+7GiXZIpU+r8Kb
9s/EbKaEesw2vw/AQq/qLQeiq/pUlmCUXhapHGb4Tx33Sv6qrrn5nerG32KQ9/cZ2eSdy3ftlCR+
cYkV2cYbwMG7KdFSvws3CeHf2xclL6P+VjQzxLr4D9E8WSdJNy43RGeslp8QxCY8nSVqiqsanP3E
g1CyuX7iOgWk5rL814wbV6+1e3d4qK7K3CCBGLF/ZFNXdVJnOavH3/0WHw0AXoNn3nPiMGrOdosz
iaX+ws2rsvHuVbHEog1MMPhbYF77fRT4lIP0b837gqC7y8MSRG6jlbXmKomcDVJ3vXacchBw6tzS
jVYuPU0DrgVq06h6OqPuvgIGriIyHRZP08VPC3uw4p2zC9VwmMRYAhRXZFexCKyBYDaEMCOIWgTM
NXH+2aP8Wf6TKmSA36yLxVhwZQf+FJHe8tv2IuqnBDkBZJ/RVwjbST5G/+rYBZ2ZflVikh5efVZX
BGiMqNxJmku4TNKr+FVdWK1iVZgiC3p70npsH/B0Ed0pli7cx/p95N7xZVlw+PDcTwhwx5d7rSYg
7ZvA9ox3wMhOc6hHj8u0McR8FJppypXzwHwNbPjL16QTYsIaOFsvuz+DzexvLCMZbgxE+0tv+tlg
ekefpOST9xPuDQXpqpXywB4zGctvgLleco6LBQX4iEHVj8IKynJXU1rEcOaxEcn5w2V79a2meBWN
H4ae92enP7j85F7venrz27KTbMqSzNbMz8ljmD1M58s6Gpxq7VKoI84cE/VEHHJcZDLjnj2wYnLO
QPYqkKyT6O82Fy/+WZpwHVefg18AhZNfk4yW96mvbsMTGk6QTfSkLGjUIYhy+kwZqdtpQFF+9kkm
paawG4DqP1s/GWcxdZ5lLqYUZKJ0i/40NUAayHKuzvlxSJ2JycalXW5GTe4ymBmjGeVUI2lG0fCK
uWZ9zSnj9haqbehyY5qFaaUmdRI8R6D6CuZS33pymvL9zG3vK3AI3kTX6s3/Dni5aZ5YFhTr/CR3
GEi7RX5NqVTsV3HfpFViI5nTS2+Bc/p3dYypqN/2LJLvZHz7u7Nxl/Ih2Wcj9TcD1bPnSbC7P+/G
ET1vB/slKQmU3T1UqujuYiTS/XHXTtSo8wntSnOXli142UlYej9AyMSlNV+scEVW/IZe1o3V3rmO
xellqMjsADM6RYBQNUbfHyVx8UY7dIKgxfpArCxWPrZME98QgMpTnfu7jRBKoAYYjjr0M+fDqOuB
DjmDPb3pb7saSx0yuFaX1UxWDWv/6u6cvr+TRadoXO5O9aEn3bNY1SkbDVmr2zktQO4wtgmCJhjv
GSnOkdQvzJX4kzXEuM7eA5ulWied1e1IOVOD/bqE35bLu15s9/Bhz6xBKNi5TrMArJaQD5TZUGa+
vbzFqHi5tw0BlhnD/I7QYswGGzfnOuZM9duPlx2x9xrq6s3Ot5zu5/gP84NcDg5bTeLqLGwL7Jvq
927oj92YOvpwGEKXRj8Q3WHePVjfIveIWTxilsYK5nUsSL++JVp237nPQLTem9/V5PFA0Efb0xKH
QtUdw9WgKEuHNwrlQZLN3dJpVn5+1gKdTD1rlye+58NPLVdMlpAZUY22a3warbpUstTLqr9ea5t+
aBaV9XaxW9KGVFo3pneBm4ocxBvT+SnnftSZADILHJvKLYHNVKhboQ5tszMLTbCdZZct0wl3qV2p
5cVGF6Q39lgKYZ0QbOwbfLRwHVwggXQE7aw+HumUKYT6TGiMt7WKHx6toj71PcEoMZart1d0moWM
SZ1NvPM1Ak8kNSGT7j5a8A7zPYHLCCdTlTlaMycVt/ib+lvI1JMtu6DEVpG7StYG1D2hD+l+gBrh
jlnfGgWZeuK9B3ic6YwKz1auu9h3+rI+6QOVWYiy7zxVtJqv5KcvTlt/txSUsd07kJXSLBJJ122+
TxtB2AY0C+vrPrLwALu+bM0O/xjdF1hQAieBf0qMJ4fXjiU1ipG47LvNvn2FZVvCYoLMLhpkNtUE
nc0XGn9FiOYMRkBI5/MHrmeEFBJnEBquDS3rGtcdojI/emsWVknpCZ3KU1zDxt9zOTPRomel7/Js
PtPVT3hCXmK+6XgE3uBpuWTMrmg+EhfWgToY+99xaJCal4rbg63YR0OGLfoH+eUb1wrL0UXEbjgW
88uXmT+pUWtMttfzhmfjN3r4DS/5xzgeHX3P1XhaJ32SB9sheH+UWACGrDU9mtecIdTtrg+8TwFT
eJUf0tJq0rTU7KWi2cJl95hE3IBPta3tAY7llVm6lwAwqWTGcwGedy5vAveyCzsOKeb/OOopq36u
rgNPzRmZzSZsZ5O4J77D1GmHsV58Itz+eqMr6EhLSBL183Nmj54AA48NjzKSEDMZ7GbNjJHv7HUZ
XkPwVqhWVKBDNPm7Lv1Y+61YClL2mQIfnJ86rVhmb+dPIpvq7k9GQyRjbKPGIONsnLILIa3krebM
g06B1/yQ/WmZdRNzERPZLfpDeluEBuW/TN+F7Yye5Y+57oem2MmZCoAJIZWklYLwLtPkL4pWP6Cn
dNrEwTGYKgFXRztFRiOMJid9V1d68wdMDs3GSs1i1IeIJEkdxaE1zOtdipSzQmgK426J6Kh7ay0E
KhKtKuCmTrpra8xI4SlgyLeR8smoyEq2srK6l59fE2lireq78iE7qcZznW6je/ALSLqNxzzGgt5T
slAKPji4TI9SjJ7gpFn34dfQjJLvbZomQJBxeqgGqgZqGWYS68utFf/YgLxrKypcgkgVtebNTA23
krrI5KTbAo1JVro6gpgyVdiM36RcU4V88iP3cdxYGySnv2c+ZV5ebaiot718MnjEMOfBONfYldqk
msn5SRIirHGjoLkKk5JpGJg9mJKfaUyWMbswt+lDN7dqJy0uEHKgZR90iMcltaRWmvCNpRTcyPR0
+8ezVE/va37eScnJQuKTZCsbww00jWRBMHffyflIzrVib8MsR5HJOJoKhM0a30EMc8/t50Zi2vQB
APqKEHARvB7uMWEHFSyV/Ql7MSwa/tmr9Ybv5C6K2WUGD+kVxNzJkU4kq4NTXxZeMH3QKTZhZoJW
91clOjBNy8OHauwWAvlvZkLkhHSwBKY3H4wDjXo8IL/UgRao7M0pMSvZZcwHrJWVmx7RLaLE/Pt3
U+vhjTPVAUznYE/T+4DtqfvhtYWFrVGQ2rNlDQd92MqNi47+6dWWYHEZ3cJltvQtdzre14u51TPm
K+q2gHQeEZ9R1ntj6V8eLeghDGHPLKgUEs6AQOG4ivJsg6++g6BvzrhshHTbIzWTHEwAQ7tTfVMt
r4yP0EfjKowhLk+Gt6Fd+1q1evJ0OyPfPfPbMai0Dy/pb2nWg426ivYWfsZMjulLpxWFx2Wjx2ee
r+1m3XylB/omRpNykxssNBLVuc9uKyI1N30TZHsZYtexnS5znBdiHCP9Tgu0iCmQvYEMj496IM3J
Zcm/gdA5RDXQbBsD+cnfkcVV7o7Qrg6Jm9OMgKV5ODeSrJz9GXksmvCCKF8MeZ+raTt8jf9UWYk0
MJqxaqoy5gipTVbvJng3v1ozDXR3yjbYLpjE66PlzHpDNjjh0NXuPbG71sp1YIV0yNmvM6hr9HZZ
nEDsbG+NBbIMLwMCLDsOugliXCc+VYBfmtQHjRtrU++kM9GM3XfZFtTL93BxyGR68Djb1HhOp1nJ
zrHEUaM7yDG7LLZwfV0n00O0+0hWJzjNZAojXjPsa0ly/TVsVZfLXBPZesPh+bv0ZEG2feHJwFlh
/a+bw6XM/bROTb+g52C070BF0NqDrukTLvnAONbl8nHIEndC852Rbc9VvOpj8vosE4MWikD5sOKS
xSfHhT1jNAYLgxnL5EudyLDmoD7XmXbjMYNOMu8GPoGN/OXjA9gkxeb5o+HImLI5yKTcEOID4oPo
Gej07PwNjikQ/xOUSVrcyDyF7FTb0dk3OyZ2Z/DkcojyiPVS4ORt1qoSVL4z1iRgHpO/m2VibMGD
qm17FiKfybNzWD68s2N8+C3oSBB6l795WnvBfGG7+6OUlFp6bLKSa/msDwvsUr0nfxrpgWXvSvfu
ZpXBMXVtyJw3Lu/L4urcsM+cCml87DTBdFjFa98Q4Odix2mxxxZ2p/Gps8cGh1FA7rxc4e76bOTA
SB94Mkai+QTZesbkN4E6hkJRbHu7bSVOYw6M5nvFwX6B/f3uqTBh2YphGVLb4DPURhcEikEsR8NA
P4u99NE/J/M/nerUR9dIfIPPJNXHdlrc1Gr9NLLmU67rqPfYiunXY6jswI7vHS+pkaPUFJ2lbne2
5pHjkDs8uPoDs9mInnTIRu3H/rGWLPZKjy1lhUy+QmHHZASq+8kFzG6rSSrVMQGauYwMMEKvj4SU
+Xl466FdVu9cgyPefIs5D75AdAhHVQ0MLJNZYK91WaBx2BEiueZsblSr+8UOg2imUWp39VHWkDr9
dKtdj5WWQ83FRlI5/DGFd+0j94LvFoiVwbfjy19qu/m4IF1TfFrRx423OYejttKNNHeRvWp3qWt0
g86XJ3NOB3l9eHbSLsWdFn/wWR0fjwbomPZCmQfcHJdooEei9ZUzcGM/BL3dTBIuNSV2ph24qxlV
uE/L2oKTO1yDHop3TiFz9eIe9cte/Dw5ZlI4vIZS+9wUMJHiBq2Fz8AVV+1kbzyTR5rpvUqSswws
cu8YBrElfQGK1CC/AaHCz54IosJd5ObFSOmXIZg6pIlZdA9ygGJm/RBrdPHkBt5NiluTbc8wqYjS
+DrJiwS9zpAR0KOoeXtHFmlBTJ8j1XgSSS2bxK7EnKr+JhuNzVYtpoMv7LvFRwsd/xlenMvaR2y4
wni9xEKy0wN+UGr98ChfswVmBhZFIRtkZpp+/3R0+2Sd6JbxsZWUHqiVb7jsXueU0FhDI1/OQobt
SBNjcIFW1kipZPpQ6Z5rqQaQ785QKYLhR9cQ98fODR0nMp8QBxgtNntWmYdwpbRQNDOeOVhbH6kJ
DhufeliveYePj5UahTrirUdHrNOiWGsQ785KsAJZ4lzhu5JRnWchQbQjO4azmYfv/IqP9e+Dq60R
ekxLl+xnSU3lK766imZxG+Auvw6Jz3CZE5k7bwYIaoAnFrgjXBu6EzenOQu4zd8tlFtpLyQmE/Fh
LYjhe3Crtplv68bS0cHWNUV7TeV3O6OOzTmv1cS1aE4+zAgGT3Qlg1V7cJ/CIw1wtDPA0Z7iQViC
yQXHO2Cq/qVl972UfXAQvIC646vS5Ql/Emiqh6kj4gWlf3JlEzWNLTLfz0PWcdP7zY/0vMOLRrYf
VlI8kpd6QU05Ud9NCZqIJwCl8Kai4hNH3koNjgL8yltBWvH5/j9jUqMWRl1pQnOd9IicNA222QrA
5D1QXyzMOWWz4OLMBCR9x8JQiXLqOp59h0l4EqLCpqgakQtoARHNBwI+rJFpBiR/bm2mGkX+0nlF
eUGyo1uqjlCW4c88qn5BAIb56kGLU/PMLg4Coa3P3ZmXPao8cYpDOyvl6EO85RyAU5usbCW5tn4C
axWmpjBpuccCi7djX9ilpC/7Wqw3p8i3HsG3/pj4Kaostozmnfj9zAvfob2pOXqHoodqChDc40f0
8zyzgYgnDkm+iCcy8T/E7kz1OJ6v72JC3zR/LytNenQWiXFZwBWcjMnM7Ge0MJ2mW9RpKHdKOL9T
lv8QZQENKtw1zBE3POz4FBFHzmj2yFBVq9fLuShnFoAaCaq7YJW9AO3R5x1r0YTeXF9pHOSrH1q+
ljFt0FEFg3HLNLZgP5mX/nzP+90+vC6Y1uDaFrqFxu61ZspkW2mY8pS688z429y3c40xea85b8gG
PBEsL8+hMRg5edpaqZwFywc1l1/ktALpxEhGjrUX/dEZC1lpmTJVPCLU7wfY2HrkAI7Nv5TAZYkW
tCNv6jYsctK9Mhfo4EytrMOgliBzqWBk6UUkHCNBrOuE+L58rGwK9WZi8dnwcbatP4ak1LP8kI0d
a2Od1d2bQ+bAIYEchmBnTDJLlnlX5CpsoSKjUicgI2sUOyORos/5IBo5zwAmazcBvzFO4bdr4z5f
4W4p4AT0GDsV8jjNKkaPpAZSO4dp0oR6UnscGfANpEhU0zGUqoshmM6qFHL41SnfHeTHg1Ukuk9+
eDpsDJSVbhSRPaXWnhnmGolykl5MA+iCgHaJyyuaMgI5MWCC7/VBZgtfV2a5AQgF6EMxh5Sf/bLI
KfOP8Xp7E3wXgoO4sokxtK1/qpmx1JFssC3dk2MIWqIeRP2p+i0YWi3Gll/IRWAtKxbGsJy8ODZ1
YLz+zJPzkahLHF9wsjyr6yTWVEegXnmqqMUgrCwblgdxD1C10u1BGtYB99u4Lzc1F7aQs90GOyyC
1krHK5oDOwbbTAhkhHrgAJy62cILzZMNOfOxPa04FuQzjziXVXISQVl6LjEsie8pwi9K4IYhQ7oQ
0gINIEdfCb/+y4vbAc0ozYCFX6SxFG4OvBOnvOhOKXu2NKOvI0TtbM8SWcTiZGNmrYGqI0RD1VJD
dABB1z3ZOGgQ/lhGZGI0Wa42g2Mt93kGGLaQ49TZXlZHqAKXfBHB32V6Saz9+rsqf1AO1DTeDzs3
YyDMP5BuTLv/9sf8szHdpynhh/MHyRS9yW5eVLe6kznKuBdHn6hXwOu45l2Nb2u75Oy3oB0aRwOO
CWXTwUTfhSCiHBuTh4JA4Nv6vtLayhCPsyd5npbh5tMFKnI+nvo+B1+5ifcnXGNOBd1InFWENt58
ncRPM/Ol8723Xo7Jp2sPdJ8vCU8reIJWc7vKHTSx52XTvudK6QUS8IktTEDba9uP54tmQcoNHK6a
HSWIW4tr8p3Vfpaaw3Z4WZ860EXSRU5jxQxAessFwx6BRwNhvc8C9QfIZag+O5ikFD7CsfQfp5sg
HxlGPEymFDhOgI/ch6Gc9/KTzpSULz3bfN+g2ggG+XcyHmuhGYn7vfqJMvq+3AGUDx3lI46SCzJ3
e5I82KDk0ecfd1pqGTSAoWU1P1HSpvMoIVyTUoG4LSsuGYQGc4ccz0KXFKac4XYOB4TbAyxopnjb
ukwSjoznNtq/Mmq4JmXGbVY1LRdo3m56aUC9zUUio+TfFT5A5R5Y3sz6Trqx7H1bl1YjMELHL2JM
BsOZ3/OgRQVeqDBgZ9rykTBiX0laZ3jOEHdrQHAg5+SCouPGSy30z9g63M/YiRMOgrpgeJbdYvjD
j+798AeqOiMqt86fkKfIz4JuxbCHLJxoEFvM8+eMMIDqCOQ7Hhhu7oZJlPLUdRCqmjtYCtCH8VZJ
XJcUJjP1e+VXISV7trKpufQmf13kF7jHumfGdCpmIQpWh9XCwmO3Gm1/lkfyyyyvikTzftvWBGJn
sIG2l/oGVClEacei2W3o559PZ3d5JwI0JtIzGgriLXYGKJHMmK16LSlL5QjMy4itJkG5F6npt3eU
a2EEZLkZhlnJMtG0Bz/Ovi8XOs+CXHsZjWRGCHaNURXWJM9Fmuhdt1syGicyTdBeGH7m2UvNHq4O
erno5KU6jn11VFlr+YOsYacSFhwaO6qs97W8ZwNK3OLjazFRdjTdKcoD8zQpyeeqJwu8512osb38
bGN+q6ErfwkBKSDK+yTZujUuP/3eQ5aguEj1w1d7oIpOuUlApcuwKbqMaW8cHckjUUIE9jHTC4EK
YspkpaX3PUoILO7tarubknQ//7kvjDHruu+U+iSE3+mn2ORYiB+Tt4h5viFfZ3nAiofBZcWyskJy
dIpXKOmyTdd72pyGIYfQcVf4gxf3hllXTaa2R514X6lxqY3+kHskNRJJhBKOP7NFNUbb6NH5dGn7
dQh3eg/UltwojerBy/s8qWzAt5ZHrVcol6daW/982ZsNlMv/HLfUwH/w5HbQJizTOa24Dq3fU/w1
rRaW/sOyoW0a2GymaPCWBdOPO/JNAW1SYKx9s3oCFH+p2xWYD1S1aX0dUh9kMTglaI24XukfM5yt
UNSytAely5ZpDQzZnlRTvqOrU9yn02ySri1AwacvSpdWu7tmjGdyjWHSJe3ivXioX/KXPCnBASX/
VmeqgExlMkXbBF7x49cOMcuf+uaNSyUfJIj0ng9/L9POnbmlGmkBY4xqWRg92g5wRPSWsTs07UFU
JEvA3VvDgXTZzdWXxv1zHreeG1glKIMKLzMdDiOB1JlHxO6DOQTRvY38nybPHHWNJW1yeTuTObFk
x9spfYm47InHYJZWp3DflIbxGX1zqKt0P//Dy9Pq8n7xge0OuEX4lg52zevFAat/AL3BhJKY2d7p
3nmkZmFg+l7BS+poN1sFL6fX1XYik76P8WeTnAdHHrTiOSyVF2h2ZmRPX3x1C27jhtGY9fDEP4CY
dsX+5F/Kv45xKZYCgm2N9vne6hnRcuJ/K6EQtNYD9Q0+W4hcrcG/i5kiynOiHJPILoNZfNOx6Ijn
eXOCbTKAn2U/zg+mK1TpQe5lAVnBSmNjZYihDgwa3c8nO7a8ZcgpxC/qf7vjeutovH7vCHO9x/Z8
wbNCYb3pM0/Zc88uV/QeXCW6qnvfvsPJ+NqmGO9EM9nDmKiUkMYGHoE3ScrPU2SN9rz2hLF6vOm6
NMMpadePo6AM6xvz+N92qld5JLGjVo5CXiAXvE+sEIKZaELLAM0e4ReX/vTUWi+/OWGJfNTVX37X
GZhT8jHvMV5mV0X0HF7UReiNw5PwBjqmB22mbIRoQozQuuKsM23D+NzRX4Z3spkR82/sRVK+a9sP
PB1YIxXw0176+nYOn3vsdeUP5bD3waYrG06oFLstMuxNG0o1MG/cPL6hGcTtbs6IIqhN/+FCqCPE
4eIe0lcVXMF8g9MM+AsK3VjCt0iRUu/bziyPmikD/cKn5/M9KqF/T7AeaWxt2+OC50WWwxeMLNuD
84d8L2boJFL93GFyL+ddOWpA38WydDR6KYg7JqWhsn6kckYlgm0QHkX31OLreX126tp+EV/A+nmM
PVVQrts6zjOlYFgWAo9SgoSLie64LcTWnZ008oWuK20Ex3xGN+ICBRcbKTWuux9V3nrwuXT95NUY
fAklzVQM9FbMaAZzanheZEw2ez4xRxwdZLzzOIQ4NDa9LaFWJTXg0m7+AYsE1zf9Mn5zwqR86ZuI
7E3qaeTnmqhxlfOzjxmLhWh/5GDfil3Zl2xybLUfsYsC7lS7kgd3WUDybJJq9+YLGeeHsvu8XrG3
N6bjcYmZLHc0FEmLSfdOzLsCMR2ctvY3kkxsOAhtZ+YmUqLqmyREAT6tEV83i38kX5+POC3YOnvA
H1Ui16DQh7glWkLJoviTbqt8ypVa85SAiZ1E53hSYPxRnvrONl/Ezw4gopRH9rI2QJ7D2zs+hywF
1cDxmYcV+G7fVN/b4YFDM/ABbhp6WAHCjKB/aAbdJZWoe14SVnlQk2XHMMt+ZuS21vHsMf/mGfxM
IHkiuQ3OjOFEEW1YmSKz4npKKjfspOMtHsdpbnS4DoSHgGch4ZwzOy1oE1O9mUPf3sJRyMWA1GuB
Nq+K2vDoy5/RaVvu/liBWLd5zA+3tVZbssBTQIJENr/kkvYj+7K4tjd5otesA1fJLECjX/QPafcO
dPPTVB6oiorSFY7tLTdTJxd5c7TuJWf77vq3FEEftUqZzgKonn/dS22gOK/up8QapZ/o0gykI6M9
uZMnHtOSO2TkuEL37okCxzesmdiGSE3KvEcZVVE5Y+NtFGI14hzhF1osrcN1EgaTMpgapUAj607Z
gdJSZeOuAviTQsHGAYfgjOHI4AY6zGaTN10IRsD5Vk/xzpK1fvGlfcyNsvVhnjaPucTrlUGsst6k
TCxZ8m2nT5n4nz2psKOt2MlAjZ2f7GfHBT1jzL2bclk0MDZ/J7LcBN/H1ZF/vAyRXbPQnZOzNWta
/80sGlkmQ6dPgSRNnZtTFOYn88KFsPLIOez+9Dkp4/etEk0GqpQpF6RJgg4NaDVAqosCzmjztCNG
tQihBUrVyxHojt6eKu7wrEybPHp9DE0AjapBM4aGPFA7DX4oqJThm78fsix9y+NVdG+MecN++ITk
4G01eQuhBECtwur2xgkPSV1NY6ue5BhT8VJuXtDtz4+SpbzWHlUtp/jOEq1kyrDqnJmBceg4Wtwk
BXSeJujU3/U+RRt7YcdAUWXf5m4B4b7pqZwIhtzp3Cu83+uWujNvlMlp0JB55dz0dTD2pC6gmrgf
OozKeAoh5DW38ExDHl9M9F35SMPpQ3Ks5WIdPLdM8Wv+pPf0QF4uTwTEozO4xP1LkBKb4a7K6hL/
K2DAHT0hW2dtjxBz63eJ8fc106SCHkrw5PxMT0npeNVbHWz7uXoHe+Zq2+HepifyMytPuOjyhVDi
9ZdC3Y0vTjOXDF1RimOv/YSeP7QxG2OUMUsl0QN8uS6E1tfIo+Jjrz6IpGesO+9KPfoKiTTrcpD+
spykpwmU93ZNKBkGmlYQ4ucX1t8eYBkE57KLgNzL3C9h4QQKG3py9wuJwJlHBRu09weyJfNz3aJM
NvALGzRTGbjN4+Arqud0Anyida3mpIe2Jf36frW//BWAPUtOxD5BRUixwWpiJNm0o0iq4+um8lc+
u654snqiM1XLWkE5OctFGYHG57lf49QSZyuUaWamgs9vfqnHk1UcEGCPJ632Kq5+8E130etmTays
0UVs8Ow4UpeLN3LYUS+nMTLTSdBtDNlICwK+SmrStFiY5ghKfbgUoxZjtHQ9HWVxvbcTNk+2IFDc
puhxLkTHcbkoEFFXzDIHJi0M42MebAIMYPKurXAuEVEq4ouUqs9dj8P7xGVzF1Kff8qyLVNyAZz9
HjtQFskzYnVUVxdYdMP/iFuL0IVrSiiX9peek7/jQtOchUC9Kg/CeWehvszqnGuNr9G9knJyuhEy
ACt668J0A7L20xc9u74/3tkjW2eE7RuSyMkLFH8+fwxbFP+o8Et7rAvX5B7YJmWKvNkzV7wfsr8N
G+bYQewFOOH09lIt+d0bBUEw7tzxq2fKNQ9VHZOLcqx+15jY5saXXAGBrioX8Wbe+XePWpkD6Do+
Gqlix845n7UWYq2fCAgX+yytuUP9p403SI8PZTIyZrZFoOZGd76uiT/VEEliNnBVGdd9wVy4HZbL
ae2NnZ1RYVQ3uSA/3ffmmts6VktLVp4rnr44eVwKvG9GmaVOIcIkxXAH6mA/TxgD+tfl+SB8s7fz
Txptak0iJ1cu83POukPiv6V3z5hg9jly5wKqkl6Iv+cAjXmEcxPj4xGfKLMZ8tSyqRyn76Q5iQ1+
MlHw4eeUtOMyDNO/uNmdxeH63TyFWbZhQQiRdFQfWeD1UepcACBuVuL98YCiVU1d0HWupnr/Uv3R
DCwXUow9Grn2DORMcW9d6VYY0fd3ajkcYa1k7Ul5armBd19i9GIvFDmWK+gHn5P+Pq4Nxm/7DKSH
/9xKDGgidAk/dTNLlBCTDaQPVdtnMaH+ItV87+eaiNScbPMXdSnKb3fjW4Pv2JXAgv0JKs9JLvhe
knusZVLRdRVDfhxDIqW7Wh9kdJbvLrjl73QcxSXJ+K0Myegss7JruLMscz0hb35cmoo6YXozgUkN
9uDElcMDeBaZ8Cl7SbzqvAqxezJsweeQL2MVdLsxHn5O41gn1I3BBeFaYwLka5nikYpHa05DovZY
l1Kof852qtdLl2bzYKw7k7kJ/5jywtFpHNe2vO9SeEafyeYSOzggSbocd4N1uDQ9SRPuUm5eNVFS
od9OqR/o6e3ase56o9A7sY0f4b4KM9tEZQ6VLKjQ7V/c/7rdtX4zlcGPySnYXfLeiypnHQTpbCbg
eQvQRLSTYiSjeAlG9ViKD1/eP3e78hviIUSUrj24paS689YdA10gXOHxwahLfqvvy7MFglcZkCeq
v8iPNGh+n4wXy8YR/nPnI5u41KEKQbOBFzATDZB6KmBz+983682oX+AALqkUERXH9E5iWe/mvako
7reF04RWc+d0gMUlPyl+Wq8BmlGBjFYonZKlzuVCtxZkvsloZ2n51QafC47Mh+8D7OA3SzEai+y0
VSbVWHq5psuFD4KQ9Ymyy1ll/B6mPjnS9pWy2E5eo1R6qdGujUi9Jx5kYRMEyBBiBLKa6JQgrIz4
pG64XGChbXSG9GlPu5K9WSkBGzh1c4r4gDBMmtq+2u/4y0TOg3ucsDVP6bikGpci8vIKizqWB5C9
G0GUwzg6NwjjdAesKmi/vMwcgzgU0w0uRzgNWJssOJbvm1JUTLN0B0vbigUT2l1TJAgLDRb6HNlM
UU7JwBCmtzzKH5u5QEa6gcEUuN8gNWAND6Z7ja3LAMpeCnGHBL8u2KOFoU1ZvacMGkdbJoOYPDLF
A8ZsE4JtoQILr/DUJK9DeHebwu1RNi+axEqVP4mt8YCjBuNowcu+qT1QoJE09pOtyf3yWwuo2od5
l72w/TWnT9uT52uI+8x5o07mnLgFa6Sdn2OfyqzVfKiBb2uM9/xpj7FSRkpd2Xz+udq8hbRDoN9A
54b7e9UMInpih8Dykk51P9dbBbFxkO/11b7KFQPSacd9Kwjhmy2OZRZmgb37ReOaY5i1YM2cFNbC
cxPzfTPDOuRWdZpsULt6zLDs6jqrZ81+V8RBIzKqCFkDjqvEUi3uJvFPiC+TBkdqHKarQulTcfnv
C571WdwAQ0HxId0a4Egt/dWgMnOJcipRS+BnGRADZmcfte1nFTJyotzyzo2iOi1kx2UCv3ztB6GP
59djD+gjzghE8qxWS8HxVgqItSJJYgyCXU3cx3snkf2R6/PO0cZGcv0RVYXkceBtFd7vx+unxgY+
ZqoDn+E5WZB09NRYiYmsYV1zHrM/9aQ4QPLQwdFmzd92g6/ga/36s5cbHZeDe0sUHNgevWcsd1rP
9uAleV33emkOtpFLjjfxClgc6Cg3I9uLI6Endx0zxym2sepElrRPZBcIn5tNMZKxJVE0v8v6AblG
NWG9t0dWmXOMZECUQngWzR9E9J6rsNURI0SXOKrEnKat16K97gLCpCm/MQXBzGiry3HMdA8gcXUK
CLpOMZApnCpMyZlJkve74q8Dur8/XhB4Pz76KVZx3/wwaerw900si2zte39vYiUC8OMJ8f9c4dL4
CMA/+MEbRN+1Jsiw+2Z5pSeh7b5atkxIcPy1331QHKGAOS7ENfWdKpl0j88N5Jyz6uDlx2n48b86
ueLLV5gWnwXhdlWZNw8Bx4EXN9/c2k0C4LuBayn4ytCeVEjCaYE2qM8rBrFhlzEIhXisWw9eFaD+
mjru010gNBvWLfOOu+CkTCZYk99lSxzAupLEzFQjvR6KtezKcF1HfJ1C0uVBog9mWey9nMHM5CgB
k5nyI7hZh+sKEV7DzVbqm5lkkdRdbjRdiuPOBjHerEpwgW7qG/PeeUEEjxjH17br0ey/4uKlE9+2
6xNQhpossT/81w85qH3+mmyzckFCjEf86NZTwKiEMcmdcQtye/6bLL+/7HNLol3BW+06RfX9hKLY
q4HMckt/v+J4hwyPYLFqnGPtP9qlqq/anR7C+EmxMHY3L/x46O1AGABpJ/S2aKnlY3Cqf+usE6Rt
rHoiWcfVoUZucZHYnvlzs9Qx0JWopA+V+TnjmfmpmH3q6Tuji3zmgTrgXSZldA4/ReHKyd4neJX5
w1+Z3aIJO8ZuRi3Ay4aVqRNYpDTXZZvo+mj4eovkUCAEfbpSO3xq8jF432irvVUMZk7h7ydrPkGO
No6s/5IaOqPP78e84ETkIPnhdC4BO9w6zyT0Dq34Cpk7c3fDM4nxid2vapK4pocl21KYnPmmrboP
BfU7OwWRIGIpurATluKQjWuHTT1xemnS+Zk72bqoCy7Z+iGVzPdTYthwEujW8U45jvOEl2pKjsGl
o1nDwHd0OpMj5S1J7ynPNVyW3LxvRUZbRHKOwcWcxbwF/Yuu2MIdy7HqUpWx49Lg7ZE46Ryx3E3/
vi5bRoERE3NOyJvGl4a2CSoYn6ocnmHOEk36X5trEpKSD7TvrrD6uESzV1yr6j3OFhme1TKnV0fw
xSn1OGSq7IiVXXv9CTQuAWRXP3/fwX1zI2lSc1jVfTxY4rGtUY9n8sTwgJbvvl+AN6KEh9XsrWcO
a5wsvAS9N+qUo6gz27dTVRaT7392MurpfamyY5WJreBxvbymoJM5IounAyMcC5jjrHCY0gv2zsn5
H4XceTQU3v8w8CGyJVIopVRK9hZbQ6bER/a+ZDeIFvs+9hlKkpBkjRCaEcMoZoy1sSbrlMkMBmOf
xmAyDMYMfn2+z3Oefv899+977vve9z333HPe57xfFGMPZDhKL1o2UWtVqgYBJZk3B4V1WjXZnwoI
AhLSjoWcsKo8GiFtTNJQX7WdmbdOoUQNuDwcCMl05EYWz/4nz0RCSzs2avwHcJ5yv1krLoQmV0XR
Dl8lzraM6AtLQdctHunJ7vhVOm8/4BlmZIBzMxVWuO+qUmp5hZOcD+QmiwuvyW/zKvs3dqM9pFTD
PD3lqNx/NnUfyD2q3emAPCo4Bc4DXVee/9Zm25O7SX5HvXjs5tvMEyq2AZu6x9pOtlWzC3IWB17D
Uh97ZyvkBk6pGOiudZD1f+LklIocw7QfXqXdTnm5/PSTT+bmea5l5DzxH7xxIf91jLzSuyWnmP6v
b1dGWtAm34qNpANUOf4XcrHfdlFq5eFQGVGi7XFJwlDy1MBmKPbl13PwHK9A5RIosXGCrzBX/fnY
vVBQVYOxft3QzfVvjq25sZPudUguu02z0FKkccwvHD9I7bW3JJmHUVroXS0HDbJvkYZvNaU02AXf
sOzO0E/9IGbo6xF1j8FBZRqrLt886nZhe6vw4cICl6snGIXxntwftz7SwNCrznYlHHtfXHOyimT6
fnJdScQ95hcs1q/1gRWi//aYVuHBKURsRfyhA0apKnV7cMqTCaITKeoRtCBk5Jks1nE8/J3r8TAx
73gLVfNGzY6x6mu/iUJvIR3lrIzQjQaySnFU4SKxHohcQpxpsaiGNMKVJe8X1NdNGCA9pZvBOh9Y
BU6t3NgzUVPoqtui9o9peLJ3btMoOhbMv49Y2zqBGmpaorExwHBwlOlGhWg5cQR1P0YxQj9xsafd
fb4MijbjW3c4FU9XSbEgBFdcDlN+6ZxgLTJbSWvJK1Kg+/Io1A7nNX8SkTbZdjeum4vpvgPYgYAk
D3mEix+yq938mFeffhCh9GF4XeMhAFmPTq3gr6pdbnS8anPX7Bq8d7JOGfXpgOpKyVmd/vtBtRFv
QyVlBoo1C5xpwo6AQdVBp3JK4gorpiI0pHbI6HUU9J6UmaMk/6X8kayk12J1F5/voGMTzxld8xtP
NZioPaWU/mWL+9X0W90Z88YfC7waiz+6i5fUIm1tqo8gt5aRtatvqe43UguW7Mas9kPuiGcG3Kku
j4kgktebxG438l+WvkYPl2h87SeR47+wRm8cNcXTI4AL+SIf63kq6ltlWE20TxdxQBwqyDnXOz9c
rS9fh2jR3issp/3WfPW6hVAi+ZwlhR5B0gtfo+Y8Bz4Zw8jqUC+KFIv5KRX0fbxKw1pFVJv2qL6o
BTRd+LElo9PsdCcUaRUwAs4WYFuU72gfuebdPJgrig5G+a4jDU3AschxA5j/JKxETR2Z4zy/cGJY
xhLvTOLGkLeSaiCcAjR+YoMHVb1b1XJaoDYG5vKdbXLGC2v68dTlk1iUnbxQw6/K5WrxZHCV/hbi
dRlMiFiUz9XyrkC76GMchPMPkEMI8P1BNOJpEv1zqgXrk2lXUruq8IDeihrXRRDl41TZ3wV3bUan
I0C7i/c7WYaeAvLJjw7TIIpmt098lbmkGYSgm04wBgctzkbExJysUmo0Kz8WamYyPsZ+n+XkEDtu
4T3iOLYa0LYoM6QbccacrnKddjQIbDwu/4mpQ/ik39Do4HW0/XS9d+sDr5pgJ4JRsjOb+eSyrINN
e0FKhsYQsL8IRSoMPBpZ8c2EMEDvGps/V2d5rKkY7f+BLeJ/oxH5MxzcBaxpKWwWN0/MwfJLp0hL
Sye+00o2Xhg0Ci2MX9PQU48C/2qaRcWI9+Lhp5hNd+gXcCD6Mw8Ze9j+dWWKbkJTeBaiIMRsboNy
eqrzJ7xAP1LHfg0VI7e29+2MA7OeNrAu0GY7e0k9dBw077J0Oov75NwWch25VGXCRXiogB+/xU42
bWbroxd8H6xzzjOcC+HYQXGc82HiJKctU+2uWRznfdZhywq4afhRx6zYNFdxw3C1vA6/rky36i0J
D3zBQYNBj/7e9xvAszlOwpNWDn72/5ysn3Aq9XRzPk74zXKoXe1l51d5bSkVObzDL3NtQq3eSGqo
LX2VKjbML6rGX82gqqd5VTvs8Cb7Zqqpr4G+myoSYnCeJQlOLw7Zrax/pfbdttOOaJ9YEDbE8Q9W
BZnRdRPWKfVuXmnFOz8jLWKqz/68Dnb+JqFY+flHQ4Wm1oGYHZjD4yLjGkIlTNXqmu7dvHuXl7BK
t7LnTM3++dZ4LZmDXvbRLRHNX9+G3MB8evhUWdPDzjEVVjnTZ1RaOyfG66Pg8zhcFa3OqbbNCKnd
9AH9wESCYZ0Q3U3oHfz6Eq75Z8RG6Cbr30pmLM3MrVIFxHYvioi26PnybVTARRaZYC5ADvvcGlGJ
BIYswAOCLOjK0jHeSfl7lvz3gF78j+wS2I0aaU3ebRr66vb637c/i5W+tHn6McBdzF/FKUHvS2zQ
x6Pgxmmz3cgTTB78+tlbNU8aUJYEPe3kVsQtrOUHeGpLdaQMBPIrigkx84ZOTD6IsHO+ApnJIz70
mQx9kkVsJFVvRsVk4tCrdMNc6oXAcg/lfUhCmE2B84WmgvFfShkZIHOdlLBBT/DerkuT2nDndpbH
EFB0DpKBIG2QCb8FErnt5Wkm4Obfod5FhMh1dD5zUayFfSBoZ5osz1yP1WR5NrYNdtKmInd3IMFR
USfGsczZlWF8tce0P1Ay7qXxLiMXx12YdeNM74MlY1kYFMFS393ne3DG8WeFBxfzurJX5qqK0E/D
jI4vcJvKWebUlZukyfTZLLeV4iXsbkNqGbycamAVXL4H1UI79bot9khPmK1fKtBvpca4vd8HuhYb
B1d07zJrjLjjKLi3/2Vc2sJ3M/lhxeETw4/Uy+5kxQkJtTqUvr+VcIdkqFdCXIl0shzPUhfsCl0j
7YKn4fuH/Ebp8MMXmB82tF+quz+T1p39zBFTWI7+XfPyh52+XO53DI3/SPLt1p8l22X7v98kyZoJ
JakiTrpeTF7jx6g8uXTJVdze/Eqeksma2bPkjHivOH/LQLtv/Fd8ZuSZ9+6b2ojxv7Qj7ZbcXBPM
K7Ba0Batkb+hzLuaA8Lno5pP21ovareUlX5YweK4JZ43NC5dT64PqnJ8TAYl90RHCs54hFPsXJ5f
1TATkfZV0AiWdTPal97UPaWsT0ZuonMjDxVQKQzpnjxG6ARlh4jNAXHqQM56UdYXq4fOSmpbrFUB
3R4vBO1HTTTyn826cIVEFKprUuyPjTcvriVYEuPKpbK1Mt664auvRCkU5YIkT8jcY0J8vbngvov/
6AcBa5r0EOyQkuogmbYsMf8A6GAnZ+NxfkRNJ9A3WDYBiHRzwql9s8NIO74njz+zIkfHVoyYHngk
a8MOvpJJVRy078NWqCJYM7B32JSzoGKsLj4GfNp6KmrcouPXQn/uVmR1E264ZYFVTCWtF9YOxOkK
UEjwwty6ilTIQnUzQy+WsEsh4j7MkCPLgzVZPFHO/i9BDFDBjhzmB3YqGrn9qyy9ozN/Cy8RJPHc
32YC4m/n3T/MvgZav9ZN2UvCNVYq4466i131U3j67YV0yK3ZA1i18gMVuAxlcMkTu/MV/9TJLS9P
WwfWmLb18nn0WJVlX867PeCdZ308LQ8Iu/Z1Tv3jjuseSxe3ynuZRX16NyrtqYogkOzyzSTe5BP/
XMazt+8erugCAzn2w1rhq5yrfmOuHVZ7cZeq75fOPtTbc8j/CsO9ae+b4ADrW5P2S/iey+Je0bZd
IzAdii2zNanFIy61IqiWUr42LSFN/xRs/+4l07S1k2ujWaHiIYHdgmFVXbNrl3aU/c7wTaz/Uj/N
YcPh0rNXvrf/ZJ8TBiHdZdWXdeYV8OVMKTycV01QM1TmoHyHPABjn/iR19Wp8cL4LDsjR/piT7fC
lakgsHu1+UsbKrzLraJjGTuk6Cr96uVtXDaKuRBTqL2/t1eb7y0eLQGVylbp8vliVRYfU7LoR6Vk
3UWvM7rpEgHAfSOz20SPkeezUQSuQLtXzzCGUZhLjyg24tlGwGuCooeEnn5nqOIo7+6LTgUpSce7
sfvscwJxu+HBUChYL26vZXt7Lv32071NBxs9Nruep2u3mWW8Vp5TqherP4lWOgPJ6UAcZg1qz4ke
AeQs+DHp3giPq3hjpSruuNKtTETxDokRe7em7hNctikF3bRhjQT7pNnKJoW/NoeHz5C+vvcO2mRq
CUnhzWxkqyTAMAt2hEjZENymOeBCrxF2fTN88RCYS4smTOfX/b4MZNi8i35vvT1hnUN8Oxy5s0FL
WJCGsBwV5OirQsmJGgzk+GuuZjIbaBayBLLQtbgNNVmtocG+0fXwZpmJ10W3KqygSh/sSXHzK3o4
yvDVDzPZ6WGPzlHf7bCY9ayzUVzkrPkujNmr0P0YxBmb1aWwLYMhEMnTP0eew2akYSXbLLd9FhFS
eT0mux9/I2azart6u+0uKcdA16fh/WdrTxPgo37kgxdfbXLPBzxbG7NOIweEZcallb80pkqubs1+
Lof6ngv0KFvx1zgOBS1SiRuJB4capw58Mp/yIf6Q4KA2SgvdDBNsP02Psd4KWQppJuYefmvcOYrp
PonwK4uTjq2dT+R28xD439cc2WBy5Z5nxhMwYmWALLgVuacvpatIWKF8/bCRnMYbXxsgDQIKf02D
bFFfowNrufNP29LBgh8kqyjeeu1WGmmvXBreToucURvge8/ncTn765qtFEgI1Sj9nc89ulURd3/c
Ydq2UcrVVPfS1MdY1ge5hxvjPjepgSpnbgX30MvwU7Jm04UV90f3nLLVWBuuUWAKU8h0qgM5i/j8
zjMFdKqHnrLd0W/+xgqjdrawPnp307P7CmYTaicM5GxVbT85C87Xcz3ea7KGWlkp85thd9shyeu9
Ecu/VDQOsOMIw5c6syXXW7ZRsmlm7Y/3p9C6/8R010Qq5BRBRTpnlZ80FRIXXTs/29dQv5P9xw/l
V5ZWvVCt/ylR5vVzbRvw8ZaTh2FHaDH5ZGDLEYSNxt1+YQQF6k+TKw1R9pd2h8JpazvTtI47ha0u
aq5d9wmqsp8KEMYXANDvTJaZxQEOgn2nUzHAcbfLMWFdaaYxZYOpk1U0ntWnmmJRBCt8PXUxXYJf
TcMW5+PJmWhR63b20MLE/nkGvKGTXLgBSIzDxsfBJn/VMxnn3DI+tnzxt0miP7ozgNvE1EhSuIva
zm6GNl+WcrTCLK5pTlULE8hyw5plaXv58lUCXtfeoh/ICfwElCZ72geA6SXXsaxT+QR8g0ZOXTIj
x+WMXvT2KahjR/NyFm2+sSHTa8R+W+Z71+uRkz2rqumf9WAvZmBcGJQtZ8y6PtAfnNu7s3FGqrQ6
FkmuAdn7QQtGjF47Hxku/4+QmKgMWfC1xdUV3rs2l/Jd1xInCrowtbdTCaOuiz0S8QGyoTx5uLFx
rUR0ZSrEDjOBM8wzfDnMoi2C6yznTuYDXDDPPw81jWVbNGV1kO6aRq7aAKLJdrrfW6u0crDl4Be7
try/W7eWk2HpBTnykcUXMtSPjD5QXTnvrPZLPB5MOwcwsxZs25FKACzviA+zXtHnrezOih4PkFw6
5iVQFMLTkMJTqeqsVHawV1rddXmQ93iR3axGzaaFVJutTbP/wtI59yno1qQcIHtIK+dFfcs2q0To
ppvvmOY+eBeuYism4TrbEsjzS4xn6guzgnBPPCC6ploivpg98LjpHDkZ5Jj753T1rYXytefeuAA2
C13t+wllh84VClPqAMtZSUk558WI2c6kaK+hIQTv5WLDZYdpOxEHZ72ATiRWflEvXzVelRZW7xde
B9A3rx40aMqvQcTZB5IdnWIwAFRfQ9G7h5qjX3lHiM+WUFSbtoKuzwHHRd/Uxq/YABBS5xyvF6jE
03MubFG0WHBNpwrAve36y+R52ne+aUTpR5mbpXDHrYzTlZuKgGwBfJwaIELxpZ1QW8RU1OOCxdpw
h8meCsBGLpX4yqsfEMAzcTWfOA1ONLY/S8ifHrqxoRsfPrg6Y8lzHtAP1LfkGQ2PCPOnCNDVJU2h
xwwScnFZ3zdufEYVjzv2uO0JvdXvyxGOV1ujigw3P7seDhp6QGjFUqCgOxWu3PaLu1WpQ3BUf7n7
ODcyFrL3qhX6waCYQ73nEyO4kKXx2swt5GN/btzZYMGo0x6n37nVk47eilR6Qd1tALrldO8FOAVF
sF7vT6EGFNQB2E7S6WhnEasY4XTGeckfbMa9UT2YZbquACfAN/0sMMk6gcZMsujmAGeeWwcweXgE
T4k9yZSM/7Lpnx05NoKZ81YjZz+g8D5snli9uIEav2ujZ9G4TK5tPQnsCtnmm7BGB5hoiWIDgNuU
1JsFC3hP/3UqaRdfFzZJbXwVZysf+0seEvDEbxyb9WXHTKF9IjyE3CvYpqaucsp3hdOxho7l5FuO
U0++cdWXBqU7FnNmOXkPBwj6Rk9A8nvz/P92SwL5TtsCdgpS6eaJfrMRI23odMU+jV29ffo9IgJm
40v9YmQdkMyc+8L3JmWy59j5vU+fB08SwXTgQh72WvcPqoj2Swopf2nL8zKD3JHfw2BZb90dwQy9
6qVMysAhZiOPrjtpf7m4jyRa+W8dXECFNFjo7UFpm9DGHJWIQe/mxHp/yr10MjHwtGvx7JdQMw4Y
yCFULi4znCdDYV8K/Z33GNjiVa6T9aYwEngMQkzuf4olMXanwbtbaoAk9zTvQL4eWidIbJbTc+mh
D0/soSe/jz+0NOrwROAYaKsS2Naaaj+UdJJ2C8BbbvI+gkfnWBXU2eC59ZDGGZnX62IgsSvFPXnl
Nn6BPQ7p5a4ILbOOinWa097FVxxhyjvLgkT0SjRJYoOuTm3m/MzXWdaHQ79GXuUNKr5rIsIrrgPj
LedKbayR1C48a1s7ehNwOk7WxkBwORFAn918+tbwv1TWMwBvkMLxZL6/lePDPHzTMz8lryf+lY3P
xgMmhL7OGJdavfnt0fGbnnzq/wJqm7cAPA1ifR/+EnQHDQE8Ou/7fl1ThkIjG/F6R7X/H7T1r8zX
me3wV/1yF5IDCDhrPvjbMr5xG8AzKmbv8Td2woV4wCm/kddX/sJzYjx87iCXZJah4C+GKidnTz9j
1sb8//QK3+UVbDtQrVMryiOod5hnb35yLkjBVvCmO5ZPPL55YUymoMpQP/73/UU7FwFau+oTzifB
aBkCLUsMyijBfNiq0UcN/WvFTd/9szExzOK3LTnBy/x6L3xGfS9+AqxKaif/uacb/3phfDleVkmA
M2P6hU2ID/9F/RIBvL8dfN6E/NW4/r81+T9TZf8E0n3a8Ref05H6cwLPCpO+vxkF/ov68SX+pQmD
VP6s3GOdmfW/UD/5eMCyoPBfoG7a4V/UD35R8W8j9a87f3J75NhfT7Ht87/GmpmF9eG/uc1oMxFp
++H188jR/zVvTXwUCYhVace4qDFG8qhzV5jrx70RiVaO8y47PkTTHoJpHJXN9KUvr+sxkOZFq56/
l5FFp3WnmqLjlvU04TgHlUqt3eNR90DMUWivZ1aBxlnAk8kjv8CAVz1zMbILD64qhlkWALns2KkU
X4lTnGWNG6qiUkrYd0xIVJQjZGoqY+uzvdPLreXlKh0QSGwgOzcM529jDUaF1I2pfKhoiRyHdAQS
YudL2wm/awP7MCk6LK13L9uzEhtiWrdacQ0Ngqz3TFcw2LZqdwJxarxDEfZ4dQsT+oN90V5hc2n8
P7kb9I6RG8eXDdyVQCQSKXGc5anv93HAx+2/ZpzWhU/SPHmHDdT4XPI+HqV3agrdwKccoNuIIzp6
EgOUZO6t6gsc6S4WkbBSl5wp0CpSm5GPtfY1+fNBSO7f22b1oqsHXPESgpxwAk3jgVXUqP249y47
sGbOlvf7dThvYK5YAph/Gkh8FGjviurxe+wAIK8aom4DeP350IKre1wv5xeaNciyPl3T5PTH+CJJ
fDGoBiNc/bbLlBEgNOz69I53E3+A/WyZ4gH29PZsd0qHqqZa21KVR7MSLtRefyqKWuieZh1dexAB
qRVNqr/126Z459706gG7VQr9sfRDy2pYJRVLgekKlljUo13H+/K+MqRca+gWw67aqczKTfn+4r6q
aBib+XCUNBlH/4rrww2Le07iTclnfhPvL64FSiwSivfC/DeZD09bBNeQN7vZmVb6QltrzYwvzo7E
iF60IgoN3efi92PXBgNhoXObrencNwf55C778aafAyTO0wjl99tMy9N2bmYLq4rayeRlrzbJ7iOi
QkUSmDOlbeUHbVI6EGs1wlRCqBL24GMhkGNy+AUA4RbGOx7KaN3i9cW2EIVuqneilgy9TQCmG32V
6F4i3A+yVnkoui1ShWeb6Bxoy3uXNYEFZIk3tbaK8t5twTQmVqVxEKmEyGbhm4kVdF+ifyiTwfud
P9D5egTkhnQ8bgeJawrmTNkWvRD48yRdePdBSse1BDcX2hsAf4aJkaUhysD96f8AUEsHCJDlRZqU
WgAAn2YAAFBLAwQKAAAAAACErYFDAAAAAAAAAAAAAAAACQAQAF9fTUFDT1NYL1VYDAAoHpxSKB6c
UvUBFABQSwMEFAAIAAgAHayBQwAAAAAAAAAAAAAAABgAEABfX01BQ09TWC8uX1Rlc3RfY2FyZC5w
bmdVWAwAJB6cUoobnFL1ARQAY2AVY2dgYmDwTUxW8A9WiFCAApAYAycQGwFxBxCD+LsYiAKOISFB
UCZIxwwgVkJTwogQF03Oz9VLLCjISdUrLE0sSswrycxLZSjUNzAwMLQ2NbJMNkyySLR2z89Pz0mN
qTAycM4oys9NtWYAAFBLBwj4lEPKbQAAALoAAABQSwECFQMUAAgACAAdrIFDkOVFmpRaAACfZgAA
DQAMAAAAAAAAAABAgIEAAAAAVGVzdF9jYXJkLnBuZ1VYCAAkHpxSihucUlBLAQIVAwoAAAAAAISt
gUMAAAAAAAAAAAAAAAAJAAwAAAAAAAAAAED9Qd9aAABfX01BQ09TWC9VWAgAKB6cUigenFJQSwEC
FQMUAAgACAAdrIFD+JRDym0AAAC6AAAAGAAMAAAAAAAAAABAgIEWWwAAX19NQUNPU1gvLl9UZXN0
X2NhcmQucG5nVVgIACQenFKKG5xSUEsFBgAAAAADAAMA3AAAANlbAAAAAA==
--Apple-Mail=_11F63200-BC6D-4915-A84C-2984BD601459--

View file

@ -1,106 +0,0 @@
From: Test User <testuser@tedivm.com>
Content-Type: multipart/alternative;
boundary="Apple-Mail=_84A265D1-9965-465D-BF46-0D7CBC5AD5F3"
X-Smtp-Server: mail.tedivm.com:testuser@tedivm.com
Subject: Standard
Message-Id: <8A2F7BF4-73C5-48D2-9409-FFF5CE461095@tedivm.com>
X-Universally-Unique-Identifier: 88527211-c589-467d-883f-83cd77d41e65
Date: Sun, 1 Dec 2013 21:43:43 -0800
To: Robert Hafner <tedivm@tedivm.com>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
--Apple-Mail=_84A265D1-9965-465D-BF46-0D7CBC5AD5F3
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=us-ascii
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque =
sollicitudin auctor tellus. Etiam ornare fringilla est, eget iaculis =
tellus pellentesque id. Integer vestibulum, dui at luctus porta, magna =
arcu faucibus turpis, eu vestibulum mauris quam vitae metus. In aliquam =
ornare neque ut aliquam. Vivamus eu tortor feugiat, ultricies nulla at, =
luctus enim. Nunc ultrices nulla et eleifend volutpat. Quisque aliquet =
aliquet elit, eget convallis sapien.
Nullam fringilla turpis ac tortor venenatis, sit amet rutrum odio =
faucibus. Aenean vel mollis diam, id tincidunt libero. Aenean imperdiet =
vestibulum blandit. Curabitur nec metus magna. Phasellus imperdiet, orci =
ut egestas fermentum, diam lacus vehicula felis, eget feugiat velit =
tortor quis tellus. Aliquam at massa ut purus ultrices molestie et a =
ligula. Maecenas tempus at tellus quis malesuada.
Nam sagittis rutrum tellus nec volutpat. Fusce ac leo quis dui eleifend =
scelerisque. In adipiscing pretium sapien at ullamcorper. Sed nec porta =
leo. Curabitur dapibus commodo rutrum. Nulla in odio elit. Sed id =
sodales sapien, at fringilla purus. Quisque ut volutpat odio. Curabitur =
et hendrerit dui, blandit auctor erat.
Nunc laoreet quis lacus vitae lobortis. In tincidunt rhoncus velit, ac =
egestas odio sollicitudin sed. Nam fermentum sapien vel tortor aliquam, =
vel lobortis ante dictum. Nulla commodo velit at velit tincidunt =
condimentum. Etiam tellus enim, fringilla sed leo sit amet, dignissim =
auctor ligula. Proin mattis, nisi quis varius convallis, nulla lectus =
elementum sem, vel aliquam quam nibh quis tellus. Phasellus tempor eget =
sem vitae rutrum. Donec bibendum condimentum pellentesque. Pellentesque =
suscipit felis nec sagittis ullamcorper. Duis sit amet est in risus =
vehicula mollis. Nunc venenatis lacus ipsum, ut consectetur risus =
egestas sed.
Morbi dapibus et metus vel elementum. Aliquam sit amet enim at tortor =
mattis consectetur. Nunc sit amet fringilla ante, nec posuere magna. =
Praesent elementum feugiat nisl, vitae faucibus leo consequat nec. Ut =
lacus eros, vulputate a erat adipiscing, consequat tempor sem. Ut et =
malesuada tortor. Quisque tempus arcu ut malesuada dignissim. Maecenas =
massa tellus, pharetra sed faucibus ut, commodo id arcu.=
--Apple-Mail=_84A265D1-9965-465D-BF46-0D7CBC5AD5F3
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
charset=us-ascii
<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><p =
style=3D"margin: 0px 0px 14px; text-align: justify; font-size: 11px; =
font-family: Arial; ">Lorem ipsum dolor sit amet, consectetur adipiscing =
elit. Quisque sollicitudin auctor tellus. Etiam ornare fringilla est, =
eget iaculis tellus pellentesque id. Integer vestibulum, dui at luctus =
porta, magna arcu faucibus turpis, eu vestibulum mauris quam vitae =
metus. In aliquam ornare neque ut aliquam. Vivamus eu tortor feugiat, =
ultricies nulla at, luctus enim. Nunc ultrices nulla et eleifend =
volutpat. Quisque aliquet aliquet elit, eget convallis sapien.</p><p =
style=3D"margin: 0px 0px 14px; text-align: justify; font-size: 11px; =
font-family: Arial; ">Nullam fringilla turpis ac tortor venenatis, sit =
amet rutrum odio faucibus. Aenean vel mollis diam, id tincidunt libero. =
Aenean imperdiet vestibulum blandit. Curabitur nec metus magna. =
Phasellus imperdiet, orci ut egestas fermentum, diam lacus vehicula =
felis, eget feugiat velit tortor quis tellus. Aliquam at massa ut purus =
ultrices molestie et a ligula. Maecenas tempus at tellus quis =
malesuada.</p><p style=3D"margin: 0px 0px 14px; text-align: justify; =
font-size: 11px; font-family: Arial; ">Nam sagittis rutrum tellus nec =
volutpat. Fusce ac leo quis dui eleifend scelerisque. In adipiscing =
pretium sapien at ullamcorper. Sed nec porta leo. Curabitur dapibus =
commodo rutrum. Nulla in odio elit. Sed id sodales sapien, at fringilla =
purus. Quisque ut volutpat odio. Curabitur et hendrerit dui, blandit =
auctor erat.</p><p style=3D"margin: 0px 0px 14px; text-align: justify; =
font-size: 11px; font-family: Arial; ">Nunc laoreet quis lacus vitae =
lobortis. In tincidunt rhoncus velit, ac egestas odio sollicitudin sed. =
Nam fermentum sapien vel tortor aliquam, vel lobortis ante dictum. Nulla =
commodo velit at velit tincidunt condimentum. Etiam tellus enim, =
fringilla sed leo sit amet, dignissim auctor ligula. Proin mattis, nisi =
quis varius convallis, nulla lectus elementum sem, vel aliquam quam nibh =
quis tellus. Phasellus tempor eget sem vitae rutrum. Donec bibendum =
condimentum pellentesque. Pellentesque suscipit felis nec sagittis =
ullamcorper. Duis sit amet est in risus vehicula mollis. Nunc venenatis =
lacus ipsum, ut consectetur risus egestas sed.</p><p style=3D"margin: =
0px 0px 14px; text-align: justify; font-size: 11px; font-family: Arial; =
">Morbi dapibus et metus vel elementum. Aliquam sit amet enim at tortor =
mattis consectetur. Nunc sit amet fringilla ante, nec posuere magna. =
Praesent elementum feugiat nisl, vitae faucibus leo consequat nec. Ut =
lacus eros, vulputate a erat adipiscing, consequat tempor sem. Ut et =
malesuada tortor. Quisque tempus arcu ut malesuada dignissim. Maecenas =
massa tellus, pharetra sed faucibus ut, commodo id =
arcu.</p></body></html>=
--Apple-Mail=_84A265D1-9965-465D-BF46-0D7CBC5AD5F3--

View file

@ -1,66 +0,0 @@
From: Test User <testuser@tedivm.com>
Content-Type: multipart/alternative;
boundary="Apple-Mail=_8B94A101-BE68-4784-8977-9E71B76B05BF"
X-Smtp-Server: mail.tedivm.com:testuser@tedivm.com
Subject: Fwd: Forwarding
X-Universally-Unique-Identifier: 0f8ed9f7-a3b3-49b8-a497-1337b62a7916
Date: Sun, 1 Dec 2013 21:47:03 -0800
References: <20131202051403.4108C45C3C@figment.tedivm.com>
To: Robert Hafner <tedium@gmail.com>
Message-Id: <D69D461B-54E9-4D52-A0C9-8BC8432490CF@tedivm.com>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
--Apple-Mail=_8B94A101-BE68-4784-8977-9E71B76B05BF
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
charset=us-ascii
Begin forwarded message:
> From: tedivm@tedivm.com
> Subject: Welcome
> Date: December 1, 2013 9:14:03 PM PST
> To: testuser@tedivm.com
>
> Hi,
>
> Welcome to your new account.
--Apple-Mail=_8B94A101-BE68-4784-8977-9E71B76B05BF
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
charset=us-ascii
<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; =
"><br><div><br><div>Begin forwarded message:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px;"><span style=3D"font-family:'Helvetica'; =
font-size:medium; color:rgba(0, 0, 0, 1.0);"><b>From: </b></span><span =
style=3D"font-family:'Helvetica'; font-size:medium;"><a =
href=3D"mailto:tedivm@tedivm.com">tedivm@tedivm.com</a><br></span></div><d=
iv style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px;"><span style=3D"font-family:'Helvetica'; =
font-size:medium; color:rgba(0, 0, 0, 1.0);"><b>Subject: =
</b></span><span style=3D"font-family:'Helvetica'; =
font-size:medium;"><b>Welcome</b><br></span></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px;"><span style=3D"font-family:'Helvetica'; =
font-size:medium; color:rgba(0, 0, 0, 1.0);"><b>Date: </b></span><span =
style=3D"font-family:'Helvetica'; font-size:medium;">December 1, 2013 =
9:14:03 PM PST<br></span></div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span =
style=3D"font-family:'Helvetica'; font-size:medium; color:rgba(0, 0, 0, =
1.0);"><b>To: </b></span><span style=3D"font-family:'Helvetica'; =
font-size:medium;"><a =
href=3D"mailto:testuser@tedivm.com">testuser@tedivm.com</a><br></span></di=
v><br><div>Hi,<br><br>Welcome to your new =
account.<br></div></blockquote></div><br></body></html>=
--Apple-Mail=_8B94A101-BE68-4784-8977-9E71B76B05BF--

View file

@ -1,9 +0,0 @@
3 V1386550439 N1 G387c59021416a552f73c0000274587c9
1 :1386550921.M370350P15607.tedivm,S=3105,W=3167
2 :1386550926.M790538P15603.tedivm,S=3105,W=3167
3 :1386550930.M673971P15603.tedivm,S=3786,W=3859
4 :1386550933.M997550P15603.tedivm,S=5164,W=5258
5 :1386550936.M882561P15603.tedivm,S=32953,W=33398
6 :1386550940.M245886P15603.tedivm,S=6084,W=6190
7 :1386550943.M398887P15603.tedivm,S=2739,W=2805
8 :1386550946.M403214P15603.tedivm,S=483972,W=490302

View file

@ -1,32 +0,0 @@
Return-Path: <tedivm@tedivm.com>
Delivered-To: testuser@tedivm.com
Received: from localhost (localhost [127.0.0.1])
by figment.tedivm.com (Postfix) with ESMTP id DDC6A45C3D
for <testuser@tedivm.com>; Sun, 1 Dec 2013 21:59:37 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tedivm.com; h=
x-mailer:mime-version:to:date:date:message-id:subject:subject
:content-transfer-encoding:content-type:content-type:from:from;
s=dkim; t=1385963977; x=1386827977; bh=6FrTkau2ocTObhRz+aEzWiVw
n8OcsO/3WePa6z68hYk=; b=VHTh9AZQlUyJ3+uFX4t55YZto/kdvKc3sgt0hNyR
iTw87p+z8zjQ22XKGR2kI6lhdE0+TNxVPh8dPA/sn7YvFx3TiiXG7lvXtKsIULIy
6q06676gVa47fWnunLX/ZPU65QLdYBvyaC5VL7honaeZkO8k15PiRoRIii2Im524
i9E=
X-Virus-Scanned: Debian amavisd-new at debian
Received: from figment.tedivm.com ([127.0.0.1])
by localhost (figment.tedivm.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id b8zx9HjsmfBd for <testuser@tedivm.com>;
Sun, 1 Dec 2013 21:59:37 -0800 (PST)
Received: from [10.0.42.10] (c-67-180-166-128.hsd1.ca.comcast.net [67.180.166.128])
by figment.tedivm.com (Postfix) with ESMTPSA id 8E51045C3C
for <testuser@tedivm.com>; Sun, 1 Dec 2013 21:59:36 -0800 (PST)
From: Robert Hafner <tedivm@tedivm.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Subject: Folder Email Two
Message-Id: <67AA0C93-B2C7-40E8-8A2E-E186211ABECE@tedivm.com>
Date: Sun, 1 Dec 2013 21:59:36 -0800
To: "testuser@tedivm.com" <testuser@tedivm.com>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
X-Mailer: Apple Mail (2.1510)
This email is also in a folder.

View file

@ -1,32 +0,0 @@
Return-Path: <tedivm@tedivm.com>
Delivered-To: testuser@tedivm.com
Received: from localhost (localhost [127.0.0.1])
by figment.tedivm.com (Postfix) with ESMTP id 340DF45C3D
for <testuser@tedivm.com>; Sun, 1 Dec 2013 21:59:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tedivm.com; h=
x-mailer:mime-version:to:date:date:message-id:subject:subject
:content-transfer-encoding:content-type:content-type:from:from;
s=dkim; t=1385963964; x=1386827964; bh=1wetqU1sCvhvHnu1/wv4WKBr
2LYIzd44JgEh8UU/eRA=; b=qO5/Ye6+Dd6PILKiUkfNoKYG72C/JrRcJoVkmOWR
qTp9FtGsHcbIROoy4KlaOGMDA6kv01JertjrVqJ8DmeYeN3eROlYJX/cKOVSibin
n/8v66mEAJ3gCCBC4a9fGN+fe4F0YfBKAW0ygNgnFtrSPd5JAXbj+/mYlv0zB5eD
Cxk=
X-Virus-Scanned: Debian amavisd-new at debian
Received: from figment.tedivm.com ([127.0.0.1])
by localhost (figment.tedivm.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id 7zzpFdLKey1U for <testuser@tedivm.com>;
Sun, 1 Dec 2013 21:59:24 -0800 (PST)
Received: from [10.0.42.10] (c-67-180-166-128.hsd1.ca.comcast.net [67.180.166.128])
by figment.tedivm.com (Postfix) with ESMTPSA id EB38F45C3C
for <testuser@tedivm.com>; Sun, 1 Dec 2013 21:59:22 -0800 (PST)
From: Robert Hafner <tedivm@tedivm.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Subject: Folder Email One
Message-Id: <3C43EE8C-E193-4D29-8CB3-88D719418FEB@tedivm.com>
Date: Sun, 1 Dec 2013 21:59:22 -0800
To: "testuser@tedivm.com" <testuser@tedivm.com>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
X-Mailer: Apple Mail (2.1510)
This email is in a folder.

View file

@ -1,32 +0,0 @@
Return-Path: <tedivm@tedivm.com>
Delivered-To: testuser@tedivm.com
Received: from localhost (localhost [127.0.0.1])
by figment.tedivm.com (Postfix) with ESMTP id 439E245C3D
for <testuser@tedivm.com>; Sun, 1 Dec 2013 22:00:09 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tedivm.com; h=
x-mailer:mime-version:to:date:date:message-id:subject:subject
:content-transfer-encoding:content-type:content-type:from:from;
s=dkim; t=1385964009; x=1386828009; bh=m/dFGOLhkezPdfI8JtcU4eB/
iCmLrtX/CE8zBFG60fk=; b=d24EhG9Xw+4I29OLj3683n5GPFN6fyIyvkvGlEq7
I+LsVWGSLmXn7GjhdsC2eSgzVj2rpTKZqlME6Fwj6aYCrZ0BVu+nP1D5rwZq5xhx
w321thJeOoAoZ2O2DBc8cM/5p/W1DeL6vhwvGlOVPVAJhq5KA8cFB66OMOCRAOwC
aG4=
X-Virus-Scanned: Debian amavisd-new at debian
Received: from figment.tedivm.com ([127.0.0.1])
by localhost (figment.tedivm.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id 8ojQ3QDQJ95M for <testuser@tedivm.com>;
Sun, 1 Dec 2013 22:00:09 -0800 (PST)
Received: from [10.0.42.10] (c-67-180-166-128.hsd1.ca.comcast.net [67.180.166.128])
by figment.tedivm.com (Postfix) with ESMTPSA id 001D545C38
for <testuser@tedivm.com>; Sun, 1 Dec 2013 22:00:07 -0800 (PST)
From: Robert Hafner <tedivm@tedivm.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Subject: Folder Email Three
Message-Id: <95B778EB-B825-4B30-B73B-0FBE16BEF9F4@tedivm.com>
Date: Sun, 1 Dec 2013 22:00:07 -0800
To: "testuser@tedivm.com" <testuser@tedivm.com>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
X-Mailer: Apple Mail (2.1510)
This email is *totally* in a folder.

View file

@ -1,2 +0,0 @@
0 $NotJunk
1 NotJunk

View file

@ -1,4 +0,0 @@
3 V1386550438 N1 G377c59021416a552f73c0000274587c9
1 :1386550874.M8462P15607.tedivm,S=1584,W=1616
2 :1386550874.M16452P15607.tedivm,S=1577,W=1609
3 :1386550874.M23941P15607.tedivm,S=1572,W=1604

View file

@ -1,53 +0,0 @@
Return-Path: <tedium@gmail.com>
Delivered-To: testuser@tedivm.com
Received: from localhost (localhost [127.0.0.1])
by figment.tedivm.com (Postfix) with ESMTP id 3234B45C3D
for <testuser@tedivm.com>; Sun, 1 Dec 2013 21:52:09 -0800 (PST)
X-Virus-Scanned: Debian amavisd-new at debian
Authentication-Results: figment.tedivm.com (amavisd-new); dkim=pass
header.i=@gmail.com
Received: from figment.tedivm.com ([127.0.0.1])
by localhost (figment.tedivm.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id qdrzzT5oWuT4 for <testuser@tedivm.com>;
Sun, 1 Dec 2013 21:52:04 -0800 (PST)
X-Original-Helo: mail-ob0-f178.google.com (iRedMail: http://www.iredmail.org/)
Received: from mail-ob0-f178.google.com (mail-ob0-f178.google.com [209.85.214.178])
by figment.tedivm.com (Postfix) with ESMTPS id 4760745C3C
for <testuser@tedivm.com>; Sun, 1 Dec 2013 21:52:04 -0800 (PST)
Received: by mail-ob0-f178.google.com with SMTP id uz6so12097880obc.23
for <testuser@tedivm.com>; Sun, 01 Dec 2013 21:52:03 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20120113;
h=date:from:to:message-id:subject:mime-version:content-type
:content-transfer-encoding:content-disposition:precedence
:auto-submitted;
bh=V9LLk5uXxik153Geg97TS97IUCCXsC6gYlIT1EMicpM=;
b=Byn/bkvKts1oQ2uGkDJwVypVNQPCqzlkKvNF4pkgPxH2j8s7VEU1q/0DOB9oMp4Yo6
dgtbYJDQ/q9tTTASYDNsenVE7pVVWhoDuJL0QxrJMD6sbQnaIOTWVE3neriibCnMm29U
22Js6DsVyHcy2cHHBR6HfDRDk2sAGGw+Wy2IlGpteAtVUt9PJkZIqUH4+7yzhDzZt19j
59B7fRkO68nb+Hcd+cR3/ueAa+WLt6FTbLez257L1WC137r6Dx2htPxixTe+IC4C78uY
C9otr3n+dARRReFZoagnwVfvYGw01rFLgWXPslITk1LkBsWvmHFh4Wn5nnVEBS57C3/l
QoZw==
X-Received: by 10.182.48.130 with SMTP id l2mr475966obn.44.1385963187161;
Sun, 01 Dec 2013 21:46:27 -0800 (PST)
Date: Sun, 1 Dec 2013 21:46:27 -0800
From: "Robert Hafner" <tedium@gmail.com>
To: testuser@tedivm.com
Message-ID: <CAPDyTe3ZfE8jAuVTWHmf-sJQ6NYBrAUWrq-Fb6MKMtN4fYX-nw@mail.gmail.com>
Subject: Are you looking for tedivm? Re: With CC
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Precedence: bulk
X-Autoreply: yes
Auto-Submitted: auto-replied
Sorry guys, this address is not my official or used address- it's
purely a spam box that I never log into. This is just an autoresponder
to let you know this, and I have no idea what you sent me.
If you're looking to get ahold of me please email tedivm at tedivm dot
com, and I will get back to you shortly.
Robert

View file

@ -1,32 +0,0 @@
Return-Path: <tedivm@tedivm.com>
Delivered-To: testuser@tedivm.com
Received: from localhost (localhost [127.0.0.1])
by figment.tedivm.com (Postfix) with ESMTP id 8417145C3D
for <testuser@tedivm.com>; Sun, 1 Dec 2013 21:14:03 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tedivm.com; h=
date:date:message-id:content-transfer-encoding:content-type
:content-type:mime-version:subject:subject:from:from:to; s=dkim;
t=1385961243; x=1386825243; bh=QgJIMkj7bcmiv3bFFw8uU+eTOPQz1gHS
N7Nj+L6bx8g=; b=GuTY5kb9H94vznAlWR9nWAim2OpRggs0FFrd2/yN1yAdplvJ
QJonQcfFy6uRxpMsLvGv90Wo6i4sa5Ip9eJQvQH/d1MHq7v8w6C8l5d+lKibZjvS
DVWYlf33p6uFZKalSzaDDZ1br68p+lwq5HBf+AM46u19YV7dZkGh88Ybhk8=
X-Virus-Scanned: Debian amavisd-new at debian
Received: from figment.tedivm.com ([127.0.0.1])
by localhost (figment.tedivm.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id nXUvF67V6TIK for <testuser@tedivm.com>;
Sun, 1 Dec 2013 21:14:03 -0800 (PST)
Received: from figment.tedivm.com (localhost [127.0.0.1])
by figment.tedivm.com (Postfix) with ESMTP id 4108C45C3C
for <testuser@tedivm.com>; Sun, 1 Dec 2013 21:14:03 -0800 (PST)
To: testuser@tedivm.com
From: tedivm@tedivm.com
Subject: Welcome
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Message-Id: <20131202051403.4108C45C3C@figment.tedivm.com>
Date: Sun, 1 Dec 2013 21:14:03 -0800 (PST)
Hi,
Welcome to your new account.

View file

@ -1,129 +0,0 @@
Return-Path: <tedivm@tedivm.com>
Delivered-To: testuser@tedivm.com
Received: from localhost (localhost [127.0.0.1])
by figment.tedivm.com (Postfix) with ESMTP id A39E245C3D
for <testuser@tedivm.com>; Sun, 1 Dec 2013 22:37:27 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tedivm.com; h=
x-mailer:mime-version:to:date:date:message-id:subject:subject
:content-type:content-type:from:from; s=dkim; t=1385966247; x=
1386830247; bh=XeXM8yJHVcw1kzHT8D6efDQzKF7OTlQ5ZgKU+OTYPJI=; b=f
3rcgy+ZQtXR9hkD/BBZUoxK5q4DLWNWxpvenX5eFoW866G+KiXT9ndpEAt3KpAl4
lMumurRXPe0h70HgzNtixHPkD+gJ2LiHLCu3QhDvUdFgOIN6B1PrJK0tTnimh4+G
qul4vhZQu/HDKm9+4ErmO4vYbd4OLUccxmxXXTRK1Y=
X-Virus-Scanned: Debian amavisd-new at debian
Received: from figment.tedivm.com ([127.0.0.1])
by localhost (figment.tedivm.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id liNO3TxBd21F for <testuser@tedivm.com>;
Sun, 1 Dec 2013 22:37:27 -0800 (PST)
Received: from [10.0.42.10] (c-67-180-166-128.hsd1.ca.comcast.net [67.180.166.128])
by figment.tedivm.com (Postfix) with ESMTPSA id F17A645C3C
for <testuser@tedivm.com>; Sun, 1 Dec 2013 22:37:26 -0800 (PST)
From: Robert Hafner <tedivm@tedivm.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_0EFED08E-3029-46BC-B23B-00B842C7C607"
Subject: Formatted
Message-Id: <AB839942-E899-4427-AC99-1911F5BBED54@tedivm.com>
Date: Sun, 1 Dec 2013 22:36:55 -0800
To: "testuser@tedivm.com" <testuser@tedivm.com>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
X-Mailer: Apple Mail (2.1510)
--Apple-Mail=_0EFED08E-3029-46BC-B23B-00B842C7C607
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=us-ascii
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque =
sollicitudin auctor tellus. Etiam ornare fringilla est, eget iaculis =
tellus pellentesque id. Integer vestibulum, dui at luctus porta, magna =
arcu faucibus turpis, eu vestibulum mauris quam vitae metus. In aliquam =
ornare neque ut aliquam. Vivamus eu tortor feugiat, ultricies nulla at, =
luctus enim. Nunc ultrices nulla et eleifend volutpat. Quisque aliquet =
aliquet elit, eget convallis sapien.
Nullam fringilla turpis ac tortor venenatis, sit amet rutrum odio =
faucibus. Aenean vel mollis diam, id tincidunt libero. Aenean imperdiet =
vestibulum blandit. Curabitur nec metus magna. Phasellus imperdiet, orci =
ut egestas fermentum, diam lacus vehicula felis, eget feugiat velit =
tortor quis tellus. Aliquam at massa ut purus ultrices molestie et a =
ligula. Maecenas tempus at tellus quis malesuada.
Nam sagittis rutrum tellus nec volutpat. Fusce ac leo quis dui eleifend =
scelerisque. In adipiscing pretium sapien at ullamcorper. Sed nec porta =
leo. Curabitur dapibus commodo rutrum. Nulla in odio elit. Sed id =
sodales sapien, at fringilla purus. Quisque ut volutpat odio. Curabitur =
et hendrerit dui, blandit auctor erat.
Nunc laoreet quis lacus vitae lobortis. In tincidunt rhoncus velit, ac =
egestas odio sollicitudin sed. Nam fermentum sapien vel tortor aliquam, =
vel lobortis ante dictum. Nulla commodo velit at velit tincidunt =
condimentum. Etiam tellus enim, fringilla sed leo sit amet, dignissim =
auctor ligula. Proin mattis, nisi quis varius convallis, nulla lectus =
elementum sem, vel aliquam quam nibh quis tellus. Phasellus tempor eget =
sem vitae rutrum. Donec bibendum condimentum pellentesque. Pellentesque =
suscipit felis nec sagittis ullamcorper. Duis sit amet est in risus =
vehicula mollis. Nunc venenatis lacus ipsum, ut consectetur risus =
egestas sed.
Morbi dapibus et metus vel elementum. Aliquam sit amet enim at tortor =
mattis consectetur. Nunc sit amet fringilla ante, nec posuere magna. =
Praesent elementum feugiat nisl, vitae faucibus leo consequat nec. Ut =
lacus eros, vulputate a erat adipiscing, consequat tempor sem. Ut et =
malesuada tortor. Quisque tempus arcu ut malesuada dignissim. Maecenas =
massa tellus, pharetra sed faucibus ut, commodo id arcu.
--Apple-Mail=_0EFED08E-3029-46BC-B23B-00B842C7C607
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
charset=us-ascii
<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><p =
style=3D"margin: 0px 0px 14px; text-align: justify; font-size: 11px; =
font-family: Arial; "><b>Lorem ipsum dolor sit amet, consectetur =
adipiscing elit. Quisque sollicitudin auctor tellus. Etiam ornare =
fringilla est, eget iaculis tellus pellentesque id. Integer vestibulum, =
dui at luctus porta, magna arcu faucibus turpis, eu vestibulum mauris =
quam vitae metus. In aliquam ornare neque ut aliquam. Vivamus eu tortor =
feugiat, ultricies nulla at, luctus enim. Nunc ultrices nulla et =
eleifend volutpat. Quisque aliquet aliquet elit, eget convallis =
sapien.</b></p><p style=3D"margin: 0px 0px 14px; text-align: justify; =
font-size: 11px; font-family: Arial; "><i>Nullam fringilla turpis ac =
tortor venenatis, sit amet rutrum odio faucibus. Aenean vel mollis diam, =
id tincidunt libero. Aenean imperdiet vestibulum blandit. Curabitur nec =
metus magna. Phasellus imperdiet, orci ut egestas fermentum, diam lacus =
vehicula felis, eget feugiat velit tortor quis tellus. Aliquam at massa =
ut purus ultrices molestie et a ligula. Maecenas tempus at tellus quis =
malesuada.</i></p><p style=3D"margin: 0px 0px 14px; text-align: justify; =
font-size: 11px; font-family: Arial; "><u>Nam sagittis rutrum tellus nec =
volutpat. Fusce ac leo quis dui eleifend scelerisque. In adipiscing =
pretium sapien at ullamcorper. Sed nec porta leo. Curabitur dapibus =
commodo rutrum. Nulla in odio elit. Sed id sodales sapien, at fringilla =
purus. Quisque ut volutpat odio. Curabitur et hendrerit dui, blandit =
auctor erat.</u></p><p style=3D"margin: 0px 0px 14px; text-align: =
justify; font-size: 11px; font-family: Arial; "><font =
color=3D"#e63b7a">Nunc laoreet quis lacus vitae lobortis. In tincidunt =
rhoncus velit, ac egestas odio sollicitudin sed. Nam fermentum sapien =
vel tortor aliquam, vel lobortis ante dictum. Nulla commodo velit at =
velit tincidunt condimentum. Etiam tellus enim, fringilla sed leo sit =
amet, dignissim auctor ligula. Proin mattis, nisi quis varius convallis, =
nulla lectus elementum sem, vel aliquam quam nibh quis tellus. Phasellus =
tempor eget sem vitae rutrum. Donec bibendum condimentum pellentesque. =
Pellentesque suscipit felis nec sagittis ullamcorper. Duis sit amet est =
in risus vehicula mollis. Nunc venenatis lacus ipsum, ut consectetur =
risus egestas sed.</font></p><p style=3D"margin: 0px 0px 14px; =
text-align: justify; font-size: 11px; "><font face=3D"Chalkduster">Morbi =
dapibus et metus vel elementum. Aliquam sit amet enim at tortor mattis =
consectetur. Nunc sit amet fringilla ante, nec posuere magna. Praesent =
elementum feugiat nisl, vitae faucibus leo consequat nec. Ut lacus eros, =
vulputate a erat adipiscing, consequat tempor sem. Ut et malesuada =
tortor. Quisque tempus arcu ut malesuada dignissim. Maecenas massa =
tellus, pharetra sed faucibus ut, commodo id arcu.</font></p><div><font =
face=3D"Chalkduster"><br></font></div>
<br></body></html>=
--Apple-Mail=_0EFED08E-3029-46BC-B23B-00B842C7C607--

View file

@ -1,70 +0,0 @@
Return-Path: <tedivm@tedivm.com>
Delivered-To: testuser@tedivm.com
Received: from localhost (localhost [127.0.0.1])
by figment.tedivm.com (Postfix) with ESMTP id C17FF45C3D
for <testuser@tedivm.com>; Sun, 1 Dec 2013 22:37:28 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tedivm.com; h=
x-mailer:mime-version:to:date:date:message-id:subject:subject
:content-transfer-encoding:content-type:content-type:from:from;
s=dkim; t=1385966248; x=1386830248; bh=k5GNv06GolOpN+8TVfSFjxVH
4bwAgrCu4PwpnEv1ijA=; b=jt+ZT0URMbctnsd0vsSRtZAwus6K8Olaxow1umLm
0aXdpJDXiyjC5pf4SSB2tefdyxIukJt3QmBn1vsUzRhyLpIbnO4fOSoMGQJPXlju
G1pzJlpSpff83ZMXlc12LfvjL2UbIMje9BYW3NKanwnatN79ih67iv0Utg3Irf6P
PM8=
X-Virus-Scanned: Debian amavisd-new at debian
Received: from figment.tedivm.com ([127.0.0.1])
by localhost (figment.tedivm.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id I4VAFmhcWRXZ for <testuser@tedivm.com>;
Sun, 1 Dec 2013 22:37:28 -0800 (PST)
Received: from [10.0.42.10] (c-67-180-166-128.hsd1.ca.comcast.net [67.180.166.128])
by figment.tedivm.com (Postfix) with ESMTPSA id 46A5B45C3C
for <testuser@tedivm.com>; Sun, 1 Dec 2013 22:37:27 -0800 (PST)
From: Robert Hafner <tedivm@tedivm.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Subject: Plaintext
Message-Id: <B17C6D67-733A-44DE-B893-95A630033938@tedivm.com>
Date: Sun, 1 Dec 2013 22:37:25 -0800
To: "testuser@tedivm.com" <testuser@tedivm.com>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
X-Mailer: Apple Mail (2.1510)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque =
sollicitudin auctor tellus. Etiam ornare fringilla est, eget iaculis =
tellus pellentesque id. Integer vestibulum, dui at luctus porta, magna =
arcu faucibus turpis, eu vestibulum mauris quam vitae metus. In aliquam =
ornare neque ut aliquam. Vivamus eu tortor feugiat, ultricies nulla at, =
luctus enim. Nunc ultrices nulla et eleifend volutpat. Quisque aliquet =
aliquet elit, eget convallis sapien.
Nullam fringilla turpis ac tortor venenatis, sit amet rutrum odio =
faucibus. Aenean vel mollis diam, id tincidunt libero. Aenean imperdiet =
vestibulum blandit. Curabitur nec metus magna. Phasellus imperdiet, orci =
ut egestas fermentum, diam lacus vehicula felis, eget feugiat velit =
tortor quis tellus. Aliquam at massa ut purus ultrices molestie et a =
ligula. Maecenas tempus at tellus quis malesuada.
Nam sagittis rutrum tellus nec volutpat. Fusce ac leo quis dui eleifend =
scelerisque. In adipiscing pretium sapien at ullamcorper. Sed nec porta =
leo. Curabitur dapibus commodo rutrum. Nulla in odio elit. Sed id =
sodales sapien, at fringilla purus. Quisque ut volutpat odio. Curabitur =
et hendrerit dui, blandit auctor erat.
Nunc laoreet quis lacus vitae lobortis. In tincidunt rhoncus velit, ac =
egestas odio sollicitudin sed. Nam fermentum sapien vel tortor aliquam, =
vel lobortis ante dictum. Nulla commodo velit at velit tincidunt =
condimentum. Etiam tellus enim, fringilla sed leo sit amet, dignissim =
auctor ligula. Proin mattis, nisi quis varius convallis, nulla lectus =
elementum sem, vel aliquam quam nibh quis tellus. Phasellus tempor eget =
sem vitae rutrum. Donec bibendum condimentum pellentesque. Pellentesque =
suscipit felis nec sagittis ullamcorper. Duis sit amet est in risus =
vehicula mollis. Nunc venenatis lacus ipsum, ut consectetur risus =
egestas sed.
Morbi dapibus et metus vel elementum. Aliquam sit amet enim at tortor =
mattis consectetur. Nunc sit amet fringilla ante, nec posuere magna. =
Praesent elementum feugiat nisl, vitae faucibus leo consequat nec. Ut =
lacus eros, vulputate a erat adipiscing, consequat tempor sem. Ut et =
malesuada tortor. Quisque tempus arcu ut malesuada dignissim. Maecenas =
massa tellus, pharetra sed faucibus ut, commodo id arcu.

View file

@ -1,52 +0,0 @@
Return-Path: <tedivm@tedivm.com>
Delivered-To: testuser@tedivm.com
Received: from localhost (localhost [127.0.0.1])
by figment.tedivm.com (Postfix) with ESMTP id 01D4D45C3D
for <testuser@tedivm.com>; Sun, 1 Dec 2013 22:38:37 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tedivm.com; h=
x-mailer:mime-version:to:date:date:message-id:subject:subject
:content-type:content-type:from:from; s=dkim; t=1385966316; x=
1386830316; bh=36KS0HqS+z6c4BG/B+nIGEaA4L2JUuwjikIgNgSr0z8=; b=F
qseq2YU0hzenxlFLd1cm97kL4lar0H2Ldi84WGZJIyhSKX+q8WY7Cw0XJdU5LZwy
FlNdTKY7LUXVn2K8xGf9mihwGIbELL2CQ06FQWrnPXWML6AjvkCAWe0lcqeJSABZ
hwC50AKekCzN4zxJ6UavMvDEoHe8RVjxc8PUtgC2gQ=
X-Virus-Scanned: Debian amavisd-new at debian
Received: from figment.tedivm.com ([127.0.0.1])
by localhost (figment.tedivm.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id NRnFtGp+VRGP for <testuser@tedivm.com>;
Sun, 1 Dec 2013 22:38:36 -0800 (PST)
Received: from [10.0.42.10] (c-67-180-166-128.hsd1.ca.comcast.net [67.180.166.128])
by figment.tedivm.com (Postfix) with ESMTPSA id A177645C3C
for <testuser@tedivm.com>; Sun, 1 Dec 2013 22:38:35 -0800 (PST)
From: Robert Hafner <tedivm@tedivm.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_7F04D00A-146E-4F9C-99DA-84483681A3EB"
Subject: New Message One
Message-Id: <CF9914E7-7962-4148-8E93-DFE35858000F@tedivm.com>
Date: Sun, 1 Dec 2013 22:38:35 -0800
To: "testuser@tedivm.com" <testuser@tedivm.com>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
X-Mailer: Apple Mail (2.1510)
--Apple-Mail=_7F04D00A-146E-4F9C-99DA-84483681A3EB
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=us-ascii
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque =
sollicitudin auctor tellus. Etiam ornare fringilla est, eget iaculis =
tellus pellentesque id. Integer vestibulum, dui at luctus porta, magna =
arcu faucibus turpis, eu vestibulum mauris quam vitae metus. In aliquam =
ornare neque ut aliquam. Vivamus eu tortor feugiat, ultricies nulla at, =
luctus enim. Nunc ultrices nulla et eleifend volutpat. Quisque aliquet =
aliquet elit, eget convallis sapien.
--Apple-Mail=_7F04D00A-146E-4F9C-99DA-84483681A3EB
Content-Transfer-Encoding: 7bit
Content-Type: text/html;
charset=us-ascii
<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><p style="margin: 0px 0px 14px; text-align: justify; font-size: 11px; font-family: Arial; ">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque sollicitudin auctor tellus. Etiam ornare fringilla est, eget iaculis tellus pellentesque id. Integer vestibulum, dui at luctus porta, magna arcu faucibus turpis, eu vestibulum mauris quam vitae metus. In aliquam ornare neque ut aliquam. Vivamus eu tortor feugiat, ultricies nulla at, luctus enim. Nunc ultrices nulla et eleifend volutpat. Quisque aliquet aliquet elit, eget convallis sapien.</p><div><br></div></body></html>
--Apple-Mail=_7F04D00A-146E-4F9C-99DA-84483681A3EB--

View file

@ -1,32 +0,0 @@
Return-Path: <testuser@tedivm.com>
Delivered-To: testuser@tedivm.com
Received: from localhost (localhost [127.0.0.1])
by figment.tedivm.com (Postfix) with ESMTP id 687AA45C3D
for <testuser@tedivm.com>; Sun, 1 Dec 2013 22:40:52 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tedivm.com; h=
x-mailer:mime-version:to:date:date:message-id:subject:subject
:content-transfer-encoding:content-type:content-type:from:from;
s=dkim; t=1385966452; x=1386830452; bh=lgLjCl9Zqc3eLKnyH9vL/1SR
QQjpHwmUsRlAptgyJLo=; b=a2fbNWN5JeIY0KkyRkqOR5s9PbmzqWVDWTabtGBv
PPCebjBHvTizB8MVUxGvky6RGVXzDaretNOrW0BJqpsDbRURbNWT2kxaIQvGZkON
iwAJtB6zBEhBSFU2q6t46swm8RNuK8SeXWEXlg3cO2CT6G5Fcmb1rLZCn0Yj0p03
/rk=
X-Virus-Scanned: Debian amavisd-new at debian
Received: from figment.tedivm.com ([127.0.0.1])
by localhost (figment.tedivm.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id iKblKTCmLyFL for <testuser@tedivm.com>;
Sun, 1 Dec 2013 22:40:52 -0800 (PST)
Received: from [10.0.42.10] (c-67-180-166-128.hsd1.ca.comcast.net [67.180.166.128])
by figment.tedivm.com (Postfix) with ESMTPSA id 2154045C38
for <testuser@tedivm.com>; Sun, 1 Dec 2013 22:40:52 -0800 (PST)
From: Test User <testuser@tedivm.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Subject: Inbox Flagged
Message-Id: <BB58DE16-5565-4843-83DF-B987B204B11B@tedivm.com>
Date: Sun, 1 Dec 2013 22:40:21 -0800
To: "testuser@tedivm.com" <testuser@tedivm.com>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
X-Mailer: Apple Mail (2.1510)
This one is flagged in the inbox.

View file

@ -1,49 +0,0 @@
Return-Path: <tedivm@tedivm.com>
Delivered-To: testuser@tedivm.com
Received: from localhost (localhost [127.0.0.1])
by figment.tedivm.com (Postfix) with ESMTP id 275A645C3D
for <testuser@tedivm.com>; Sun, 1 Dec 2013 22:42:22 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tedivm.com; h=
x-mailer:mime-version:to:date:date:message-id:subject:subject
:content-type:content-type:from:from; s=dkim; t=1385966541; x=
1386830541; bh=SHtv6I264WEb3FPY4UJjVJjoSAsyaXhGlRmBPdnszl4=; b=R
/rrgyxbziR2mHp1Ci+ACxH51qVkjUUxCT0hONtpvAyA5hi9csY+Cik+e/TAQp6rQ
O2ElZ6rwGB/x5emjLUAzEpB35i9mongWPt92CJICvMsWzF50sFLHOJgpJWklpuck
K3XyvzklsWtai4QILF/o9DlWLPugmRkcCR4nTyFR+A=
X-Virus-Scanned: Debian amavisd-new at debian
Received: from figment.tedivm.com ([127.0.0.1])
by localhost (figment.tedivm.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id YyWlsFc1ABA1 for <testuser@tedivm.com>;
Sun, 1 Dec 2013 22:42:21 -0800 (PST)
Received: from [10.0.42.10] (c-67-180-166-128.hsd1.ca.comcast.net [67.180.166.128])
by figment.tedivm.com (Postfix) with ESMTPSA id C8D3145C38
for <testuser@tedivm.com>; Sun, 1 Dec 2013 22:42:21 -0800 (PST)
From: Robert Hafner <tedivm@tedivm.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_4445E242-2F49-464A-A7BF-A9053295B0AA"
Subject: New Message Two
Message-Id: <AFB34990-0E40-4BD1-B936-03BFE450DD1C@tedivm.com>
Date: Sun, 1 Dec 2013 22:41:51 -0800
To: "testuser@tedivm.com" <testuser@tedivm.com>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
X-Mailer: Apple Mail (2.1510)
--Apple-Mail=_4445E242-2F49-464A-A7BF-A9053295B0AA
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=us-ascii
Nullam fringilla turpis ac tortor venenatis, sit amet rutrum odio =
faucibus. Aenean vel mollis diam, id tincidunt libero. Aenean imperdiet =
vestibulum blandit. Curabitur nec metus magna. Phasellus imperdiet, orci =
ut egestas fermentum, diam lacus vehicula felis, eget feugiat velit =
tortor quis tellus. Aliquam at massa ut purus ultrices molestie et a =
ligula. Maecenas tempus at tellus quis malesuada.=
--Apple-Mail=_4445E242-2F49-464A-A7BF-A9053295B0AA
Content-Transfer-Encoding: 7bit
Content-Type: text/html;
charset=us-ascii
<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><p style="margin: 0px 0px 14px; text-align: justify; font-size: 11px; font-family: Arial; ">Nullam fringilla turpis ac tortor venenatis, sit amet rutrum odio faucibus. Aenean vel mollis diam, id tincidunt libero. Aenean imperdiet vestibulum blandit. Curabitur nec metus magna. Phasellus imperdiet, orci ut egestas fermentum, diam lacus vehicula felis, eget feugiat velit tortor quis tellus. Aliquam at massa ut purus ultrices molestie et a ligula. Maecenas tempus at tellus quis malesuada.</p></body></html>
--Apple-Mail=_4445E242-2F49-464A-A7BF-A9053295B0AA--

View file

@ -1,31 +0,0 @@
Return-Path: <testuser@tedivm.com>
Delivered-To: testuser@tedivm.com
Received: from localhost (localhost [127.0.0.1])
by figment.tedivm.com (Postfix) with ESMTP id A651345C3D
for <testuser@tedivm.com>; Sun, 1 Dec 2013 22:42:52 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tedivm.com; h=
x-mailer:mime-version:to:date:date:message-id:subject:subject
:content-transfer-encoding:content-type:content-type:from:from;
s=dkim; t=1385966572; x=1386830572; bh=frcCV1k9oG9oKj3dpUqdJg1P
xRT2RSN/XKdLCPjaYaY=; b=b2rklJr42jO2VuVVrMatwCwgNzDQGhr+ubRruPYq
//sSfYBAeBqCsDC1luyRVVeqU+jrs6rMa2CsUpJR9ZjlVvnD8riovWLOeLzxHzpj
ZQtUMnjNuZF5DGhZDm1iwnxEsOJX2uAjKa3fXCu4DM9nj4DN61sh6faxwHQ2QcAx
Nl8=
X-Virus-Scanned: Debian amavisd-new at debian
Received: from figment.tedivm.com ([127.0.0.1])
by localhost (figment.tedivm.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id IzPB9tw6pJe4 for <testuser@tedivm.com>;
Sun, 1 Dec 2013 22:42:52 -0800 (PST)
Received: from [10.0.42.10] (c-67-180-166-128.hsd1.ca.comcast.net [67.180.166.128])
by figment.tedivm.com (Postfix) with ESMTPSA id 529BD45C38
for <testuser@tedivm.com>; Sun, 1 Dec 2013 22:42:52 -0800 (PST)
From: Test User <testuser@tedivm.com>
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
Subject: New Message Three
Message-Id: <01FD874D-EC6C-467E-8077-149CA153F5FB@tedivm.com>
Date: Sun, 1 Dec 2013 22:42:04 -0800
To: "testuser@tedivm.com" <testuser@tedivm.com>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
X-Mailer: Apple Mail (2.1510)

View file

@ -1,32 +0,0 @@
Return-Path: <testuser@tedivm.com>
Delivered-To: testuser@tedivm.com
Received: from localhost (localhost [127.0.0.1])
by figment.tedivm.com (Postfix) with ESMTP id 0FFDA45C3D
for <testuser@tedivm.com>; Sun, 1 Dec 2013 22:43:06 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tedivm.com; h=
x-mailer:mime-version:to:date:date:message-id:subject:subject
:content-transfer-encoding:content-type:content-type:from:from;
s=dkim; t=1385966585; x=1386830585; bh=VFOouhm98XqZan+V+AwhMmrW
uQAkdYo48jmF9iwlnD4=; b=QVdzpC3TkxC/TBZDrXdaRAUeqaDBaRW0/lfGpaAh
dwpKhIUpzxhJuaJlmh3bsEz26zyXHG1Lang/+Rfb94wnvR+cJzlkEpPUeZ25bu/e
RF6ZFqsOZZfSlP90vRfVQ4hE+gvvSGaYu4hVmed/lKlECA5DWtSTJd835wNrP8G0
HVg=
X-Virus-Scanned: Debian amavisd-new at debian
Received: from figment.tedivm.com ([127.0.0.1])
by localhost (figment.tedivm.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id h4jcbMNm3DME for <testuser@tedivm.com>;
Sun, 1 Dec 2013 22:43:05 -0800 (PST)
Received: from [10.0.42.10] (c-67-180-166-128.hsd1.ca.comcast.net [67.180.166.128])
by figment.tedivm.com (Postfix) with ESMTPSA id C605745C38
for <testuser@tedivm.com>; Sun, 1 Dec 2013 22:43:04 -0800 (PST)
From: Test User <testuser@tedivm.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Subject: Selfie
Message-Id: <2A262E44-2C95-477A-86DE-88FE1642572C@tedivm.com>
Date: Sun, 1 Dec 2013 22:43:04 -0800
To: "testuser@tedivm.com" <testuser@tedivm.com>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
X-Mailer: Apple Mail (2.1510)
This is from me, to me :-)

View file

@ -1,4 +0,0 @@
0 $NotJunk
1 NotJunk
2 $Forwarded
3 Forwarded

View file

@ -1,13 +0,0 @@
3 V1386550436 N1 G5b5a130da414a552e83c0000274587c9
1 :1386550568.M349626P15592.tedivm,S=2587,W=2640
2 :1386550584.M740008P15592.tedivm,S=2587,W=2640
3 :1386550593.M408992P15592.tedivm,S=1433,W=1465
4 :1386550597.M185351P15592.tedivm,S=7280,W=7409
5 :1386550600.M68630P15592.tedivm,S=3834,W=3904
6 :1386550606.M577035P15592.tedivm,S=407606,W=412921
7 :1386550612.M161925P15592.tedivm,S=487323,W=493709
8 :1386550614.M844920P15592.tedivm,S=3104,W=3156
9 :1386550618.M568476P15592.tedivm,S=1576,W=1608
10 :1386550622.M521281P15592.tedivm,S=2968,W=3017
11 :1386550628.M382524P15592.tedivm,S=1528,W=1559
12 :1386550631.M395138P15592.tedivm,S=1562,W=1594

View file

@ -1 +0,0 @@
52a514a7

View file

@ -1,3 +0,0 @@
Flagged Email
Test Folder
Sent

View file

@ -1,12 +0,0 @@
#!/bin/sh
if which postfix > /dev/null; then
echo 'Postfix is already installed'
else
echo 'Installing Postfix'
sudo debconf-set-selections <<< "postfix postfix/mailname string tedivm.com"
sudo debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Local only'"
sudo apt-get -qq update
sudo apt-get -qq -y install postfix mailutils
sudo postconf -e 'home_mailbox = Maildir/'
fi

View file

@ -1,36 +0,0 @@
#!/bin/sh
echo 'Provisioning Environment with Dovecot and Test Messages'
# Install and Configure Dovecot
if which dovecot > /dev/null; then
echo 'Dovecot is already installed'
else
echo 'Installing Dovecot'
sudo apt-get -qq -y install dovecot-imapd dovecot-pop3d
sudo touch /etc/dovecot/local.conf
sudo echo 'mail_location = maildir:/home/%u/Maildir' >> /etc/dovecot/local.conf
sudo echo 'disable_plaintext_auth = no' >> /etc/dovecot/local.conf
sudo echo 'mail_max_userip_connections = 10000' >> /etc/dovecot/local.conf
sudo restart dovecot
fi
# Create "testuser"
if getent passwd testuser > /dev/null; then
echo 'testuser already exists'
else
echo 'Creating User "testuser"'
sudo useradd testuser -m -s /bin/bash
echo "testuser:applesauce"|sudo chpasswd
fi
# Setup Email
/bin/bash /resources/Scripts/ResetMail.sh
echo 'Environment has been provisioned'

View file

@ -1,11 +0,0 @@
#!/bin/sh
echo 'Refreshing the test mailbox- this could take a minute.'
sudo stop dovecot
[ -d "/home/testuser/Maildir" ] && sudo rm -R /home/testuser/Maildir
sudo cp -Rp /resources/Maildir /home/testuser/
sudo chown -R testuser:testuser /home/testuser/Maildir
sudo start dovecot
echo 'Test mailbox restored'.

View file

@ -1,39 +0,0 @@
#!/bin/sh
stop dovecot
STARTPATH=`pwd`
SSL_CERT=/etc/ssl/certs/dovecot.pem
SSL_KEY=/etc/ssl/private/dovecot.pem
echo "Creating generic self-signed certificate: $SSL_CERT"
cd /etc/ssl/certs
PATH=$PATH:/usr/bin/ssl
#FQDN=`hostname -f`
#MAILNAME=`cat /etc/mailname 2> /dev/null || hostname -f`
FQDN=tedivm.com
MAILNAME=tedivm.com
(openssl req -new -x509 -days 365 -nodes -out $SSL_CERT -keyout $SSL_KEY > /dev/null 2>&1 <<+
.
.
.
Dovecot mail server
$FQDN
$FQDN
root@$MAILNAME
+
) || echo "Warning : Bad SSL config, can't generate certificate."
chown root $SSL_CERT || true
chgrp dovecot $SSL_CERT || true
chmod 0644 $SSL_CERT || true
chown root $SSL_KEY || true
chgrp dovecot $SSL_KEY || true
chmod 0600 $SSL_KEY || true
start dovecot

17
tests/runTests.sh Executable file
View file

@ -0,0 +1,17 @@
#/usr/bin/env/sh
set -e
if [ ! -n "$TRAVIS" ]; then
./vendor/tedivm/dovecottesting/SetupEnvironment.sh
sleep 5
fi
echo 'Running unit tests.'
./vendor/bin/phpunit --verbose --coverage-clover build/logs/clover.xml
echo ''
echo ''
echo ''
echo 'Testing for Coding Styling Compliance.'
echo 'All code should follow PSR standards.'
./vendor/bin/php-cs-fixer fix ./ --level="all" -vv --dry-run

View file

@ -1,3 +0,0 @@
#!/bin/sh
/bin/bash /resources/Scripts/Provision.sh

View file

@ -1,16 +0,0 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "precise64"
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
config.vm.provision "shell", path: "Initialize.sh"
config.vm.hostname = "tedivm.com"
config.vm.network :private_network, ip: "172.31.1.2"
config.vm.synced_folder "../resources", "/resources"
end