diff --git a/README.rst b/README.rst index 4709a07..80a7ddf 100644 --- a/README.rst +++ b/README.rst @@ -20,7 +20,7 @@ High level lib for work with email by IMAP: .. image:: https://img.shields.io/pypi/dm/imap_tools.svg?style=social =============== ================================================================================================ -Python version 3.5+ +Python version 3.8+ License Apache-2.0 PyPI https://pypi.python.org/pypi/imap_tools/ RFC `IMAP4.1 `_, diff --git a/docs/release_notes.rst b/docs/release_notes.rst index 1ee7b22..9aa6e37 100644 --- a/docs/release_notes.rst +++ b/docs/release_notes.rst @@ -1,3 +1,10 @@ +1.9.0 +===== +* Added: __str__ to MailAttachment +* Fixed: MailMessage.text parser - text with inline attachments case +* Fixed: MailMessage.html parser - html with inline attachments case +* Dropped: support py3.3,py3.4,py3.5,py3.6,py3.7 + 1.8.0 ===== * Added: BaseMailBox.numbers_to_uids - Get message uids by message numbers diff --git a/imap_tools/__init__.py b/imap_tools/__init__.py index ce7f6ef..c5f7482 100644 --- a/imap_tools/__init__.py +++ b/imap_tools/__init__.py @@ -11,4 +11,4 @@ from .utils import EmailAddress from .errors import * -__version__ = '1.8.0' +__version__ = '1.9.0' diff --git a/imap_tools/consts.py b/imap_tools/consts.py index c273263..703f409 100644 --- a/imap_tools/consts.py +++ b/imap_tools/consts.py @@ -1,4 +1,5 @@ import re +import sys SHORT_MONTH_NAMES = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec') @@ -6,6 +7,8 @@ CODECS_OFFICIAL_REPLACEMENT_CHAR = '�' +PYTHON_VERSION_MINOR = int(sys.version_info.minor) + class MailMessageFlags: """ diff --git a/imap_tools/mailbox.py b/imap_tools/mailbox.py index afc32ec..8aa2ef1 100644 --- a/imap_tools/mailbox.py +++ b/imap_tools/mailbox.py @@ -1,5 +1,4 @@ import re -import sys import imaplib import datetime from collections import UserString @@ -8,7 +7,7 @@ from .message import MailMessage from .folder import MailBoxFolderManager from .idle import IdleManager -from .consts import UID_PATTERN +from .consts import UID_PATTERN, PYTHON_VERSION_MINOR from .utils import clean_uids, check_command_status, chunks, encode_folder, clean_flags, check_timeout_arg_support, \ chunks_crop from .errors import MailboxStarttlsError, MailboxLoginError, MailboxLogoutError, MailboxNumbersError, \ @@ -21,8 +20,6 @@ Criteria = Union[AnyStr, UserString] -PYTHON_VERSION_MINOR = sys.version_info.minor - class BaseMailBox: """Working with the email box""" diff --git a/imap_tools/message.py b/imap_tools/message.py index e4dc33a..d7a3129 100644 --- a/imap_tools/message.py +++ b/imap_tools/message.py @@ -178,24 +178,26 @@ def date(self) -> datetime.datetime: @lru_cache() def text(self) -> str: """Plain text of the mail message""" + results = [] for part in self.obj.walk(): if part.get_content_maintype() == 'multipart' or part.get_filename(): continue if part.get_content_type() in ('text/plain', 'text/'): - return decode_value(part.get_payload(decode=True), part.get_content_charset()) - return '' + results.append(decode_value(part.get_payload(decode=True), part.get_content_charset())) + return ''.join(results) @property @lru_cache() def html(self) -> str: """HTML text of the mail message""" + results = [] for part in self.obj.walk(): if part.get_content_maintype() == 'multipart' or part.get_filename(): continue if part.get_content_type() == 'text/html': html = decode_value(part.get_payload(decode=True), part.get_content_charset()) - return replace_html_ct_charset(html, 'utf-8') - return '' + results.append(replace_html_ct_charset(html, 'utf-8')) + return ''.join(results) @property @lru_cache() @@ -233,6 +235,9 @@ class MailAttachment: def __init__(self, part): self.part = part + def __str__(self): + return '<{} | {} | {} | {}>'.format(self.filename, self.content_type, self.content_disposition, self.content_id) + @property @lru_cache() def filename(self) -> str: diff --git a/imap_tools/query.py b/imap_tools/query.py index 763d205..28d6267 100644 --- a/imap_tools/query.py +++ b/imap_tools/query.py @@ -86,7 +86,7 @@ def __init__( all: Optional[bool] = None, # noqa uid: Optional[Union[str, Iterable[str], UidRange]] = None, header: Optional[Union[Header, List[Header]]] = None, - gmail_label: Optional[Union[str, List[str]]] = None): # todo newline after drop 3.5 + gmail_label: Optional[Union[str, List[str]]] = None): self.converted_strings = converted_strings for val in converted_strings: if not any(isinstance(val, t) for t in (str, UserString)): diff --git a/imap_tools/utils.py b/imap_tools/utils.py index 0a78097..a62a8a9 100644 --- a/imap_tools/utils.py +++ b/imap_tools/utils.py @@ -205,7 +205,13 @@ def replace_html_ct_charset(html: str, new_charset: str) -> str: meta_ct_match = re.search(r'<\s*meta .*?content-type.*?>', html, re.IGNORECASE | re.DOTALL) if meta_ct_match: meta = meta_ct_match.group(0) - meta_new = re.sub(r'charset\s*=\s*[a-zA-Z0-9_:.+-]+', 'charset={}'.format(new_charset), meta, 1, re.IGNORECASE) + meta_new = re.sub( + pattern=r'charset\s*=\s*[a-zA-Z0-9_:.+-]+', + repl='charset={}'.format(new_charset), + string=meta, + count=1, + flags=re.IGNORECASE + ) html = html.replace(meta, meta_new) return html diff --git a/tests/messages_data/address_quoted_newlines.py b/tests/messages_data/address_quoted_newlines.py index 81744c1..ff13e74 100644 --- a/tests/messages_data/address_quoted_newlines.py +++ b/tests/messages_data/address_quoted_newlines.py @@ -8,7 +8,7 @@ cc=('third.name@domain.com', 'quoted-mailing-list-one@domain.com', 'quoted-mailing-list-two@domain.com'), bcc=('my.name@domain.com', 'list1-one-name@domain.com', 'list2-second-name@domain.com'), reply_to=(), - date=datetime.datetime(2020, 11, 1, 14, 49, 7, tzinfo=datetime.timezone(datetime.timedelta(-1, 57600))), + date=datetime.datetime(2020, 11, 1, 14, 49, 7, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))), date_str='Mon, 01 Nov 2020 14:49:07 -0800 (PST)', text='Daily Data: D09.ZPH (Averaged data)\nEmail generated: 10/11/2020 00:04:03.765\nEmail sent: 10/11/2020 00:49:03.125', html='', diff --git a/tests/messages_data/att_name_in_content_type.py b/tests/messages_data/att_name_in_content_type.py index 07b030d..eec4b9c 100644 --- a/tests/messages_data/att_name_in_content_type.py +++ b/tests/messages_data/att_name_in_content_type.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2020, 11, 9, 14, 49, 7, tzinfo=datetime.timezone(datetime.timedelta(-1, 57600))), + date=datetime.datetime(2020, 11, 9, 14, 49, 7, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))), date_str='Mon, 09 Nov 2020 14:49:07 -0800 (PST)', text='Daily Data: D09.ZPH (Averaged data)\nEmail generated: 10/11/2020 00:04:03.765\nEmail sent: 10/11/2020 00:49:03.125', html='', diff --git a/tests/messages_data/attachment_2_base64.py b/tests/messages_data/attachment_2_base64.py index 2cfabd8..5dcb19a 100644 --- a/tests/messages_data/attachment_2_base64.py +++ b/tests/messages_data/attachment_2_base64.py @@ -8,9 +8,9 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2019, 5, 1, 12, 20, 29, tzinfo=datetime.timezone(datetime.timedelta(0, 18000))), + date=datetime.datetime(2019, 5, 1, 12, 20, 29, tzinfo=datetime.timezone(datetime.timedelta(seconds=18000))), date_str='Wed, 01 May 2019 12:20:29 +0500', - text='UmVjZWl2ZWQ6IGZyb20gbXhmcm9udDJnLm1haWwueWFuZGV4Lm5ldCAoWzEyNy4wLjAuMV0pDQoJ\r\nYnkgbXhmcm9udDJnLm1haWwueWFuZGV4Lm5ldCB3aXRoIExNVFAgaWQgU09ObW5QYjENCglmb3Ig\r\nPEthdWtpblZLQHlhbmRleC5ydT47IFN1biwgMjggQXByIDIwMTkgMTQ6MzI6MzcgKzAzMDANClJl\r\nY2VpdmVkOiBmcm9tIG91dC0zLnNtdHAuZ2l0aHViLmNvbSAob3V0LTMuc210cC5naXRodWIuY29t\r\nIFsxOTIuMzAuMjUyLjE5NF0pDQoJYnkgbXhmcm9udDJnLm1haWwueWFuZGV4Lm5ldCAobndzbXRw\r\nL1lhbmRleCkgd2l0aCBFU01UUFMgaWQgSXhHMDdMUnRqYi1XYXJtNGVYVzsNCglTdW4sIDI4IEFw\r\nciAyMDE5IDE0OjMyOjM2ICswMzAwDQoJKHVzaW5nIFRMU3YxLjIgd2l0aCBjaXBoZXIgRUNESEUt\r\nUlNBLUFFUzEyOC1HQ00tU0hBMjU2ICgxMjgvMTI4IGJpdHMpKQ0KCShDbGllbnQgY2VydGlmaWNh\r\ndGUgbm90IHByZXNlbnQpDQpSZXR1cm4tUGF0aDogbm9yZXBseUBnaXRodWIuY29tDQpYLVlhbmRl\r\neC1Gcm9udDogbXhmcm9udDJnLm1haWwueWFuZGV4Lm5ldA0KWC1ZYW5kZXgtVGltZU1hcms6IDE1\r\nNTY0NTExNTYuMTUzDQpBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBteGZyb250MmcubWFpbC55YW5k\r\nZXgubmV0OyBzcGY9cGFzcyAobXhmcm9udDJnLm1haWwueWFuZGV4Lm5ldDogZG9tYWluIG9mIGdp\r\ndGh1Yi5jb20gZGVzaWduYXRlcyAxOTIuMzAuMjUyLjE5NCBhcyBwZXJtaXR0ZWQgc2VuZGVyLCBy\r\ndWxlPVtpcDQ6MTkyLjMwLjI1Mi4wLzIyXSkgc210cC5tYWlsPW5vcmVwbHlAZ2l0aHViLmNvbTsg\r\nZGtpbT1wYXNzIGhlYWRlci5pPUBnaXRodWIuY29tDQpYLVlhbmRleC1TcGFtOiAyDQpYLVlhbmRl\r\neC1Gd2Q6IE9UTTRPVE00TWpjMk9UVTNOVFUzTlRZeU15dzVOek01TVRFMk1UYzVOekkwTVRBeE9U\r\nTXcNCkRhdGU6IFN1biwgMjggQXByIDIwMTkgMDQ6MzI6MzUgLTA3MDANCkRLSU0tU2lnbmF0dXJl\r\nOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7IGQ9Z2l0aHViLmNvbTsNCglz\r\nPXBmMjAxNDsgdD0xNTU2NDUxMTU1Ow0KCWJoPUZzUlBVS24zYmV1cHQyUDNRQjM2VXpmVkVTVkNs\r\nTDA3VFZJTm5UWDBuQmc9Ow0KCWg9RGF0ZTpGcm9tOlJlcGx5LVRvOlRvOkNjOlN1YmplY3Q6TGlz\r\ndC1JRDpMaXN0LUFyY2hpdmU6TGlzdC1Qb3N0Og0KCSBMaXN0LVVuc3Vic2NyaWJlOkZyb207DQoJ\r\nYj1iemZRcnYyNW8wSXBaS2lJcmNHZ0x6RHZNMlZMZllmaWN6anFTUFBUMFJkM3UzRDY2YXd3bHhh\r\nVkVIV3FwRTZkYw0KCSA4RVRSMCtBM2tOMVYzeGxvOUV0bGduMzExMDVnM09RRkcwakJNVGR5bWRh\r\nWEEvaHU4SHJqcjRXZjFrckFHcXVIcHENCgkgZ0pvRjRDaHVNdVVoTDU1NGhndUFtc1daMUJtemNq\r\nSDZ2VlNhMFpFVT0NCkZyb206IEJ1ZGR5IFJpa2FyZCA8bm90aWZpY2F0aW9uc0BnaXRodWIuY29t\r\nPg0KUmVwbHktVG86IGlrdmsvaW1hcF90b29scyA8cmVwbHkrQUFWNk4yWjVaTVZZUFZWTUpCWEVa\r\nRTUyMkxBNUhFVkJOSEhCVUhBUEpVQHJlcGx5LmdpdGh1Yi5jb20+DQpUbzogaWt2ay9pbWFwX3Rv\r\nb2xzIDxpbWFwX3Rvb2xzQG5vcmVwbHkuZ2l0aHViLmNvbT4NCkNjOiBTdWJzY3JpYmVkIDxzdWJz\r\nY3JpYmVkQG5vcmVwbHkuZ2l0aHViLmNvbT4NCk1lc3NhZ2UtSUQ6IDxpa3ZrL2ltYXBfdG9vbHMv\r\naXNzdWVzLzRAZ2l0aHViLmNvbT4NClN1YmplY3Q6IFtpa3ZrL2ltYXBfdG9vbHNdIGRvZXMgbm90\r\nIGV4dHJhY3QgYXR0YWNoZWQgRU1MIGZpbGVzICgjNCkNCk1pbWUtVmVyc2lvbjogMS4wDQpDb250\r\nZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsNCiBib3VuZGFyeT0iLS09PV9taW1lcGFy\r\ndF81Y2M1OGY1Mzc1NDJfNDllYjNmYmE0MGNjZDk2MDMwODRiZSI7DQogY2hhcnNldD1VVEYtOA0K\r\nQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdA0KUHJlY2VkZW5jZTogbGlzdA0KWC1HaXRI\r\ndWItU2VuZGVyOiBUcHlvS25pZw0KWC1HaXRIdWItUmVjaXBpZW50OiBpa3ZrDQpYLUdpdEh1Yi1S\r\nZWFzb246IHN1YnNjcmliZWQNCkxpc3QtSUQ6IGlrdmsvaW1hcF90b29scyA8aW1hcF90b29scy5p\r\na3ZrLmdpdGh1Yi5jb20+DQpMaXN0LUFyY2hpdmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9pa3ZrL2lt\r\nYXBfdG9vbHMNCkxpc3QtUG9zdDogPG1haWx0bzpyZXBseStBQVY2TjJaNVpNVllQVlZNSkJYRVpF\r\nNTIyTEE1SEVWQk5ISEJVSEFQSlVAcmVwbHkuZ2l0aHViLmNvbT4NCkxpc3QtVW5zdWJzY3JpYmU6\r\nIDxtYWlsdG86dW5zdWIrQUFWNk4yWjVaTVZZUFZWTUpCWEVaRTUyMkxBNUhFVkJOSEhCVUhBUEpV\r\nQHJlcGx5LmdpdGh1Yi5jb20+LA0KIDxodHRwczovL2dpdGh1Yi5jb20vbm90aWZpY2F0aW9ucy91\r\nbnN1YnNjcmliZS9BQVY2TjI0UkpZR0dRQkk1UEtNR1RLM1BTV0ROSEFOQ05GU000SEk2SlFVQT4N\r\nClgtQXV0by1SZXNwb25zZS1TdXBwcmVzczogQWxsDQpYLUdpdEh1Yi1SZWNpcGllbnQtQWRkcmVz\r\nczogS2F1a2luVktAeWFuZGV4LnJ1DQpYLVlhbmRleC1Gb3J3YXJkOiBlZmI0MmQ3NmVkZjdkNTU1\r\nNjExMmYzZGFjMDk5NDA2ZQ0KDQoNCi0tLS09PV9taW1lcGFydF81Y2M1OGY1Mzc1NDJfNDllYjNm\r\nYmE0MGNjZDk2MDMwODRiZQ0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOw0KIGNoYXJzZXQ9VVRG\r\nLTgNCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQNCg0KQXMgLkVNTCBmaWxlcyBoYXZl\r\nIHRoZXNlIGhlYWRlcnM6DQoNCmAtLTAwMDAwMDAwMDAwMDk0ODA5MTA1ODc4ZGFhYzANCkNvbnRl\r\nbnQtVHlwZTogbWVzc2FnZS9yZmM4MjI7IG5hbWU9IlRvdGFsbHkgbGVnaXQgZW1haWwgKDIpLmVt\r\nbCINCkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSJUb3RhbGx5IGxl\r\nZ2l0IGVtYWlsICgyKS5lbWwiDQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBiYXNlNjQNCkNv\r\nbnRlbnQtSUQ6IDxmX2p2MGFwcHJiMD4NClgtQXR0YWNobWVudC1JZDogZl9qdjBhcHByYjANCg0K\r\nTUlNRS1WZXJzaW9uOiAxLjANCkRhdGU6IEZyaSwgMjUgSmFuIDIwMTkgMTA6Mzc6NDcgLTA4MDAN\r\nCk1lc3NhZ2UtSUQ6IDxDQUtLWHozTzVxRm9UaTY4THM0UUNxWnpRSzhtNm1BU3ltVFo5aWI2eXNu\r\nQlRPd3dKT2dAbWFpbC5nbWFpbC5jb20+DQpTdWJqZWN0OiBUb3RhbGx5IGxlZ2l0IGVtYWlsDQpG\r\ncm9tOiBSRURBQ1RFRCA8UkVEQUNURURARE9NQUlOLkNPTT4NClRvOiBSRURBQ1RFRCA8UkVEQUNU\r\nRURARE9NQUlOLkNPTT4NCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3Vu\r\nZGFyeT0iMDAwMDAwMDAwMDAwYTMwYmI2MDU4MDRjOWZmMiINCg0KLS0wMDAwMDAwMDAwMDBhMzBi\r\nYjYwNTgwNGM5ZmYyDQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04Ig0K\r\nQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZWANCg0KaW1hcC10b29s\r\ncyBkb2VzIG5vdCByZXR1cm4gdGhpcyBhcyBhbiBhdHRhY2htZW50IGFuZCBjb21wbGV0ZWx5IGRp\r\nc3JlZ2FyZHMgdGhlIGF0dGFjaG1lbnQgaXRzZWxmIGFsb25nIHdpdGggdGhlIGZpbGVuYW1lLiAN\r\nCg0KLS0gDQpZb3UgYXJlIHJlY2VpdmluZyB0aGlzIGJlY2F1c2UgeW91IGFyZSBzdWJzY3JpYmVk\r\nIHRvIHRoaXMgdGhyZWFkLg0KUmVwbHkgdG8gdGhpcyBlbWFpbCBkaXJlY3RseSBvciB2aWV3IGl0\r\nIG9uIEdpdEh1YjoNCmh0dHBzOi8vZ2l0aHViLmNvbS9pa3ZrL2ltYXBfdG9vbHMvaXNzdWVzLzQN\r\nCi0tLS09PV9taW1lcGFydF81Y2M1OGY1Mzc1NDJfNDllYjNmYmE0MGNjZDk2MDMwODRiZQ0KQ29u\r\ndGVudC1UeXBlOiB0ZXh0L2h0bWw7DQogY2hhcnNldD1VVEYtOA0KQ29udGVudC1UcmFuc2Zlci1F\r\nbmNvZGluZzogN2JpdA0KDQo8cD5BcyAuRU1MIGZpbGVzIGhhdmUgdGhlc2UgaGVhZGVyczo8L3A+\r\nDQo8cD5gLS0wMDAwMDAwMDAwMDA5NDgwOTEwNTg3OGRhYWMwPGJyPg0KQ29udGVudC1UeXBlOiBt\r\nZXNzYWdlL3JmYzgyMjsgbmFtZT0iVG90YWxseSBsZWdpdCBlbWFpbCAoMikuZW1sIjxicj4NCkNv\r\nbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSJUb3RhbGx5IGxlZ2l0IGVt\r\nYWlsICgyKS5lbWwiPGJyPg0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0PGJyPg0K\r\nQ29udGVudC1JRDogJmx0O2ZfanYwYXBwcmIwJmd0Ozxicj4NClgtQXR0YWNobWVudC1JZDogZl9q\r\ndjBhcHByYjA8L3A+DQo8cD5NSU1FLVZlcnNpb246IDEuMDxicj4NCkRhdGU6IEZyaSwgMjUgSmFu\r\nIDIwMTkgMTA6Mzc6NDcgLTA4MDA8YnI+DQpNZXNzYWdlLUlEOiA8YSBocmVmPSJtYWlsdG86Q0FL\r\nS1h6M081cUZvVGk2OExzNFFDcVp6UUs4bTZtQVN5bVRaOWliNnlzbkJUT3d3Sk9nQG1haWwuZ21h\r\naWwuY29tIj5DQUtLWHozTzVxRm9UaTY4THM0UUNxWnpRSzhtNm1BU3ltVFo5aWI2eXNuQlRPd3dK\r\nT2dAbWFpbC5nbWFpbC5jb208L2E+PGJyPg0KU3ViamVjdDogVG90YWxseSBsZWdpdCBlbWFpbDxi\r\ncj4NCkZyb206IFJFREFDVEVEIDxhIGhyZWY9Im1haWx0bzpSRURBQ1RFREBET01BSU4uQ09NIj5S\r\nRURBQ1RFREBET01BSU4uQ09NPC9hPjxicj4NClRvOiBSRURBQ1RFRCA8YSBocmVmPSJtYWlsdG86\r\nUkVEQUNURURARE9NQUlOLkNPTSI+UkVEQUNURURARE9NQUlOLkNPTTwvYT48YnI+DQpDb250ZW50\r\nLVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMDAwMDAwMDAwMGEzMGJi\r\nNjA1ODA0YzlmZjIiPC9wPg0KPHA+LS0wMDAwMDAwMDAwMDBhMzBiYjYwNTgwNGM5ZmYyPGJyPg0K\r\nQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCI8YnI+DQpDb250ZW50LVRy\r\nYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlYDwvcD4NCjxwPmltYXAtdG9vbHMgZG9l\r\ncyBub3QgcmV0dXJuIHRoaXMgYXMgYW4gYXR0YWNobWVudCBhbmQgY29tcGxldGVseSBkaXNyZWdh\r\ncmRzIHRoZSBhdHRhY2htZW50IGl0c2VsZiBhbG9uZyB3aXRoIHRoZSBmaWxlbmFtZS48L3A+DQoN\r\nCjxwIHN0eWxlPSJmb250LXNpemU6c21hbGw7LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0Om5vbmU7\r\nY29sb3I6IzY2NjsiPiZtZGFzaDs8YnIgLz5Zb3UgYXJlIHJlY2VpdmluZyB0aGlzIGJlY2F1c2Ug\r\neW91IGFyZSBzdWJzY3JpYmVkIHRvIHRoaXMgdGhyZWFkLjxiciAvPlJlcGx5IHRvIHRoaXMgZW1h\r\naWwgZGlyZWN0bHksIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9pa3ZrL2ltYXBfdG9vbHMv\r\naXNzdWVzLzQiPnZpZXcgaXQgb24gR2l0SHViPC9hPiwgb3IgPGEgaHJlZj0iaHR0cHM6Ly9naXRo\r\ndWIuY29tL25vdGlmaWNhdGlvbnMvdW5zdWJzY3JpYmUtYXV0aC9BQVY2TjJaRDJQNU1XMzMzMjJH\r\nREFGVFBTV0ROSEFOQ05GU000SEk2SlFVQSI+bXV0ZSB0aGUgdGhyZWFkPC9hPi48aW1nIHNyYz0i\r\naHR0cHM6Ly9naXRodWIuY29tL25vdGlmaWNhdGlvbnMvYmVhY29uL0FBVjZOMjdKRUI0U0JDRTNW\r\nSUxQTzZMUFNXRE5IQU5DTkZTTTRISTZKUVVBLmdpZiIgaGVpZ2h0PSIxIiB3aWR0aD0iMSIgYWx0\r\nPSIiIC8+PC9wPg0KPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qc29uIiBkYXRhLXNjb3BlPSJp\r\nbmJveG1hcmt1cCI+eyJhcGlfdmVyc2lvbiI6IjEuMCIsInB1Ymxpc2hlciI6eyJhcGlfa2V5Ijoi\r\nMDVkZGU1MGYxZDFhMzg0ZGQ3ODc2N2M1NTQ5M2U0YmIiLCJuYW1lIjoiR2l0SHViIn0sImVudGl0\r\neSI6eyJleHRlcm5hbF9rZXkiOiJnaXRodWIvaWt2ay9pbWFwX3Rvb2xzIiwidGl0bGUiOiJpa3Zr\r\nL2ltYXBfdG9vbHMiLCJzdWJ0aXRsZSI6IkdpdEh1YiByZXBvc2l0b3J5IiwibWFpbl9pbWFnZV91\r\ncmwiOiJodHRwczovL2dpdGh1Yi5naXRodWJhc3NldHMuY29tL2ltYWdlcy9lbWFpbC9tZXNzYWdl\r\nX2NhcmRzL2hlYWRlci5wbmciLCJhdmF0YXJfaW1hZ2VfdXJsIjoiaHR0cHM6Ly9naXRodWIuZ2l0\r\naHViYXNzZXRzLmNvbS9pbWFnZXMvZW1haWwvbWVzc2FnZV9jYXJkcy9hdmF0YXIucG5nIiwiYWN0\r\naW9uIjp7Im5hbWUiOiJPcGVuIGluIEdpdEh1YiIsInVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9p\r\na3ZrL2ltYXBfdG9vbHMifX0sInVwZGF0ZXMiOnsic25pcHBldHMiOlt7Imljb24iOiJERVNDUklQ\r\nVElPTiIsIm1lc3NhZ2UiOiJkb2VzIG5vdCBleHRyYWN0IGF0dGFjaGVkIEVNTCBmaWxlcyAoIzQp\r\nIn1dLCJhY3Rpb24iOnsibmFtZSI6IlZpZXcgSXNzdWUiLCJ1cmwiOiJodHRwczovL2dpdGh1Yi5j\r\nb20vaWt2ay9pbWFwX3Rvb2xzL2lzc3Vlcy80In19fTwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJh\r\ncHBsaWNhdGlvbi9sZCtqc29uIj5bDQp7DQoiQGNvbnRleHQiOiAiaHR0cDovL3NjaGVtYS5vcmci\r\nLA0KIkB0eXBlIjogIkVtYWlsTWVzc2FnZSIsDQoicG90ZW50aWFsQWN0aW9uIjogew0KIkB0eXBl\r\nIjogIlZpZXdBY3Rpb24iLA0KInRhcmdldCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWt2ay9pbWFw\r\nX3Rvb2xzL2lzc3Vlcy80IiwNCiJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2lrdmsvaW1hcF90\r\nb29scy9pc3N1ZXMvNCIsDQoibmFtZSI6ICJWaWV3IElzc3VlIg0KfSwNCiJkZXNjcmlwdGlvbiI6\r\nICJWaWV3IHRoaXMgSXNzdWUgb24gR2l0SHViIiwNCiJwdWJsaXNoZXIiOiB7DQoiQHR5cGUiOiAi\r\nT3JnYW5pemF0aW9uIiwNCiJuYW1lIjogIkdpdEh1YiIsDQoidXJsIjogImh0dHBzOi8vZ2l0aHVi\r\nLmNvbSINCn0NCn0NCl08L3NjcmlwdD4NCi0tLS09PV9taW1lcGFydF81Y2M1OGY1Mzc1NDJfNDll\r\nYjNmYmE0MGNjZDk2MDMwODRiZS0tDQo=', + text='UmVjZWl2ZWQ6IGZyb20gbXhmcm9udDJnLm1haWwueWFuZGV4Lm5ldCAoWzEyNy4wLjAuMV0pDQoJ\r\nYnkgbXhmcm9udDJnLm1haWwueWFuZGV4Lm5ldCB3aXRoIExNVFAgaWQgU09ObW5QYjENCglmb3Ig\r\nPEthdWtpblZLQHlhbmRleC5ydT47IFN1biwgMjggQXByIDIwMTkgMTQ6MzI6MzcgKzAzMDANClJl\r\nY2VpdmVkOiBmcm9tIG91dC0zLnNtdHAuZ2l0aHViLmNvbSAob3V0LTMuc210cC5naXRodWIuY29t\r\nIFsxOTIuMzAuMjUyLjE5NF0pDQoJYnkgbXhmcm9udDJnLm1haWwueWFuZGV4Lm5ldCAobndzbXRw\r\nL1lhbmRleCkgd2l0aCBFU01UUFMgaWQgSXhHMDdMUnRqYi1XYXJtNGVYVzsNCglTdW4sIDI4IEFw\r\nciAyMDE5IDE0OjMyOjM2ICswMzAwDQoJKHVzaW5nIFRMU3YxLjIgd2l0aCBjaXBoZXIgRUNESEUt\r\nUlNBLUFFUzEyOC1HQ00tU0hBMjU2ICgxMjgvMTI4IGJpdHMpKQ0KCShDbGllbnQgY2VydGlmaWNh\r\ndGUgbm90IHByZXNlbnQpDQpSZXR1cm4tUGF0aDogbm9yZXBseUBnaXRodWIuY29tDQpYLVlhbmRl\r\neC1Gcm9udDogbXhmcm9udDJnLm1haWwueWFuZGV4Lm5ldA0KWC1ZYW5kZXgtVGltZU1hcms6IDE1\r\nNTY0NTExNTYuMTUzDQpBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBteGZyb250MmcubWFpbC55YW5k\r\nZXgubmV0OyBzcGY9cGFzcyAobXhmcm9udDJnLm1haWwueWFuZGV4Lm5ldDogZG9tYWluIG9mIGdp\r\ndGh1Yi5jb20gZGVzaWduYXRlcyAxOTIuMzAuMjUyLjE5NCBhcyBwZXJtaXR0ZWQgc2VuZGVyLCBy\r\ndWxlPVtpcDQ6MTkyLjMwLjI1Mi4wLzIyXSkgc210cC5tYWlsPW5vcmVwbHlAZ2l0aHViLmNvbTsg\r\nZGtpbT1wYXNzIGhlYWRlci5pPUBnaXRodWIuY29tDQpYLVlhbmRleC1TcGFtOiAyDQpYLVlhbmRl\r\neC1Gd2Q6IE9UTTRPVE00TWpjMk9UVTNOVFUzTlRZeU15dzVOek01TVRFMk1UYzVOekkwTVRBeE9U\r\nTXcNCkRhdGU6IFN1biwgMjggQXByIDIwMTkgMDQ6MzI6MzUgLTA3MDANCkRLSU0tU2lnbmF0dXJl\r\nOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7IGQ9Z2l0aHViLmNvbTsNCglz\r\nPXBmMjAxNDsgdD0xNTU2NDUxMTU1Ow0KCWJoPUZzUlBVS24zYmV1cHQyUDNRQjM2VXpmVkVTVkNs\r\nTDA3VFZJTm5UWDBuQmc9Ow0KCWg9RGF0ZTpGcm9tOlJlcGx5LVRvOlRvOkNjOlN1YmplY3Q6TGlz\r\ndC1JRDpMaXN0LUFyY2hpdmU6TGlzdC1Qb3N0Og0KCSBMaXN0LVVuc3Vic2NyaWJlOkZyb207DQoJ\r\nYj1iemZRcnYyNW8wSXBaS2lJcmNHZ0x6RHZNMlZMZllmaWN6anFTUFBUMFJkM3UzRDY2YXd3bHhh\r\nVkVIV3FwRTZkYw0KCSA4RVRSMCtBM2tOMVYzeGxvOUV0bGduMzExMDVnM09RRkcwakJNVGR5bWRh\r\nWEEvaHU4SHJqcjRXZjFrckFHcXVIcHENCgkgZ0pvRjRDaHVNdVVoTDU1NGhndUFtc1daMUJtemNq\r\nSDZ2VlNhMFpFVT0NCkZyb206IEJ1ZGR5IFJpa2FyZCA8bm90aWZpY2F0aW9uc0BnaXRodWIuY29t\r\nPg0KUmVwbHktVG86IGlrdmsvaW1hcF90b29scyA8cmVwbHkrQUFWNk4yWjVaTVZZUFZWTUpCWEVa\r\nRTUyMkxBNUhFVkJOSEhCVUhBUEpVQHJlcGx5LmdpdGh1Yi5jb20+DQpUbzogaWt2ay9pbWFwX3Rv\r\nb2xzIDxpbWFwX3Rvb2xzQG5vcmVwbHkuZ2l0aHViLmNvbT4NCkNjOiBTdWJzY3JpYmVkIDxzdWJz\r\nY3JpYmVkQG5vcmVwbHkuZ2l0aHViLmNvbT4NCk1lc3NhZ2UtSUQ6IDxpa3ZrL2ltYXBfdG9vbHMv\r\naXNzdWVzLzRAZ2l0aHViLmNvbT4NClN1YmplY3Q6IFtpa3ZrL2ltYXBfdG9vbHNdIGRvZXMgbm90\r\nIGV4dHJhY3QgYXR0YWNoZWQgRU1MIGZpbGVzICgjNCkNCk1pbWUtVmVyc2lvbjogMS4wDQpDb250\r\nZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsNCiBib3VuZGFyeT0iLS09PV9taW1lcGFy\r\ndF81Y2M1OGY1Mzc1NDJfNDllYjNmYmE0MGNjZDk2MDMwODRiZSI7DQogY2hhcnNldD1VVEYtOA0K\r\nQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdA0KUHJlY2VkZW5jZTogbGlzdA0KWC1HaXRI\r\ndWItU2VuZGVyOiBUcHlvS25pZw0KWC1HaXRIdWItUmVjaXBpZW50OiBpa3ZrDQpYLUdpdEh1Yi1S\r\nZWFzb246IHN1YnNjcmliZWQNCkxpc3QtSUQ6IGlrdmsvaW1hcF90b29scyA8aW1hcF90b29scy5p\r\na3ZrLmdpdGh1Yi5jb20+DQpMaXN0LUFyY2hpdmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9pa3ZrL2lt\r\nYXBfdG9vbHMNCkxpc3QtUG9zdDogPG1haWx0bzpyZXBseStBQVY2TjJaNVpNVllQVlZNSkJYRVpF\r\nNTIyTEE1SEVWQk5ISEJVSEFQSlVAcmVwbHkuZ2l0aHViLmNvbT4NCkxpc3QtVW5zdWJzY3JpYmU6\r\nIDxtYWlsdG86dW5zdWIrQUFWNk4yWjVaTVZZUFZWTUpCWEVaRTUyMkxBNUhFVkJOSEhCVUhBUEpV\r\nQHJlcGx5LmdpdGh1Yi5jb20+LA0KIDxodHRwczovL2dpdGh1Yi5jb20vbm90aWZpY2F0aW9ucy91\r\nbnN1YnNjcmliZS9BQVY2TjI0UkpZR0dRQkk1UEtNR1RLM1BTV0ROSEFOQ05GU000SEk2SlFVQT4N\r\nClgtQXV0by1SZXNwb25zZS1TdXBwcmVzczogQWxsDQpYLUdpdEh1Yi1SZWNpcGllbnQtQWRkcmVz\r\nczogS2F1a2luVktAeWFuZGV4LnJ1DQpYLVlhbmRleC1Gb3J3YXJkOiBlZmI0MmQ3NmVkZjdkNTU1\r\nNjExMmYzZGFjMDk5NDA2ZQ0KDQoNCi0tLS09PV9taW1lcGFydF81Y2M1OGY1Mzc1NDJfNDllYjNm\r\nYmE0MGNjZDk2MDMwODRiZQ0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOw0KIGNoYXJzZXQ9VVRG\r\nLTgNCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQNCg0KQXMgLkVNTCBmaWxlcyBoYXZl\r\nIHRoZXNlIGhlYWRlcnM6DQoNCmAtLTAwMDAwMDAwMDAwMDk0ODA5MTA1ODc4ZGFhYzANCkNvbnRl\r\nbnQtVHlwZTogbWVzc2FnZS9yZmM4MjI7IG5hbWU9IlRvdGFsbHkgbGVnaXQgZW1haWwgKDIpLmVt\r\nbCINCkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSJUb3RhbGx5IGxl\r\nZ2l0IGVtYWlsICgyKS5lbWwiDQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBiYXNlNjQNCkNv\r\nbnRlbnQtSUQ6IDxmX2p2MGFwcHJiMD4NClgtQXR0YWNobWVudC1JZDogZl9qdjBhcHByYjANCg0K\r\nTUlNRS1WZXJzaW9uOiAxLjANCkRhdGU6IEZyaSwgMjUgSmFuIDIwMTkgMTA6Mzc6NDcgLTA4MDAN\r\nCk1lc3NhZ2UtSUQ6IDxDQUtLWHozTzVxRm9UaTY4THM0UUNxWnpRSzhtNm1BU3ltVFo5aWI2eXNu\r\nQlRPd3dKT2dAbWFpbC5nbWFpbC5jb20+DQpTdWJqZWN0OiBUb3RhbGx5IGxlZ2l0IGVtYWlsDQpG\r\ncm9tOiBSRURBQ1RFRCA8UkVEQUNURURARE9NQUlOLkNPTT4NClRvOiBSRURBQ1RFRCA8UkVEQUNU\r\nRURARE9NQUlOLkNPTT4NCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3Vu\r\nZGFyeT0iMDAwMDAwMDAwMDAwYTMwYmI2MDU4MDRjOWZmMiINCg0KLS0wMDAwMDAwMDAwMDBhMzBi\r\nYjYwNTgwNGM5ZmYyDQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04Ig0K\r\nQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZWANCg0KaW1hcC10b29s\r\ncyBkb2VzIG5vdCByZXR1cm4gdGhpcyBhcyBhbiBhdHRhY2htZW50IGFuZCBjb21wbGV0ZWx5IGRp\r\nc3JlZ2FyZHMgdGhlIGF0dGFjaG1lbnQgaXRzZWxmIGFsb25nIHdpdGggdGhlIGZpbGVuYW1lLiAN\r\nCg0KLS0gDQpZb3UgYXJlIHJlY2VpdmluZyB0aGlzIGJlY2F1c2UgeW91IGFyZSBzdWJzY3JpYmVk\r\nIHRvIHRoaXMgdGhyZWFkLg0KUmVwbHkgdG8gdGhpcyBlbWFpbCBkaXJlY3RseSBvciB2aWV3IGl0\r\nIG9uIEdpdEh1YjoNCmh0dHBzOi8vZ2l0aHViLmNvbS9pa3ZrL2ltYXBfdG9vbHMvaXNzdWVzLzQN\r\nCi0tLS09PV9taW1lcGFydF81Y2M1OGY1Mzc1NDJfNDllYjNmYmE0MGNjZDk2MDMwODRiZQ0KQ29u\r\ndGVudC1UeXBlOiB0ZXh0L2h0bWw7DQogY2hhcnNldD1VVEYtOA0KQ29udGVudC1UcmFuc2Zlci1F\r\nbmNvZGluZzogN2JpdA0KDQo8cD5BcyAuRU1MIGZpbGVzIGhhdmUgdGhlc2UgaGVhZGVyczo8L3A+\r\nDQo8cD5gLS0wMDAwMDAwMDAwMDA5NDgwOTEwNTg3OGRhYWMwPGJyPg0KQ29udGVudC1UeXBlOiBt\r\nZXNzYWdlL3JmYzgyMjsgbmFtZT0iVG90YWxseSBsZWdpdCBlbWFpbCAoMikuZW1sIjxicj4NCkNv\r\nbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSJUb3RhbGx5IGxlZ2l0IGVt\r\nYWlsICgyKS5lbWwiPGJyPg0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0PGJyPg0K\r\nQ29udGVudC1JRDogJmx0O2ZfanYwYXBwcmIwJmd0Ozxicj4NClgtQXR0YWNobWVudC1JZDogZl9q\r\ndjBhcHByYjA8L3A+DQo8cD5NSU1FLVZlcnNpb246IDEuMDxicj4NCkRhdGU6IEZyaSwgMjUgSmFu\r\nIDIwMTkgMTA6Mzc6NDcgLTA4MDA8YnI+DQpNZXNzYWdlLUlEOiA8YSBocmVmPSJtYWlsdG86Q0FL\r\nS1h6M081cUZvVGk2OExzNFFDcVp6UUs4bTZtQVN5bVRaOWliNnlzbkJUT3d3Sk9nQG1haWwuZ21h\r\naWwuY29tIj5DQUtLWHozTzVxRm9UaTY4THM0UUNxWnpRSzhtNm1BU3ltVFo5aWI2eXNuQlRPd3dK\r\nT2dAbWFpbC5nbWFpbC5jb208L2E+PGJyPg0KU3ViamVjdDogVG90YWxseSBsZWdpdCBlbWFpbDxi\r\ncj4NCkZyb206IFJFREFDVEVEIDxhIGhyZWY9Im1haWx0bzpSRURBQ1RFREBET01BSU4uQ09NIj5S\r\nRURBQ1RFREBET01BSU4uQ09NPC9hPjxicj4NClRvOiBSRURBQ1RFRCA8YSBocmVmPSJtYWlsdG86\r\nUkVEQUNURURARE9NQUlOLkNPTSI+UkVEQUNURURARE9NQUlOLkNPTTwvYT48YnI+DQpDb250ZW50\r\nLVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMDAwMDAwMDAwMGEzMGJi\r\nNjA1ODA0YzlmZjIiPC9wPg0KPHA+LS0wMDAwMDAwMDAwMDBhMzBiYjYwNTgwNGM5ZmYyPGJyPg0K\r\nQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCI8YnI+DQpDb250ZW50LVRy\r\nYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlYDwvcD4NCjxwPmltYXAtdG9vbHMgZG9l\r\ncyBub3QgcmV0dXJuIHRoaXMgYXMgYW4gYXR0YWNobWVudCBhbmQgY29tcGxldGVseSBkaXNyZWdh\r\ncmRzIHRoZSBhdHRhY2htZW50IGl0c2VsZiBhbG9uZyB3aXRoIHRoZSBmaWxlbmFtZS48L3A+DQoN\r\nCjxwIHN0eWxlPSJmb250LXNpemU6c21hbGw7LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0Om5vbmU7\r\nY29sb3I6IzY2NjsiPiZtZGFzaDs8YnIgLz5Zb3UgYXJlIHJlY2VpdmluZyB0aGlzIGJlY2F1c2Ug\r\neW91IGFyZSBzdWJzY3JpYmVkIHRvIHRoaXMgdGhyZWFkLjxiciAvPlJlcGx5IHRvIHRoaXMgZW1h\r\naWwgZGlyZWN0bHksIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9pa3ZrL2ltYXBfdG9vbHMv\r\naXNzdWVzLzQiPnZpZXcgaXQgb24gR2l0SHViPC9hPiwgb3IgPGEgaHJlZj0iaHR0cHM6Ly9naXRo\r\ndWIuY29tL25vdGlmaWNhdGlvbnMvdW5zdWJzY3JpYmUtYXV0aC9BQVY2TjJaRDJQNU1XMzMzMjJH\r\nREFGVFBTV0ROSEFOQ05GU000SEk2SlFVQSI+bXV0ZSB0aGUgdGhyZWFkPC9hPi48aW1nIHNyYz0i\r\naHR0cHM6Ly9naXRodWIuY29tL25vdGlmaWNhdGlvbnMvYmVhY29uL0FBVjZOMjdKRUI0U0JDRTNW\r\nSUxQTzZMUFNXRE5IQU5DTkZTTTRISTZKUVVBLmdpZiIgaGVpZ2h0PSIxIiB3aWR0aD0iMSIgYWx0\r\nPSIiIC8+PC9wPg0KPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qc29uIiBkYXRhLXNjb3BlPSJp\r\nbmJveG1hcmt1cCI+eyJhcGlfdmVyc2lvbiI6IjEuMCIsInB1Ymxpc2hlciI6eyJhcGlfa2V5Ijoi\r\nMDVkZGU1MGYxZDFhMzg0ZGQ3ODc2N2M1NTQ5M2U0YmIiLCJuYW1lIjoiR2l0SHViIn0sImVudGl0\r\neSI6eyJleHRlcm5hbF9rZXkiOiJnaXRodWIvaWt2ay9pbWFwX3Rvb2xzIiwidGl0bGUiOiJpa3Zr\r\nL2ltYXBfdG9vbHMiLCJzdWJ0aXRsZSI6IkdpdEh1YiByZXBvc2l0b3J5IiwibWFpbl9pbWFnZV91\r\ncmwiOiJodHRwczovL2dpdGh1Yi5naXRodWJhc3NldHMuY29tL2ltYWdlcy9lbWFpbC9tZXNzYWdl\r\nX2NhcmRzL2hlYWRlci5wbmciLCJhdmF0YXJfaW1hZ2VfdXJsIjoiaHR0cHM6Ly9naXRodWIuZ2l0\r\naHViYXNzZXRzLmNvbS9pbWFnZXMvZW1haWwvbWVzc2FnZV9jYXJkcy9hdmF0YXIucG5nIiwiYWN0\r\naW9uIjp7Im5hbWUiOiJPcGVuIGluIEdpdEh1YiIsInVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9p\r\na3ZrL2ltYXBfdG9vbHMifX0sInVwZGF0ZXMiOnsic25pcHBldHMiOlt7Imljb24iOiJERVNDUklQ\r\nVElPTiIsIm1lc3NhZ2UiOiJkb2VzIG5vdCBleHRyYWN0IGF0dGFjaGVkIEVNTCBmaWxlcyAoIzQp\r\nIn1dLCJhY3Rpb24iOnsibmFtZSI6IlZpZXcgSXNzdWUiLCJ1cmwiOiJodHRwczovL2dpdGh1Yi5j\r\nb20vaWt2ay9pbWFwX3Rvb2xzL2lzc3Vlcy80In19fTwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJh\r\ncHBsaWNhdGlvbi9sZCtqc29uIj5bDQp7DQoiQGNvbnRleHQiOiAiaHR0cDovL3NjaGVtYS5vcmci\r\nLA0KIkB0eXBlIjogIkVtYWlsTWVzc2FnZSIsDQoicG90ZW50aWFsQWN0aW9uIjogew0KIkB0eXBl\r\nIjogIlZpZXdBY3Rpb24iLA0KInRhcmdldCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWt2ay9pbWFw\r\nX3Rvb2xzL2lzc3Vlcy80IiwNCiJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2lrdmsvaW1hcF90\r\nb29scy9pc3N1ZXMvNCIsDQoibmFtZSI6ICJWaWV3IElzc3VlIg0KfSwNCiJkZXNjcmlwdGlvbiI6\r\nICJWaWV3IHRoaXMgSXNzdWUgb24gR2l0SHViIiwNCiJwdWJsaXNoZXIiOiB7DQoiQHR5cGUiOiAi\r\nT3JnYW5pemF0aW9uIiwNCiJuYW1lIjogIkdpdEh1YiIsDQoidXJsIjogImh0dHBzOi8vZ2l0aHVi\r\nLmNvbSINCn0NCn0NCl08L3NjcmlwdD4NCi0tLS09PV9taW1lcGFydF81Y2M1OGY1Mzc1NDJfNDll\r\nYjNmYmE0MGNjZDk2MDMwODRiZS0tDQo=UmVjZWl2ZWQ6IGZyb20gbXhmcm9udDJnLm1haWwueWFuZGV4Lm5ldCAoWzEyNy4wLjAuMV0pDQoJ\r\nYnkgbXhmcm9udDJnLm1haWwueWFuZGV4Lm5ldCB3aXRoIExNVFAgaWQgU09ObW5QYjENCglmb3Ig\r\nPEthdWtpblZLQHlhbmRleC5ydT47IFN1biwgMjggQXByIDIwMTkgMTQ6MzI6MzcgKzAzMDANClJl\r\nY2VpdmVkOiBmcm9tIG91dC0zLnNtdHAuZ2l0aHViLmNvbSAob3V0LTMuc210cC5naXRodWIuY29t\r\nIFsxOTIuMzAuMjUyLjE5NF0pDQoJYnkgbXhmcm9udDJnLm1haWwueWFuZGV4Lm5ldCAobndzbXRw\r\nL1lhbmRleCkgd2l0aCBFU01UUFMgaWQgSXhHMDdMUnRqYi1XYXJtNGVYVzsNCglTdW4sIDI4IEFw\r\nciAyMDE5IDE0OjMyOjM2ICswMzAwDQoJKHVzaW5nIFRMU3YxLjIgd2l0aCBjaXBoZXIgRUNESEUt\r\nUlNBLUFFUzEyOC1HQ00tU0hBMjU2ICgxMjgvMTI4IGJpdHMpKQ0KCShDbGllbnQgY2VydGlmaWNh\r\ndGUgbm90IHByZXNlbnQpDQpSZXR1cm4tUGF0aDogbm9yZXBseUBnaXRodWIuY29tDQpYLVlhbmRl\r\neC1Gcm9udDogbXhmcm9udDJnLm1haWwueWFuZGV4Lm5ldA0KWC1ZYW5kZXgtVGltZU1hcms6IDE1\r\nNTY0NTExNTYuMTUzDQpBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBteGZyb250MmcubWFpbC55YW5k\r\nZXgubmV0OyBzcGY9cGFzcyAobXhmcm9udDJnLm1haWwueWFuZGV4Lm5ldDogZG9tYWluIG9mIGdp\r\ndGh1Yi5jb20gZGVzaWduYXRlcyAxOTIuMzAuMjUyLjE5NCBhcyBwZXJtaXR0ZWQgc2VuZGVyLCBy\r\ndWxlPVtpcDQ6MTkyLjMwLjI1Mi4wLzIyXSkgc210cC5tYWlsPW5vcmVwbHlAZ2l0aHViLmNvbTsg\r\nZGtpbT1wYXNzIGhlYWRlci5pPUBnaXRodWIuY29tDQpYLVlhbmRleC1TcGFtOiAyDQpYLVlhbmRl\r\neC1Gd2Q6IE9UTTRPVE00TWpjMk9UVTNOVFUzTlRZeU15dzVOek01TVRFMk1UYzVOekkwTVRBeE9U\r\nTXcNCkRhdGU6IFN1biwgMjggQXByIDIwMTkgMDQ6MzI6MzUgLTA3MDANCkRLSU0tU2lnbmF0dXJl\r\nOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7IGQ9Z2l0aHViLmNvbTsNCglz\r\nPXBmMjAxNDsgdD0xNTU2NDUxMTU1Ow0KCWJoPUZzUlBVS24zYmV1cHQyUDNRQjM2VXpmVkVTVkNs\r\nTDA3VFZJTm5UWDBuQmc9Ow0KCWg9RGF0ZTpGcm9tOlJlcGx5LVRvOlRvOkNjOlN1YmplY3Q6TGlz\r\ndC1JRDpMaXN0LUFyY2hpdmU6TGlzdC1Qb3N0Og0KCSBMaXN0LVVuc3Vic2NyaWJlOkZyb207DQoJ\r\nYj1iemZRcnYyNW8wSXBaS2lJcmNHZ0x6RHZNMlZMZllmaWN6anFTUFBUMFJkM3UzRDY2YXd3bHhh\r\nVkVIV3FwRTZkYw0KCSA4RVRSMCtBM2tOMVYzeGxvOUV0bGduMzExMDVnM09RRkcwakJNVGR5bWRh\r\nWEEvaHU4SHJqcjRXZjFrckFHcXVIcHENCgkgZ0pvRjRDaHVNdVVoTDU1NGhndUFtc1daMUJtemNq\r\nSDZ2VlNhMFpFVT0NCkZyb206IEJ1ZGR5IFJpa2FyZCA8bm90aWZpY2F0aW9uc0BnaXRodWIuY29t\r\nPg0KUmVwbHktVG86IGlrdmsvaW1hcF90b29scyA8cmVwbHkrQUFWNk4yWjVaTVZZUFZWTUpCWEVa\r\nRTUyMkxBNUhFVkJOSEhCVUhBUEpVQHJlcGx5LmdpdGh1Yi5jb20+DQpUbzogaWt2ay9pbWFwX3Rv\r\nb2xzIDxpbWFwX3Rvb2xzQG5vcmVwbHkuZ2l0aHViLmNvbT4NCkNjOiBTdWJzY3JpYmVkIDxzdWJz\r\nY3JpYmVkQG5vcmVwbHkuZ2l0aHViLmNvbT4NCk1lc3NhZ2UtSUQ6IDxpa3ZrL2ltYXBfdG9vbHMv\r\naXNzdWVzLzRAZ2l0aHViLmNvbT4NClN1YmplY3Q6IFtpa3ZrL2ltYXBfdG9vbHNdIGRvZXMgbm90\r\nIGV4dHJhY3QgYXR0YWNoZWQgRU1MIGZpbGVzICgjNCkNCk1pbWUtVmVyc2lvbjogMS4wDQpDb250\r\nZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsNCiBib3VuZGFyeT0iLS09PV9taW1lcGFy\r\ndF81Y2M1OGY1Mzc1NDJfNDllYjNmYmE0MGNjZDk2MDMwODRiZSI7DQogY2hhcnNldD1VVEYtOA0K\r\nQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdA0KUHJlY2VkZW5jZTogbGlzdA0KWC1HaXRI\r\ndWItU2VuZGVyOiBUcHlvS25pZw0KWC1HaXRIdWItUmVjaXBpZW50OiBpa3ZrDQpYLUdpdEh1Yi1S\r\nZWFzb246IHN1YnNjcmliZWQNCkxpc3QtSUQ6IGlrdmsvaW1hcF90b29scyA8aW1hcF90b29scy5p\r\na3ZrLmdpdGh1Yi5jb20+DQpMaXN0LUFyY2hpdmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9pa3ZrL2lt\r\nYXBfdG9vbHMNCkxpc3QtUG9zdDogPG1haWx0bzpyZXBseStBQVY2TjJaNVpNVllQVlZNSkJYRVpF\r\nNTIyTEE1SEVWQk5ISEJVSEFQSlVAcmVwbHkuZ2l0aHViLmNvbT4NCkxpc3QtVW5zdWJzY3JpYmU6\r\nIDxtYWlsdG86dW5zdWIrQUFWNk4yWjVaTVZZUFZWTUpCWEVaRTUyMkxBNUhFVkJOSEhCVUhBUEpV\r\nQHJlcGx5LmdpdGh1Yi5jb20+LA0KIDxodHRwczovL2dpdGh1Yi5jb20vbm90aWZpY2F0aW9ucy91\r\nbnN1YnNjcmliZS9BQVY2TjI0UkpZR0dRQkk1UEtNR1RLM1BTV0ROSEFOQ05GU000SEk2SlFVQT4N\r\nClgtQXV0by1SZXNwb25zZS1TdXBwcmVzczogQWxsDQpYLUdpdEh1Yi1SZWNpcGllbnQtQWRkcmVz\r\nczogS2F1a2luVktAeWFuZGV4LnJ1DQpYLVlhbmRleC1Gb3J3YXJkOiBlZmI0MmQ3NmVkZjdkNTU1\r\nNjExMmYzZGFjMDk5NDA2ZQ0KDQoNCi0tLS09PV9taW1lcGFydF81Y2M1OGY1Mzc1NDJfNDllYjNm\r\nYmE0MGNjZDk2MDMwODRiZQ0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOw0KIGNoYXJzZXQ9VVRG\r\nLTgNCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQNCg0KQXMgLkVNTCBmaWxlcyBoYXZl\r\nIHRoZXNlIGhlYWRlcnM6DQoNCmAtLTAwMDAwMDAwMDAwMDk0ODA5MTA1ODc4ZGFhYzANCkNvbnRl\r\nbnQtVHlwZTogbWVzc2FnZS9yZmM4MjI7IG5hbWU9IlRvdGFsbHkgbGVnaXQgZW1haWwgKDIpLmVt\r\nbCINCkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSJUb3RhbGx5IGxl\r\nZ2l0IGVtYWlsICgyKS5lbWwiDQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBiYXNlNjQNCkNv\r\nbnRlbnQtSUQ6IDxmX2p2MGFwcHJiMD4NClgtQXR0YWNobWVudC1JZDogZl9qdjBhcHByYjANCg0K\r\nTUlNRS1WZXJzaW9uOiAxLjANCkRhdGU6IEZyaSwgMjUgSmFuIDIwMTkgMTA6Mzc6NDcgLTA4MDAN\r\nCk1lc3NhZ2UtSUQ6IDxDQUtLWHozTzVxRm9UaTY4THM0UUNxWnpRSzhtNm1BU3ltVFo5aWI2eXNu\r\nQlRPd3dKT2dAbWFpbC5nbWFpbC5jb20+DQpTdWJqZWN0OiBUb3RhbGx5IGxlZ2l0IGVtYWlsDQpG\r\ncm9tOiBSRURBQ1RFRCA8UkVEQUNURURARE9NQUlOLkNPTT4NClRvOiBSRURBQ1RFRCA8UkVEQUNU\r\nRURARE9NQUlOLkNPTT4NCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3Vu\r\nZGFyeT0iMDAwMDAwMDAwMDAwYTMwYmI2MDU4MDRjOWZmMiINCg0KLS0wMDAwMDAwMDAwMDBhMzBi\r\nYjYwNTgwNGM5ZmYyDQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04Ig0K\r\nQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZWANCg0KaW1hcC10b29s\r\ncyBkb2VzIG5vdCByZXR1cm4gdGhpcyBhcyBhbiBhdHRhY2htZW50IGFuZCBjb21wbGV0ZWx5IGRp\r\nc3JlZ2FyZHMgdGhlIGF0dGFjaG1lbnQgaXRzZWxmIGFsb25nIHdpdGggdGhlIGZpbGVuYW1lLiAN\r\nCg0KLS0gDQpZb3UgYXJlIHJlY2VpdmluZyB0aGlzIGJlY2F1c2UgeW91IGFyZSBzdWJzY3JpYmVk\r\nIHRvIHRoaXMgdGhyZWFkLg0KUmVwbHkgdG8gdGhpcyBlbWFpbCBkaXJlY3RseSBvciB2aWV3IGl0\r\nIG9uIEdpdEh1YjoNCmh0dHBzOi8vZ2l0aHViLmNvbS9pa3ZrL2ltYXBfdG9vbHMvaXNzdWVzLzQN\r\nCi0tLS09PV9taW1lcGFydF81Y2M1OGY1Mzc1NDJfNDllYjNmYmE0MGNjZDk2MDMwODRiZQ0KQ29u\r\ndGVudC1UeXBlOiB0ZXh0L2h0bWw7DQogY2hhcnNldD1VVEYtOA0KQ29udGVudC1UcmFuc2Zlci1F\r\nbmNvZGluZzogN2JpdA0KDQo8cD5BcyAuRU1MIGZpbGVzIGhhdmUgdGhlc2UgaGVhZGVyczo8L3A+\r\nDQo8cD5gLS0wMDAwMDAwMDAwMDA5NDgwOTEwNTg3OGRhYWMwPGJyPg0KQ29udGVudC1UeXBlOiBt\r\nZXNzYWdlL3JmYzgyMjsgbmFtZT0iVG90YWxseSBsZWdpdCBlbWFpbCAoMikuZW1sIjxicj4NCkNv\r\nbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSJUb3RhbGx5IGxlZ2l0IGVt\r\nYWlsICgyKS5lbWwiPGJyPg0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0PGJyPg0K\r\nQ29udGVudC1JRDogJmx0O2ZfanYwYXBwcmIwJmd0Ozxicj4NClgtQXR0YWNobWVudC1JZDogZl9q\r\ndjBhcHByYjA8L3A+DQo8cD5NSU1FLVZlcnNpb246IDEuMDxicj4NCkRhdGU6IEZyaSwgMjUgSmFu\r\nIDIwMTkgMTA6Mzc6NDcgLTA4MDA8YnI+DQpNZXNzYWdlLUlEOiA8YSBocmVmPSJtYWlsdG86Q0FL\r\nS1h6M081cUZvVGk2OExzNFFDcVp6UUs4bTZtQVN5bVRaOWliNnlzbkJUT3d3Sk9nQG1haWwuZ21h\r\naWwuY29tIj5DQUtLWHozTzVxRm9UaTY4THM0UUNxWnpRSzhtNm1BU3ltVFo5aWI2eXNuQlRPd3dK\r\nT2dAbWFpbC5nbWFpbC5jb208L2E+PGJyPg0KU3ViamVjdDogVG90YWxseSBsZWdpdCBlbWFpbDxi\r\ncj4NCkZyb206IFJFREFDVEVEIDxhIGhyZWY9Im1haWx0bzpSRURBQ1RFREBET01BSU4uQ09NIj5S\r\nRURBQ1RFREBET01BSU4uQ09NPC9hPjxicj4NClRvOiBSRURBQ1RFRCA8YSBocmVmPSJtYWlsdG86\r\nUkVEQUNURURARE9NQUlOLkNPTSI+UkVEQUNURURARE9NQUlOLkNPTTwvYT48YnI+DQpDb250ZW50\r\nLVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMDAwMDAwMDAwMGEzMGJi\r\nNjA1ODA0YzlmZjIiPC9wPg0KPHA+LS0wMDAwMDAwMDAwMDBhMzBiYjYwNTgwNGM5ZmYyPGJyPg0K\r\nQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCI8YnI+DQpDb250ZW50LVRy\r\nYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlYDwvcD4NCjxwPmltYXAtdG9vbHMgZG9l\r\ncyBub3QgcmV0dXJuIHRoaXMgYXMgYW4gYXR0YWNobWVudCBhbmQgY29tcGxldGVseSBkaXNyZWdh\r\ncmRzIHRoZSBhdHRhY2htZW50IGl0c2VsZiBhbG9uZyB3aXRoIHRoZSBmaWxlbmFtZS48L3A+DQoN\r\nCjxwIHN0eWxlPSJmb250LXNpemU6c21hbGw7LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0Om5vbmU7\r\nY29sb3I6IzY2NjsiPiZtZGFzaDs8YnIgLz5Zb3UgYXJlIHJlY2VpdmluZyB0aGlzIGJlY2F1c2Ug\r\neW91IGFyZSBzdWJzY3JpYmVkIHRvIHRoaXMgdGhyZWFkLjxiciAvPlJlcGx5IHRvIHRoaXMgZW1h\r\naWwgZGlyZWN0bHksIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9pa3ZrL2ltYXBfdG9vbHMv\r\naXNzdWVzLzQiPnZpZXcgaXQgb24gR2l0SHViPC9hPiwgb3IgPGEgaHJlZj0iaHR0cHM6Ly9naXRo\r\ndWIuY29tL25vdGlmaWNhdGlvbnMvdW5zdWJzY3JpYmUtYXV0aC9BQVY2TjJaRDJQNU1XMzMzMjJH\r\nREFGVFBTV0ROSEFOQ05GU000SEk2SlFVQSI+bXV0ZSB0aGUgdGhyZWFkPC9hPi48aW1nIHNyYz0i\r\naHR0cHM6Ly9naXRodWIuY29tL25vdGlmaWNhdGlvbnMvYmVhY29uL0FBVjZOMjdKRUI0U0JDRTNW\r\nSUxQTzZMUFNXRE5IQU5DTkZTTTRISTZKUVVBLmdpZiIgaGVpZ2h0PSIxIiB3aWR0aD0iMSIgYWx0\r\nPSIiIC8+PC9wPg0KPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qc29uIiBkYXRhLXNjb3BlPSJp\r\nbmJveG1hcmt1cCI+eyJhcGlfdmVyc2lvbiI6IjEuMCIsInB1Ymxpc2hlciI6eyJhcGlfa2V5Ijoi\r\nMDVkZGU1MGYxZDFhMzg0ZGQ3ODc2N2M1NTQ5M2U0YmIiLCJuYW1lIjoiR2l0SHViIn0sImVudGl0\r\neSI6eyJleHRlcm5hbF9rZXkiOiJnaXRodWIvaWt2ay9pbWFwX3Rvb2xzIiwidGl0bGUiOiJpa3Zr\r\nL2ltYXBfdG9vbHMiLCJzdWJ0aXRsZSI6IkdpdEh1YiByZXBvc2l0b3J5IiwibWFpbl9pbWFnZV91\r\ncmwiOiJodHRwczovL2dpdGh1Yi5naXRodWJhc3NldHMuY29tL2ltYWdlcy9lbWFpbC9tZXNzYWdl\r\nX2NhcmRzL2hlYWRlci5wbmciLCJhdmF0YXJfaW1hZ2VfdXJsIjoiaHR0cHM6Ly9naXRodWIuZ2l0\r\naHViYXNzZXRzLmNvbS9pbWFnZXMvZW1haWwvbWVzc2FnZV9jYXJkcy9hdmF0YXIucG5nIiwiYWN0\r\naW9uIjp7Im5hbWUiOiJPcGVuIGluIEdpdEh1YiIsInVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9p\r\na3ZrL2ltYXBfdG9vbHMifX0sInVwZGF0ZXMiOnsic25pcHBldHMiOlt7Imljb24iOiJERVNDUklQ\r\nVElPTiIsIm1lc3NhZ2UiOiJkb2VzIG5vdCBleHRyYWN0IGF0dGFjaGVkIEVNTCBmaWxlcyAoIzQp\r\nIn1dLCJhY3Rpb24iOnsibmFtZSI6IlZpZXcgSXNzdWUiLCJ1cmwiOiJodHRwczovL2dpdGh1Yi5j\r\nb20vaWt2ay9pbWFwX3Rvb2xzL2lzc3Vlcy80In19fTwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJh\r\ncHBsaWNhdGlvbi9sZCtqc29uIj5bDQp7DQoiQGNvbnRleHQiOiAiaHR0cDovL3NjaGVtYS5vcmci\r\nLA0KIkB0eXBlIjogIkVtYWlsTWVzc2FnZSIsDQoicG90ZW50aWFsQWN0aW9uIjogew0KIkB0eXBl\r\nIjogIlZpZXdBY3Rpb24iLA0KInRhcmdldCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWt2ay9pbWFw\r\nX3Rvb2xzL2lzc3Vlcy80IiwNCiJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2lrdmsvaW1hcF90\r\nb29scy9pc3N1ZXMvNCIsDQoibmFtZSI6ICJWaWV3IElzc3VlIg0KfSwNCiJkZXNjcmlwdGlvbiI6\r\nICJWaWV3IHRoaXMgSXNzdWUgb24gR2l0SHViIiwNCiJwdWJsaXNoZXIiOiB7DQoiQHR5cGUiOiAi\r\nT3JnYW5pemF0aW9uIiwNCiJuYW1lIjogIkdpdEh1YiIsDQoidXJsIjogImh0dHBzOi8vZ2l0aHVi\r\nLmNvbSINCn0NCn0NCl08L3NjcmlwdD4NCi0tLS09PV9taW1lcGFydF81Y2M1OGY1Mzc1NDJfNDll\r\nYjNmYmE0MGNjZDk2MDMwODRiZS0tDQo=', html='
two attach
', headers={'received': ('from mxback2g.mail.yandex.net ([127.0.0.1])\r\n\tby mxback2g.mail.yandex.net with LMTP id GCaAmtYs;\r\n\tWed, 1 May 2019 10:20:30 +0300', 'from mxback2g.mail.yandex.net (localhost.localdomain [127.0.0.1])\r\n\tby mxback2g.mail.yandex.net (Yandex) with ESMTP id C4C9426E11B7;\r\n\tWed, 1 May 2019 10:20:30 +0300 (MSK)', 'from localhost (localhost [::1])\r\n\tby mxback2g.mail.yandex.net (nwsmtp/Yandex) with ESMTP id HIJe2M7myP-KThSAlHL;\r\n\tWed, 01 May 2019 10:20:29 +0300', 'by myt5-262fb1897c00.qloud-c.yandex.net with HTTP;\r\n\tWed, 01 May 2019 10:20:29 +0300'), 'x-yandex-internal': ('1',), 'x-yandex-front': ('mxback2g.mail.yandex.net',), 'x-yandex-timemark': ('1556695229.976',), 'dkim-signature': ('v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1556695230;\r\n\tbh=Zmx9VIRnyRQRflnyRn1kpGYLdyO5YBC6/Wu9orXmTDk=;\r\n\th=Message-Id:Date:Subject:To:From;\r\n\tb=AM6LCew9Mz4XSIF78liQrYp4Kyg9RonJDizzaCNBRs5bOwla7bFphFQMIIYfmneJw\r\n\t 51WhDeo5L9ahRqG27no2kwmOggZ+Do99qY8oReCFObnfnaII6V2ZIvogKFXEfjHTB0\r\n\t bZlslZahe65zi1+xD7PnpeSWv8aYLZBgPuNJgA10=',), 'authentication-results': ('mxback2g.mail.yandex.net; dkim=pass header.i=@yandex.ru',), 'x-yandex-spam': ('1',), 'x-yandex-sender-uid': ('52494202',), 'from': ('=?utf-8?B?0JrQsNGD0LrQuNC9INCS0LvQsNC00LjQvNC40YA=?= ',), 'envelope-from': ('kaukinvk@yandex.ru',), 'to': ('imap.tools@ya.ru',), 'subject': ('eml attachments ',), 'mime-version': ('1.0',), 'x-mailer': ('Yamail [ http://yandex.ru ] 5.0',), 'date': ('Wed, 01 May 2019 12:20:29 +0500',), 'message-id': ('<8872861556695229@myt5-262fb1897c00.qloud-c.yandex.net>',), 'content-type': ('multipart/mixed;\r\n\tboundary="----==--bound.887287.myt5-262fb1897c00.qloud-c.yandex.net"',), 'return-path': ('kaukinvk@yandex.ru',), 'x-yandex-forward': ('d910e166fb8fe03380632bd988c8b67f',)}, attachments=[ diff --git a/tests/messages_data/attachment_7bit.py b/tests/messages_data/attachment_7bit.py index 5e1bbc6..8e69d35 100644 --- a/tests/messages_data/attachment_7bit.py +++ b/tests/messages_data/attachment_7bit.py @@ -8,9 +8,9 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2017, 10, 12, 9, 41, 56, tzinfo=datetime.timezone(datetime.timedelta(0, 18000))), + date=datetime.datetime(2017, 10, 12, 9, 41, 56, tzinfo=datetime.timezone(datetime.timedelta(seconds=18000))), date_str='Thu, 12 Oct 2017 09:41:56 +0500', - text='\r\n', + text='\r\nНовый заказ №28922 http://group.company.ru/ru/order/28922/process/\r\nСоздал: \r\nКлиент Ковчег (Гусев Дмитрий)\r\n\r\nСегменты:\r\n\r\n- Москва - Тель-Авив, some-889, 15.03.2018, эконом: (15 взр.)\r\n\r\n- Тель-Авив - Москва, some-890, 22.03.2018, эконом: (15 взр.)', html='\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n Новый заказ №28922\r\n
\r\n\r\n \r\n Создал:\r\n \r\n Клиент Ковчег\r\n (Гусев Дмитрий)\r\n

\r\n \r\n Сегменты:
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n', headers={'return-path': ('i.kor@company.ru',), 'received': ('from m101.comp.ru (LHLO m101.comp.ru) (192.168.99.101) by m101.comp.ru\r\n with LMTP; Thu, 12 Oct 2017 09:41:57 +0500 (YEKT)', 'from localhost (localhost [127.0.0.1])\r\n\tby m101.comp.ru (Postfix) with ESMTP id 555275B43;\r\n\tThu, 12 Oct 2017 09:41:57 +0500 (YEKT)', 'from m101.comp.ru ([127.0.0.1])\r\n\tby localhost (m101.comp.ru [127.0.0.1]) (amavisd-new, port 10032)\r\n\twith ESMTP id rY6SAtl4piy1; Thu, 12 Oct 2017 09:41:56 +0500 (YEKT)', 'from localhost (localhost [127.0.0.1])\r\n\tby m101.comp.ru (Postfix) with ESMTP id C8F0F5B4B;\r\n\tThu, 12 Oct 2017 09:41:56 +0500 (YEKT)', 'from m101.comp.ru ([127.0.0.1])\r\n\tby localhost (m101.comp.ru [127.0.0.1]) (amavisd-new, port 10026)\r\n\twith ESMTP id kq2wE_i9_8EK; Thu, 12 Oct 2017 09:41:56 +0500 (YEKT)', 'from [192.168.104.80] (notebook26.hades.company [192.168.104.80])\r\n\tby m101.comp.ru (Postfix) with ESMTPSA id 9563A5B44\r\n\tfor ; Thu, 12 Oct 2017 09:41:56 +0500 (YEKT)'), 'x-spam-flag': ('NO',), 'x-spam-score': ('-2.898',), 'x-spam-level': ('',), 'x-spam-status': ('No, score=-2.898 required=6.6 tests=[ALL_TRUSTED=-1,\r\n\tBAYES_00=-1.9, HTML_MESSAGE=0.001, URIBL_BLOCKED=0.001]\r\n\tautolearn=ham autolearn_force=no',), 'x-virus-scanned': ('amavisd-new at m101.comp.ru',), 'references': ('<20171011085432.15374.20485@web.hades.company>',), 'subject': ('=?UTF-8?B?0YHRgtCw0YLRg9GB?= ',), 'to': ('Jessica Schmidt ,\r\n\t=?iso-8859-1?Q?Rabea=2EBart=F6lke=40uni=2Ede?= <\udcd1\udc8f\udce4\udcbd\udca0Rabea.Bart\udcc3\udcb6lke@uni.de>',), 'from': ('i.kor@company.ru',), 'x-forwarded-message-id': ('<20171011085432.15374.20485@web.hades.company>',), 'message-id': ('<2405271c-86ac-0a65-e50c-d1ebccfcc644@company.ru>',), 'date': ('Thu, 12 Oct 2017 09:41:56 +0500',), 'user-agent': ('Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101\r\n Thunderbird/52.4.0',), 'mime-version': ('1.0',), 'in-reply-to': ('<20171011085432.15374.20485@web.hades.company>',), 'content-type': ('multipart/mixed;\r\n boundary="------------BF90926EC9DF73443A6B8F28"',), 'content-language': ('ru',)}, attachments=[ diff --git a/tests/messages_data/attachment_8bit.py b/tests/messages_data/attachment_8bit.py index 03522bb..dcaeffd 100644 --- a/tests/messages_data/attachment_8bit.py +++ b/tests/messages_data/attachment_8bit.py @@ -8,10 +8,10 @@ cc=('aa@com.ru', 'mm@com.ru'), bcc=('hello@yandex-team.ru',), reply_to=(), - date=datetime.datetime(2019, 2, 7, 13, 18, 20, tzinfo=datetime.timezone(datetime.timedelta(0, 18000))), + date=datetime.datetime(2019, 2, 7, 13, 18, 20, tzinfo=datetime.timezone(datetime.timedelta(seconds=18000))), date_str='Thu, 7 Feb 2019 13:18:20 +0500', - text='SCR\r\n\r\n/\r\nS19\r\n07FEB\r\nwat\r\n\r\n-- \r\nотдел расписания\r\nтел. (343) 072-00-00 (вн.18-59)\r\ne-mail: e.sp@com.ru\r\n\r\n', - html='\r\n \r\n\r\n \r\n \r\n \r\n

SCR
\r\n

\r\n
/
\r\n S19
\r\n 07FEB
\r\n wat
\r\n
-- \r\nотдел расписания\r\nтел. (343) 072-00-00 (вн.18-59)\r\ne-mail: e.sp@com.ru
\r\n \r\n\r\n', + text='SCR\r\n\r\n/\r\nS19\r\n07FEB\r\nwat\r\n\r\n-- \r\nотдел расписания\r\nтел. (343) 072-00-00 (вн.18-59)\r\ne-mail: e.sp@com.ru\r\n\r\nДобрый\xa0день,\xa0уважаемые\xa0коллеги!\r\n\r\n\r\n\r\n\r\n-------- Перенаправленное сообщение --------\r\nТема: \tВвод рейсов ТЮМ, ЧЛБ, ОМС на Лето 2019\r\nДата: \tFri, 7 Dec 2018 08:23:21 +0500\r\nОт: \tПлёткина \r\nКому: \tБелобородова О.Н. \r\n\r\n\r\n\r\nДобрый\xa0день,\xa0уважаемые\xa0коллеги!\r\n\r\nПрошу ввести рейс на период летней навигации\r\n\r\n*ДМД-ТЮМ-ДМД \xa0 У6-341/342*\xa0 тип ВС А320\r\n\r\nВВ из ДМД 23:00 LT. ВВ из ТЮМ 06:45 LT\r\n\r\nисключение период с 25/05/19 по 13/10/19\r\n\r\nВВ из ДМД в 00:50 LT\r\n\r\nВВ из ТЮМ остается без изменения\r\n\r\n----------------------------------------\r\n\r\n*ДМД-ОМС-ДМД \xa0 У6-387/388*\xa0 тип ВС А321\r\n\r\nВВ из ДМД в 23:15. ВВ из ОМС 06:30 LT\r\n\r\n----------------------------------------\r\n\r\n*ДМД-ЧЛБ-ДМД \xa0 У6-610/609*\xa0 тип ВС А320\r\n\r\nВВ из ДМД в 23:30. ВВ из ЧЛБ 06:40 LT\r\n\r\n\r\n', + html='\r\n \r\n\r\n \r\n \r\n \r\n

SCR
\r\n

\r\n
/
\r\n S19
\r\n 07FEB
\r\n wat
\r\n
-- \r\nотдел расписания\r\nтел. (343) 072-00-00 (вн.18-59)\r\ne-mail: e.sp@com.ru
\r\n \r\n\r\n\r\n \r\n\r\n \r\n \r\n \r\n
Добрый\xa0день,\xa0уважаемые\xa0коллеги!\r\n

\xa0

\r\n
\r\n
\r\n

\r\n
\r\n -------- Перенаправленное сообщение --------\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Тема: Ввод рейсов ТЮМ, ЧЛБ, ОМС на Лето 2019
Дата: Fri, 7 Dec 2018 08:23:21 +0500
От: 1 <a.pl@com.ru>
Кому: 2 <schedule@com.ru>
\r\n
\r\n
\r\n \r\n
Добрый\xa0день,\xa0уважаемые\xa0коллеги!\r\n

Прошу ввести рейс на период летней навигации
\r\n

\r\n

\xa0 тип ВС А320
\r\n

\r\n

ВВ из ДМД 23:00 LT. ВВ из ТЮМ 06:45 LT

\r\n

исключение период с 25/05/19 по 13/10/19
\r\n

\r\n

ВВ из ДМД в 00:50 LT
\r\n

\r\n

ВВ из ТЮМ остается без изменения
\r\n

\r\n

----------------------------------------

\r\n

\xa0 тип ВС А321

\r\n

ВВ из ДМД в 23:15. ВВ из ОМС 06:30 LT
\r\n

\r\n

----------------------------------------

\r\n

\xa0 тип ВС А320

\r\n

ВВ из ДМД в 23:30. ВВ из ЧЛБ 06:40 LT

\r\n
\r\n
\r\n
\r\n \r\n\r\n', headers={'return-path': ('e.sp@com.ru',), 'received': ('from m101.com.ru (LHLO m101.com.ru) (92.233.222.111) by m101.com.ru\r\n with LMTP; Thu, 7 Feb 2019 13:18:22 +0500 (YEKT)', 'from localhost (localhost [127.0.0.1])\r\n\tby m101.com.ru (Postfix) with ESMTP id 9A9181170B7;\r\n\tThu, 7 Feb 2019 13:18:22 +0500 (YEKT)', 'from m101.com.ru ([127.0.0.1])\r\n\tby localhost (m101.com.ru [127.0.0.1]) (amavisd-new, port 10026)\r\n\twith ESMTP id Q3OLc4gNDjjO; Thu, 7 Feb 2019 13:18:22 +0500 (YEKT)', 'from [192.168.104.100] (kom-420-1.hades.company [192.168.104.100])\r\n\tby m101.com.ru (Postfix) with ESMTPSA id DC7BB1170A1;\r\n\tThu, 7 Feb 2019 13:18:21 +0500 (YEKT)'), 'x-virus-scanned': ('amavisd-new at m101.com.ru',), 'subject': ('S19 IZM A7-342',), 'references': ('<1333139463.20190207083243@com.ru>',), 'to': ('=?UTF-8?B?0KLQrtCc0JXQndCs?= ',), 'from': ('=?utf-8?B?0JrQsNGD0LrQuNC9INCS0LvQsNC00LjQvNC40YA=?= ',), 'cc': ('aa@com.ru, mm@com.ru',), 'bcc': ('=?utf-8?b?0JrQvtC80LDQvdC00LAg0K/QvdC00LXQutGBLtCf0L7Rh9GC0Ys=?=\r\n\t',), 'x-forwarded-message-id': ('<1333139463.20190207083243@com.ru>',), 'message-id': ('<2ffd4cec-d312-60da-72f3-5b6e4406fddf@com.ru>',), 'date': ('Thu, 7 Feb 2019 13:18:20 +0500',), 'user-agent': ('Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101\r\n Thunderbird/60.5.0',), 'mime-version': ('1.0',), 'in-reply-to': ('<1333139463.20190207083243@com.ru>',), 'content-type': ('multipart/mixed;\r\n boundary="------------FFFBFD561B1FF33B4E5E7050"',), 'content-language': ('ru',)}, attachments=[ dict( diff --git a/tests/messages_data/attachment_emails/attachment_content_disposition.py b/tests/messages_data/attachment_emails/attachment_content_disposition.py index 170369c..321683a 100644 --- a/tests/messages_data/attachment_emails/attachment_content_disposition.py +++ b/tests/messages_data/attachment_emails/attachment_content_disposition.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2005, 6, 6, 22, 21, 22, tzinfo=datetime.timezone(datetime.timedelta(0, 7200))), + date=datetime.datetime(2005, 6, 6, 22, 21, 22, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200))), date_str='Mon, 6 Jun 2005 22:21:22 +0200', text='This is the first part.\r\n', html='', diff --git a/tests/messages_data/attachment_emails/attachment_content_location.py b/tests/messages_data/attachment_emails/attachment_content_location.py index c32cfec..77898a0 100644 --- a/tests/messages_data/attachment_emails/attachment_content_location.py +++ b/tests/messages_data/attachment_emails/attachment_content_location.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2005, 6, 6, 22, 21, 22, tzinfo=datetime.timezone(datetime.timedelta(0, 7200))), + date=datetime.datetime(2005, 6, 6, 22, 21, 22, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200))), date_str='Mon, 6 Jun 2005 22:21:22 +0200', text='This is the first part.\r\n', html='', diff --git a/tests/messages_data/attachment_emails/attachment_message_rfc822.py b/tests/messages_data/attachment_emails/attachment_message_rfc822.py index 89e5caa..a95949c 100644 --- a/tests/messages_data/attachment_emails/attachment_message_rfc822.py +++ b/tests/messages_data/attachment_emails/attachment_message_rfc822.py @@ -8,9 +8,9 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2005, 6, 6, 22, 21, 22, tzinfo=datetime.timezone(datetime.timedelta(0, 7200))), + date=datetime.datetime(2005, 6, 6, 22, 21, 22, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200))), date_str='Mon, 6 Jun 2005 22:21:22 +0200', - text='This is the first part.\r\n', + text='This is the first part.\r\nJust attaching another PDF, here, to see what the message looks like,\r\nand to see if I can figure out what is going wrong here.\r\n', html='', headers={'mime-version': ('1.0 (Apple Message framework v730)',), 'content-type': ('multipart/mixed; boundary=Apple-Mail-13-196941151',), 'message-id': ('<9169D984-4E0B-45EF-82D4-8F5E53AD7012@example.com>',), 'from': ('foo@example.com',), 'subject': ('testing',), 'date': ('Mon, 6 Jun 2005 22:21:22 +0200',), 'to': ('blah@example.com',)}, attachments=[ diff --git a/tests/messages_data/attachment_emails/attachment_nonascii_filename.py b/tests/messages_data/attachment_emails/attachment_nonascii_filename.py index 8cc4d83..0bc8c1f 100644 --- a/tests/messages_data/attachment_emails/attachment_nonascii_filename.py +++ b/tests/messages_data/attachment_emails/attachment_nonascii_filename.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2005, 6, 6, 22, 21, 22, tzinfo=datetime.timezone(datetime.timedelta(0, 7200))), + date=datetime.datetime(2005, 6, 6, 22, 21, 22, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200))), date_str='Mon, 6 Jun 2005 22:21:22 +0200', text='This is the first part.\r\n', html='', diff --git a/tests/messages_data/attachment_emails/attachment_only_email.py b/tests/messages_data/attachment_emails/attachment_only_email.py index 289eb82..9d46567 100644 --- a/tests/messages_data/attachment_emails/attachment_only_email.py +++ b/tests/messages_data/attachment_emails/attachment_only_email.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2003, 10, 23, 22, 40, 49, tzinfo=datetime.timezone(datetime.timedelta(-1, 61200))), + date=datetime.datetime(2003, 10, 23, 22, 40, 49, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))), date_str='23 Oct 2003 22:40:49 -0700', text='', html='', diff --git a/tests/messages_data/attachment_emails/attachment_pdf.py b/tests/messages_data/attachment_emails/attachment_pdf.py index 0be0a41..0d14eef 100644 --- a/tests/messages_data/attachment_emails/attachment_pdf.py +++ b/tests/messages_data/attachment_emails/attachment_pdf.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=('xxxx@xxxx.com',), - date=datetime.datetime(2005, 5, 10, 11, 26, 39, tzinfo=datetime.timezone(datetime.timedelta(-1, 64800))), + date=datetime.datetime(2005, 5, 10, 11, 26, 39, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=64800))), date_str='Tue, 10 May 2005 11:26:39 -0600', text='Just attaching another PDF, here, to see what the message looks like,\r\nand to see if I can figure out what is going wrong here.\r\n', html='', diff --git a/tests/messages_data/attachment_emails/attachment_pdf_lf.py b/tests/messages_data/attachment_emails/attachment_pdf_lf.py index b93672e..83b01db 100644 --- a/tests/messages_data/attachment_emails/attachment_pdf_lf.py +++ b/tests/messages_data/attachment_emails/attachment_pdf_lf.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=('xxxx@xxxx.com',), - date=datetime.datetime(2005, 5, 10, 11, 26, 39, tzinfo=datetime.timezone(datetime.timedelta(-1, 64800))), + date=datetime.datetime(2005, 5, 10, 11, 26, 39, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=64800))), date_str='Tue, 10 May 2005 11:26:39 -0600', text='Just attaching another PDF, here, to see what the message looks like,\nand to see if I can figure out what is going wrong here.\n', html='', diff --git a/tests/messages_data/attachment_emails/attachment_with_base64_encoded_name.py b/tests/messages_data/attachment_emails/attachment_with_base64_encoded_name.py index decdc33..92a3047 100644 --- a/tests/messages_data/attachment_emails/attachment_with_base64_encoded_name.py +++ b/tests/messages_data/attachment_emails/attachment_with_base64_encoded_name.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=('xxxxxxxxx.xxxxxxx@gmail.com',), - date=datetime.datetime(2005, 5, 8, 14, 9, 11, tzinfo=datetime.timezone(datetime.timedelta(-1, 68400))), + date=datetime.datetime(2005, 5, 8, 14, 9, 11, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=68400))), date_str='Sun, 8 May 2005 14:09:11 -0500', text='We should not include these files or vcards as attachments.\n\n---------- Forwarded message ----------\nFrom: xxxxx xxxxxx \nDate: May 8, 2005 1:17 PM\nSubject: Signed email causes file attachments\nTo: xxxxxxx@xxxxxxxxxx.com\n\n\nHi,\n\nTest attachments with Base64 encoded filename.\n\n', html='', diff --git a/tests/messages_data/attachment_emails/attachment_with_encoded_name.py b/tests/messages_data/attachment_emails/attachment_with_encoded_name.py index a566a48..86f627f 100644 --- a/tests/messages_data/attachment_emails/attachment_with_encoded_name.py +++ b/tests/messages_data/attachment_emails/attachment_with_encoded_name.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=('xxxxxxxxx.xxxxxxx@gmail.com',), - date=datetime.datetime(2005, 5, 8, 14, 9, 11, tzinfo=datetime.timezone(datetime.timedelta(-1, 68400))), + date=datetime.datetime(2005, 5, 8, 14, 9, 11, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=68400))), date_str='Sun, 8 May 2005 14:09:11 -0500', text='We should not include these files or vcards as attachments.\r\n\r\n---------- Forwarded message ----------\r\nFrom: xxxxx xxxxxx \r\nDate: May 8, 2005 1:17 PM\r\nSubject: Signed email causes file attachments\r\nTo: xxxxxxx@xxxxxxxxxx.com\r\n\r\n\r\nHi,\r\n\r\nTest attachments oddly encoded with japanese charset.\r\n\r\n', html='', diff --git a/tests/messages_data/attachment_emails/attachment_with_quoted_filename.py b/tests/messages_data/attachment_emails/attachment_with_quoted_filename.py index dbeb5df..27cc4ca 100644 --- a/tests/messages_data/attachment_emails/attachment_with_quoted_filename.py +++ b/tests/messages_data/attachment_emails/attachment_with_quoted_filename.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2009, 5, 13, 11, 42, 1, tzinfo=datetime.timezone(datetime.timedelta(-1, 72000))), + date=datetime.datetime(2009, 5, 13, 11, 42, 1, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=72000))), date_str='Wed, 13 May 2009 11:42:01 -0400', text='', html='', diff --git a/tests/messages_data/attachment_emails/attachment_with_unquoted_name.py b/tests/messages_data/attachment_emails/attachment_with_unquoted_name.py index 45f33d5..9ce3317 100644 --- a/tests/messages_data/attachment_emails/attachment_with_unquoted_name.py +++ b/tests/messages_data/attachment_emails/attachment_with_unquoted_name.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2005, 6, 6, 22, 21, 22, tzinfo=datetime.timezone(datetime.timedelta(0, 7200))), + date=datetime.datetime(2005, 6, 6, 22, 21, 22, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200))), date_str='Mon, 6 Jun 2005 22:21:22 +0200', text='This is the first part.\r\n', html='', diff --git a/tests/messages_data/attachment_inline2.py b/tests/messages_data/attachment_inline2.py index dacaa7c..f31c32e 100644 --- a/tests/messages_data/attachment_inline2.py +++ b/tests/messages_data/attachment_inline2.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2020, 10, 21, 11, 34, 9, tzinfo=datetime.timezone(datetime.timedelta(0, 28800))), + date=datetime.datetime(2020, 10, 21, 11, 34, 9, tzinfo=datetime.timezone(datetime.timedelta(seconds=28800))), date_str='Wed, 21 Oct 2020 11:34:09 +0800', text='', html='


', diff --git a/tests/messages_data/error_emails/InvalidMultipartContentTransferEncodingDefect.py b/tests/messages_data/error_emails/InvalidMultipartContentTransferEncodingDefect.py index edba476..9aedcd8 100644 --- a/tests/messages_data/error_emails/InvalidMultipartContentTransferEncodingDefect.py +++ b/tests/messages_data/error_emails/InvalidMultipartContentTransferEncodingDefect.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2021, 4, 20, 12, 31, 24, tzinfo=datetime.timezone(datetime.timedelta(0, 18000))), + date=datetime.datetime(2021, 4, 20, 12, 31, 24, tzinfo=datetime.timezone(datetime.timedelta(seconds=18000))), date_str='Tue, 20 Apr 2021 12:31:24 +0500', text='MVT\r\nU68925/20.VQBCE.UFA\r\nAD0706/0729 EA1029 LBD\r\nDL/0126\r\n', html='', diff --git a/tests/messages_data/error_emails/bad_subject.py b/tests/messages_data/error_emails/bad_subject.py index 49e6b16..1cbbb3d 100644 --- a/tests/messages_data/error_emails/bad_subject.py +++ b/tests/messages_data/error_emails/bad_subject.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=('carol@reply.mysurvey.com',), - date=datetime.datetime(2010, 12, 15, 12, 21, 20, tzinfo=datetime.timezone(datetime.timedelta(-1, 68400))), + date=datetime.datetime(2010, 12, 15, 12, 21, 20, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=68400))), date_str='Wed, 15 Dec 2010 12:21:20 -0500 ', text="You have a survey waiting!\r\n\r\n\r\nTo take the survey:\r\n\r\n\r\n==================================================================\r\nPlease do not reply to this email, as we do not process emails sent to this address. To view FAQ's or to contact us, please go to our http://www.mysurvey.com/index.cfm?action=Main.lobbyGeneral&MyContent=contact page. \r\n================================================================== \r\nYou received this email because you (or someone in your household) registered to be a MySurvey.com member. Being a MySurvey.com member means receiving periodic email invitations to give your opinions via e-surveys as well as being eligible for special projects and product tests. If you wish to be removed from the MySurvey.com panel, please click here to http://www.mysurvey.com/index.cfm?action=Main.lobbyGeneral&myContent=unsubscribes.\r\n==================================================================\r\n", html='
\r\nhello world\r\n
\r\n\r\n', diff --git a/tests/messages_data/error_emails/cant_parse_from.py b/tests/messages_data/error_emails/cant_parse_from.py index 296a904..e694758 100644 --- a/tests/messages_data/error_emails/cant_parse_from.py +++ b/tests/messages_data/error_emails/cant_parse_from.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2009, 6, 11, 23, 25, 2, tzinfo=datetime.timezone(datetime.timedelta(-1, 61200))), + date=datetime.datetime(2009, 6, 11, 23, 25, 2, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))), date_str='Thu, 11 Jun 2009 23:25:02 -0700', text="From one solid piece of aluminum comes a MacBook Pro that's thin and light, beautifully streamlined, and durable.\r\n", html='\r\n\r\n\r\n\r\nFrom one solid piece of aluminum comes a MacBook Pro that\'s thin and light, beautifully streamlined, and durable.
\t News Online January 2002 \t DISCOVER \t\r\nlog in to the Account Center Internet ShopCenter(SM) \t \r\n In This Edition: \t Be Charitable\t Get Organized\t Manage Your Finances Better\t \r\n Protect Yourself\t Save More Money \t \r\n\t\r\n \t\r\n DISCOVERÃ\x86 \t\r\n\r\n \r\n\r\nIt's a new year and time for new beginnings. Let us help you out with some possible resolutions. Be sure to read on!\r\n\t\r\n \r\n Be Charitable \r\n$1 Million Donated to the Families of Freedom Scholarship Fundô\r\n\r\nWe're happy to announce that the second $1 million for the Discover Card Relief Efforts program, has been donated to the Families of Freedom Scholarship Fund*.\r\n\r\nFamilies of Freedom Scholarship Fund(TM) The Fund will benefit children and spouses of airplane crew and passengers, World Trade Center and Pentagon employees and visitors, as well as firefighters, emergency medical and law enforcement personnel affected by the attacks of September 11th.\r\n\r\nThanks to you, we're making quick progress toward our goal of $5 million to help America's relief efforts by doing what you do everyday -- using your Discover Card.\r\n\r\nLearn more about the Discover Card Donation Program.\r\n\r\nTo make a personal donation to the Families of Freedom Scholarship Fund, visit www.familiesoffreedom.org .\r\n\r\n\r\nReturn to TOP\r\n \r\n Get Organized \r\nFour More Ways to Manage your Account... \r\n\t\r\nDiscover Interactive With the Discover Inter@ctive e-mail reminders, it's easier than ever to manage your DiscoverÃ\x86 Card Account. In addition to the Discover Inter@ctive e-mail reminders already offered -- there are now four new convenient options that will notify you when: \r\n\r\nA Balance Transfer has Posted\r\nA Merchant Refund or Credit has Posted\r\nA Purchase Exceeds a Specified Amount (set by you)\r\nThe Account Balance Exceeds a Specified Amount (set by you)\r\n\r\nTo view a sample e-mail or to sign up for these new Discover Inter@ctive e-mails, click here today, and start enjoying the benefits right away. \r\n\r\n\r\nReturn to TOP\r\n \r\n Manage Your Finances Better \r\nTRANSFER A BALANCE ONLINE Consolidate Your Holiday Balances and Save! \r\n\r\nAre all those holiday credit balances too much to keep up with? We can make it easier and help you save money! Just transfer those high-rate holiday balances to your Discover Card and get a special balance transfer rate! We can even send you an e-mail when your Balance Transfer has posted to your Discover Card account.\r\n\r\nTransfer a Balance or Learn more . \r\n\r\nReturn to TOP\r\n \r\n Protect Yourself \r\nKNOW FRAUD(TM) Know Fraud and Keep Your Identity Safe \r\n\r\nDiscover Card is a proud participant in the Know Fraudô campaign, a national initiative led by the Federal Government to prevent identity theft. Learn easy ways to protect your identity, how identity thieves work and more.\r\n\r\nGet informed! \r\n\r\nReturn to TOP\r\n \r\n Save More Money \r\nStrunk and White Get a special Cashback Bonus award \r\n\r\nBarnes & Noble.com Get a 7% Cashback BonusÃ\x86 award** when you use your Discover Card to buy anything from Barnes & Noble.com. Plus, get FREE SHIPPING when you purchase two or more items in a single order.\r\n\r\nHurry and stock up on all books, textbooks, movies, posters, music and more, only at Barnes & Noble.com . \r\n\r\nReturn to TOP\r\n \r\nIMPORTANT INFORMATION\r\n\r\nPLEASE DO NOT REPLY TO THIS E-MAIL\r\n\r\nThis e-mail was sent to: emclaug@enron.com\r\n\r\nYou are receiving this e-mail because you are a registered Discover Card Account Center user and have subscribed to receive e-mail newsletters from Discover Card.\r\n\r\nTo unsubscribe click here , log in to the Account Center, and change your settings.\r\n\r\nTo update your e-mail address, or change your Account Center preferences, click here and log in.\r\n\r\nIf you have questions about your Account, please e-mail us through Secure Messages and we will be happy to assist you.\r\n\r\nDiscover Card takes your online security seriously. Enjoy 100% Fraud Protection against unauthorized transactions whenever you use your Discover Card, online or off. So, you can rest easy when you use your Discover Card.\r\n\r\nWe respect your privacy. To view our privacy policy online, visit Discovercard.com \r\n\r\n* Discover Financial Services is not associated with CSFA. Citizens' Scholarship Foundation of America, Families of Freedom Scholarship Fund and all associated logos are trademarks of Citizens' Scholarship Foundation of America.\r\n\r\n** Special Cashback Bonus award Terms and Conditions:\r\nFor Cardmembers who participate in the Cashback Bonus program. This special Cashback Bonus award is separate from your annual Cashback Bonus award you may receive from Discover Card, and is not part of the Discover Card Cashback Bonus award calculation method. If, as of the date we determine whether you meet the terms of this offer, your Account is closed or delinquent, you will not receive this special Cashback Bonus award. Please allow 6 to 8 weeks for your special Cashback Bonus award to be credited to your Discover Card Account. Offer not transferable.\r\n\r\n©2002 Discover Bank. Member FDIC.\r\n\t\r\n \r\n", html="\r\nDISCOVERÃ\x86 CARD \t News Online January 2002 \t DISCOVER \t\r\nlog in to the Account Center Internet ShopCenter(SM) \t \r\n In This Edition: \t Be Charitable\t Get Organized\t Manage Your Finances Better\t \r\n Protect Yourself\t Save More Money \t \r\n\t\r\n \t\r\n DISCOVERÃ\x86 \t\r\n\r\n \r\n\r\nIt's a new year and time for new beginnings. Let us help you out with some possible resolutions. Be sure to read on!\r\n\t\r\n \r\n Be Charitable \r\n$1 Million Donated to the Families of Freedom Scholarship Fundô\r\n\r\nWe're happy to announce that the second $1 million for the Discover Card Relief Efforts program, has been donated to the Families of Freedom Scholarship Fund*.\r\n\r\nFamilies of Freedom Scholarship Fund(TM) The Fund will benefit children and spouses of airplane crew and passengers, World Trade Center and Pentagon employees and visitors, as well as firefighters, emergency medical and law enforcement personnel affected by the attacks of September 11th.\r\n\r\nThanks to you, we're making quick progress toward our goal of $5 million to help America's relief efforts by doing what you do everyday -- using your Discover Card.\r\n\r\nLearn more about the Discover Card Donation Program.\r\n\r\nTo make a personal donation to the Families of Freedom Scholarship Fund, visit www.familiesoffreedom.org .\r\n\r\n\r\nReturn to TOP\r\n \r\n Get Organized \r\nFour More Ways to Manage your Account... \r\n\t\r\nDiscover Interactive With the Discover Inter@ctive e-mail reminders, it's easier than ever to manage your DiscoverÃ\x86 Card Account. In addition to the Discover Inter@ctive e-mail reminders already offered -- there are now four new convenient options that will notify you when: \r\n\r\nA Balance Transfer has Posted\r\nA Merchant Refund or Credit has Posted\r\nA Purchase Exceeds a Specified Amount (set by you)\r\nThe Account Balance Exceeds a Specified Amount (set by you)\r\n\r\nTo view a sample e-mail or to sign up for these new Discover Inter@ctive e-mails, click here today, and start enjoying the benefits right away. \r\n\r\n\r\nReturn to TOP\r\n \r\n Manage Your Finances Better \r\nTRANSFER A BALANCE ONLINE Consolidate Your Holiday Balances and Save! \r\n\r\nAre all those holiday credit balances too much to keep up with? We can make it easier and help you save money! Just transfer those high-rate holiday balances to your Discover Card and get a special balance transfer rate! We can even send you an e-mail when your Balance Transfer has posted to your Discover Card account.\r\n\r\nTransfer a Balance or Learn more . \r\n\r\nReturn to TOP\r\n \r\n Protect Yourself \r\nKNOW FRAUD(TM) Know Fraud and Keep Your Identity Safe \r\n\r\nDiscover Card is a proud participant in the Know Fraudô campaign, a national initiative led by the Federal Government to prevent identity theft. Learn easy ways to protect your identity, how identity thieves work and more.\r\n\r\nGet informed! \r\n\r\nReturn to TOP\r\n \r\n Save More Money \r\nStrunk and White Get a special Cashback Bonus award \r\n\r\nBarnes & Noble.com Get a 7% Cashback BonusÃ\x86 award** when you use your Discover Card to buy anything from Barnes & Noble.com. Plus, get FREE SHIPPING when you purchase two or more items in a single order.\r\n\r\nHurry and stock up on all books, textbooks, movies, posters, music and more, only at Barnes & Noble.com . \r\n\r\nReturn to TOP\r\n \r\nIMPORTANT INFORMATION\r\n\r\nPLEASE DO NOT REPLY TO THIS E-MAIL\r\n\r\nThis e-mail was sent to: emclaug@enron.com\r\n\r\nYou are receiving this e-mail because you are a registered Discover Card Account Center user and have subscribed to receive e-mail newsletters from Discover Card.\r\n\r\nTo unsubscribe click here , log in to the Account Center, and change your settings.\r\n\r\nTo update your e-mail address, or change your Account Center preferences, click here and log in.\r\n\r\nIf you have questions about your Account, please e-mail us through Secure Messages and we will be happy to assist you.\r\n\r\nDiscover Card takes your online security seriously. Enjoy 100% Fraud Protection against unauthorized transactions whenever you use your Discover Card, online or off. So, you can rest easy when you use your Discover Card.\r\n\r\nWe respect your privacy. To view our privacy policy online, visit Discovercard.com \r\n\r\n* Discover Financial Services is not associated with CSFA. Citizens' Scholarship Foundation of America, Families of Freedom Scholarship Fund and all associated logos are trademarks of Citizens' Scholarship Foundation of America.\r\n\r\n** Special Cashback Bonus award Terms and Conditions:\r\nFor Cardmembers who participate in the Cashback Bonus program. This special Cashback Bonus award is separate from your annual Cashback Bonus award you may receive from Discover Card, and is not part of the Discover Card Cashback Bonus award calculation method. If, as of the date we determine whether you meet the terms of this offer, your Account is closed or delinquent, you will not receive this special Cashback Bonus award. Please allow 6 to 8 weeks for your special Cashback Bonus award to be credited to your Discover Card Account. Offer not transferable.\r\n\r\n©2002 Discover Bank. Member FDIC.\r\n\t\r\n \r\n", diff --git a/tests/messages_data/error_emails/content_transfer_encoding_plain.py b/tests/messages_data/error_emails/content_transfer_encoding_plain.py index 9545525..4a9fe00 100644 --- a/tests/messages_data/error_emails/content_transfer_encoding_plain.py +++ b/tests/messages_data/error_emails/content_transfer_encoding_plain.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=('baocqccyw@hq.lindsayelec.com',), - date=datetime.datetime(2005, 3, 27, 19, 11, 59, tzinfo=datetime.timezone(datetime.timedelta(-1, 64800))), + date=datetime.datetime(2005, 3, 27, 19, 11, 59, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=64800))), date_str='Sun, 27 Mar 2005 19:11:59 -0600', text='acidness\r\n\r\n Exciting Easter Investor Alert\r\n\r\nTicker:IGTS\r\nCurrent:0.01\r\nRating:Big Mover Next Week\r\n\r\nThis st0ck receives our top rating - 10 out of 10\r\nBreaking NEWS (released last night): Intelligent\r\n\r\nSports, Inc. Offers Affordable Alternative\r\nThis is the first news release the company put\r\nout since November - this is going to be exciting\r\nstock play\r\n\r\nJump on board while you can - Don\'t regret It later\r\n\r\nAbout the Company:\r\n\r\nYouth And Amateur Sports Company Poised For Growth \r\n\r\nIntelligent Sports, Inc. is a publicly held company\r\ntrading on the OTC markets under the ticker symbol\r\nIGTS. Intelligent Sports will be the holding company\r\nfor several sports related businesses. Intelligent\r\nSports provides business units with strategic guidance\r\nand support in the areas of marketing, sales,\r\nsponsorships, partnerships, policy & procedures,\r\nfinance and expansion. Their initial business launch\r\nis to develop youth and amateur sports centers\r\nthroughout the country that offers a year-round\r\nsports calendar with emphasis on youth and amateur\r\nsports programs and skill development. Their plan\r\nis to expand this concept into membership-based,\r\nmulti-purpose sports facilities that will promote\r\na diverse range of sports programs, leagues,\r\ntournaments, clinics, individual sports skill\r\ndevelopment and nutritional training.\r\n\r\nFresh News:\r\n\r\nUPLAND, Calif., Mar 22, 2005 (PRIMEZONE via COMTEX)\r\nParticipation fees for school sports programs\r\ncontinues to escalate, at the same time record\r\nobesity levels in children are being reported by\r\nthe Center for Disease Control. Intelligent Sports,\r\nInc. (Pink Sheets:IGTS) is working to do their part\r\nto curb this alarming trend of by offering affordable\r\nfitness centers to kids. \r\n\r\n"The time when school sports programs had enrollment\r\nfees of $10 is fading," said former NBA star and\r\nIntelligent Sports, Inc. board member, Reggie Theus.\r\n"Not every parent is willing to pay $300 enrollment\r\nfees for a sport their child is only casually\r\ninterested in; some parents can\'t afford to pay that\r\nmuch for a sport their child excels at."\r\n\r\nAccording to the President\'s Council on Physical\r\nFitness and Sports, only 17 percent of middle and\r\njunior high schools and 2 percent of senior high\r\nschools require daily physical activity for all\r\nstudents. Hoping to fill the gap, The Sports Zone\r\nby Intelligent Sports will support a wide range of\r\nmembership-based after-school sports programs,\r\nweekend leagues and tournaments promoting individual\r\nathletic skill development, the concepts of teamwork\r\nand discipline, and a love of the game.\r\n\r\nThe Sports Zone opened in early October in Upland,\r\nCalifornia. It encompasses a 10,000 square foot\r\nfacility featuring two basketball courts and caters\r\nto court sports including basketball, volleyball,\r\ncheerleading, and wrestling, and also has the ability\r\nto host soccer, football and other field-related\r\nathletic activity within the complex arena.\r\n\r\n+++++++++++++++++++++++++++\r\nIGTS is expected to Explode All Next Week Be Sure\r\nTo Get It Immediately, and profit big!\r\n++++++++++++++++++++++++++++\r\n\r\nDisclaimer\r\n\r\nThis publication is not registered investment advisor,\r\nThe information presented above is not an offer to\r\nbuy or sell securities it contains "forward looking\r\nstatements" within the meaning of Section 27A of the\r\nSecurities Act of 1933 and Section 21B of the\r\nSecurities Exchange Act of 1934. Any statements that\r\nexpress or involve discussions with respect to\r\npredictions, goals, expectations, beliefs, plans,\r\nprojections, objectives, assumptions or future events\r\nor performance are not statements of historical fact\r\nand may be "forward looking statements." In compliance\r\nwith Section 17(b), the publishers of this report\r\ndisclose the holding of IGTS shares prior to the\r\npublication of this report. Be aware of an inherent\r\nconflict of interest resulting from such holdings\r\ndue to our intent to profit from the liquidation\r\nof these shares. Shares may be sold at any time,\r\neven after positive statements have been made\r\nregarding the above company. Since we own shares,\r\nthere is an inherent conflict of interest in our\r\nstatements and opinions. Readers of this publication\r\nare cautioned not to place undue reliance on forward\r\nlooking statements, which are based on certain\r\nassumptions and expectations involving various risks\r\nand uncertainties, that could cause results to differ\r\nmaterially from those set forth in the forward- looking\r\nstatements. Please be advised that nothing within this\r\nemail shall constitute a solicitation or an offer to\r\nbuy or sell any security mentioned herein. This newsletter\r\nis neither a registered investment advisor nor affiliated\r\nwith any broker or dealer. All statements made are our\r\nexpress opinion only and should be treated as such. We\r\nmay own, buy and sell any securities mentioned at any\r\ntime. This report includes forward-looking statements\r\nwithin the meaning of The Private Securities Litigation\r\nReform Act of 1995. This newsletter was paid\r\n41 500, from third party to send this report. Please do\r\nyour own diligence before investing in any profiled company.\r\nYou may lose money from investing. caddis worktable\r\n', html='', diff --git a/tests/messages_data/error_emails/content_transfer_encoding_qp_with_space.py b/tests/messages_data/error_emails/content_transfer_encoding_qp_with_space.py index 9563fb7..bf54314 100644 --- a/tests/messages_data/error_emails/content_transfer_encoding_qp_with_space.py +++ b/tests/messages_data/error_emails/content_transfer_encoding_qp_with_space.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2004, 11, 7, 18, 23, 56, tzinfo=datetime.timezone(datetime.timedelta(-1, 75600))), + date=datetime.datetime(2004, 11, 7, 18, 23, 56, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=75600))), date_str='Sun, 07 Nov 2004 18:23:56 -0300', text="If you're in need of a good RX site for online purchases, we are your answer.\r\n\r\nWith Tens of Thousands of happy customers who saved huge, you can't go wrong.\r\n\r\nhttp://magyar8stator.com/26 Lots More Info Here\r\n\r\nAbove URL is for more info & if you are interested.", html='If you\'re in need of a good RX site for online purchases, we are your answer.
\r\n
\r\nWith Tens of Thousands of happy customers who saved huge, you can\'t go wrong.
\r\n
\r\n
Lots More Info Here
\r\n
\r\n
\r\nAbove URL is for more info & if you are interested.
\r\n\r\n\r\n\r\n', diff --git a/tests/messages_data/error_emails/content_transfer_encoding_spam.py b/tests/messages_data/error_emails/content_transfer_encoding_spam.py index ba6fbad..14d5e18 100644 --- a/tests/messages_data/error_emails/content_transfer_encoding_spam.py +++ b/tests/messages_data/error_emails/content_transfer_encoding_spam.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2001, 8, 19, 6, 31, 3, tzinfo=datetime.timezone(datetime.timedelta(-1, 61200))), + date=datetime.datetime(2001, 8, 19, 6, 31, 3, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))), date_str='Sun, 19 Aug 2001 06:31:03 -0700', text='middagh oldusercompare\r\nothermachine one-twist natascha mz05 ntsoft netvladi.Pimenovr\r\n\r\n\r\nWe supply high quality medications vladi.Pimenovy mail order at very competitive prices\r\nand provide a professional, convenient and affordavladi.Pimenovle means of purchasing\r\nyour presc_ription medicines online\r\nDepresion-an"xiety, Antivladi.Pimenoviotic, Wt Loss, Women\'s Health, Mus-cle Relaxants,\r\nSleeping Aids, Allergies and Paain Relief. Your tastes will vladi.Pimenove met here with\r\n600 medications \r\nHscearpomh http://fi.com.adherentgood.com/?2NX1q/vladi.Pimenoviayimh\r\n\r\n\r\nmore people are using it for quicker rx refill\r\n\r\n\r\nWhen you\'re not with me?Well darling Im telling you now\r\nIm no good without you anyhowAnd have I told you lately that I love you\r\n\r\nOr you and I, If I only had wings of a little angel\r\n\r\n\r\n', html='', diff --git a/tests/messages_data/error_emails/content_transfer_encoding_text-html.py b/tests/messages_data/error_emails/content_transfer_encoding_text-html.py index a335ede..ead8d2c 100644 --- a/tests/messages_data/error_emails/content_transfer_encoding_text-html.py +++ b/tests/messages_data/error_emails/content_transfer_encoding_text-html.py @@ -8,7 +8,7 @@ cc=('rait@bruce-guenter.dyndns.org',), bcc=(), reply_to=('abhijit.862153drinnan@datavalet.com',), - date=datetime.datetime(2005, 5, 6, 15, 55, 1, tzinfo=datetime.timezone(datetime.timedelta(0, 14400))), + date=datetime.datetime(2005, 5, 6, 15, 55, 1, tzinfo=datetime.timezone(datetime.timedelta(seconds=14400))), date_str='Fri, 06 May 2005 15:55:01 +0400', text='', html='Hello,

\r\n\r\nYou have qualified for the lowest rate in years.
\r\nYou could get over $400,000 for as little as $500 a month.
\r\nLow rates are fixed no matter what.

\r\n\r\nPlease visit the link below to verify your information:
\r\nApproval Form

\r\n\r\nBest Regards,
\r\nchianfong cuthbert, Account Manager
\r\nReynolds Associates, LLC

\r\n

\r\n--------------------
\r\nif you received this in error: re-m0-ve\r\n', diff --git a/tests/messages_data/error_emails/content_transfer_encoding_with_8bits.py b/tests/messages_data/error_emails/content_transfer_encoding_with_8bits.py index 0fd1885..ee917f9 100644 --- a/tests/messages_data/error_emails/content_transfer_encoding_with_8bits.py +++ b/tests/messages_data/error_emails/content_transfer_encoding_with_8bits.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=('announcements@provantage.com',), - date=datetime.datetime(2001, 12, 4, 17, 11, 25, tzinfo=datetime.timezone(datetime.timedelta(-1, 68460))), + date=datetime.datetime(2001, 12, 4, 17, 11, 25, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=68460))), date_str='Tue, 04 Dec 2001 17:11:25 -0459', text='', html='\r\n\r\n\r\nPROVANTAGE.COM : The Original Advantage\r\n\r\n\r\n\r\n

\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n December 04, 2001\r\n \r\n

Can\'t\r\n read this email? Click\r\n here

Issue#:\r\n e13011\r\n

To\r\n unsubscribe from the 
\r\n Original Advantage Click\r\n here
\r\n
(Do Not Reply to this email)

\r\n
PROVANTAGE\r\n Customer: jeff_dasovich@enron.com
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\nHoliday Gift \r\nIdeas for the Computer Professional! \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n\r\n11Mbps Wireless Cable/DSL Router
By Belkin\r\n
\r\n\r\n\r\n\r\n\r\n
\r\nThe Belkin Wireless Cable/DSL Gateway Router lets you share files and a broadband Internet connection among all your computers-without using cables. It\'s ...More\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
  $201.42
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n\r\nNostromo n45 Dual Analog USB Gamepad
By Belkin\r\n
\r\n\r\n\r\n\r\n\r\n
\r\nThe Nostromo n45 USB game pad\'s advanced ergonomic design, dual analog and USB-compatibility make the n45 innovative PC game pad to hit the market in years. ...More\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
  $12.31
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n\r\nNew!

\r\nPlus! for Windows XP
By Microsoft\r\n
\r\n\r\n\r\n\r\n\r\n
\r\nPersonalize your computer experience like never before.\r\n
Built exclusively to take advantage of the power of Windows XP, MS Plus! delivers exciting ...More\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
  $33.47
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n\r\niPAQ H3670 Color Pocket PC
By Compaq\r\n
\r\n\r\n\r\n\r\n\r\n
\r\nYou want to do more with life? The iPAQ Pocket PC H3670 is designed to ride along on the voyage of life-in your pocket or mounted to your mountain bike. ...More\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
  $465.50
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n\r\nFireWire Hub 6-Port
By IOGEAR\r\n
\r\n\r\n\r\n\r\n\r\n
\r\nIOGEAR\'s FireWire hubs provide 1394a compliant ports that support data transfer rates of 100, 200 and 400 Mbps (megabits per second), and automatically ...More\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
  $60.09
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n\r\nHomeConnect 10/100 Mbps Dual Speed Ethernet 5-Port
By 3Com\r\n
\r\n\r\n\r\n\r\n\r\n
\r\nShare an Internet connection among several computers (Your Internet service provider may charge additional fees.). Surf Web sites, send e-mail, download ...More\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
  $41.76
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n\r\nNew!

\r\nLinks 2001 Expansion Pack Volume 1
By Microsoft\r\n
\r\n\r\n\r\n\r\n\r\n
\r\nJoin PGA Tour pros Mike Weir & Keith Clearwater on 4 new courses designed for Links 2001:
  • The Canyons Course at Bighorn, Thanksgiving Point ...More\r\n
  • \r\n
    \r\n
    \r\n\r\n\r\n\r\n
      $20.93
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n\r\n\r\nMavica CD1000 Digital Cam 12Bit 2.1 Pixel 3" CD-R
    By Sony\r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\nStart with a high capacity, 156 MB 3" CD-R plus a high resolution, 2.1 megapixel image sensor. Attach it to a high-powered 52mm 10x optical zoom lens and ...More\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n
      $908.56
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n\r\n\r\nWireless Bluetooth PC Card
    By 3Com\r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\nPersonal Connections - Instantly \r\n
    For spontaneous connections between your notebook PC and other Bluetooth devices, as well as "light" network ...More\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n
      $109.31
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n\r\n\r\nMultiSync LCD1830 18in LCD Flat Panel Display
    By NEC/Mitsubishi\r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\nFor users who need superior image quality in a small space, the MultiSync LCD Series monitors deliver bright, sharp screen performance in a slim, lightweight ...More\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n
      $833.05
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n\r\n\r\nNew!

    \r\nMechCommander 2
    By Microsoft\r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\nTake control of an entire company of the most fearsome military machines in history - BattleMechs!\r\n
    As a MechCommander, you command a unit of ...More\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n
      $24.02
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n\r\n\r\nDSP-500 Digitally-Enhanced USB Gaming/Multimedia
    By Plantronics\r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\nPlantronics\' DSP-500 digitally-enhanced gaming/multimedia headset with full-range stereo sound. Perfect for multimedia applications such as games, CDs ...More\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n
      $78.99
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n\r\n\r\nRipGo! Handheld 4X6 Mini USB CD Burner/MP3 Player
    By Imation\r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\nWhether you\'re a music enthusiast or a mobile business professional, the Imation RipGO! device will satisfy the creative urges of your imagination. Designed ...More\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n
      $369.96
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n\r\n\r\nCD-RW Drive 16X/10X/40X USB 2.0 Drive w/USB 2.0
    By IOGEAR\r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\nDrive. Unlock the power of the new Hi-Speed USB 2.0. IOGEAR\'s IMPULSE Drive. Burns at a blazing 16x speed, allowing you to create CDs faster than ever ...More\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n
      $188.54
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n\r\n\r\nSpressa CRX175A-A1 Drive 24x/10x/40x Int EIDE
    By Sony\r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\nReceive a $30 rebate direct from Sony on SNYC97M purchases between 10/01/01 and 12/31/01. \r\n... More\r\n\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n
      $145.46
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n\r\n\r\nDigital Voice Recorder w/No Software
    By Sony\r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\nFeatures Include
  • World\'s first memory stick Digital voice recorder
  • Uses removable MS (memory stick)
  • Recording time: 63 min (SP)/131 min ...More\r\n
  • \r\n
    \r\n
    \r\n\r\n\r\n\r\n
      $195.68
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n 
    \r\n
    \r\n
    \r\n\r\n
    \r\n  
    \r\n
    \r\n
    \r\n

    Web\r\n Address: www.PROVANTAGE.com 
    \r\n  Toll Free: 800-336-1166     Fax:\r\n330-494-5260     email: sales@provantage.com
    \r\n

    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

    \r\n Privacy\r\n Policy
    | Terms &\r\n Conditions | FREE\r\n Catalog
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n

    ©2001\r\n PROVANTAGE Corporation, 7249 Whipple Ave. NW, North Canton, OH 44720

    Products,\r\n prices, terms, conditions, or offers may change at any time. Company\r\n and/or product names are generally trademarks, or registered trademarks\r\n of their respective companies. Some promotional text may be copyrighted\r\n by the product\'s manufacturer. 
    \r\n \r\n
    \r\n
    \r\n \r\n The\r\n Original Advantage promotional email is delivered only to customers of\r\n PROVANTAGE Corporation. PROVANTAGE customers have purchased products in\r\n the past and submitted their email address as part of the checkout\r\n process. Or, customers have entered their name in the "Add to Email\r\n List" box on the PROVANTAGE.com home page. Any customer may unsubscribe from the list at any time by going\r\n to http://www.provantage.com/unsubscribe.htm.\r\n The email address is permanently removed from additional promotional\r\n electronic mailings, and will not be reactivated unless requested by the\r\n customer.  \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n

    \r\n \r\n

    \r\n

    \r\nBizRate Customer Certified (GOLD) Site \r\n

    \r\n
    \r\n
    \r\n\r\n\r\n\r\n', diff --git a/tests/messages_data/error_emails/content_transfer_encoding_with_semi_colon.py b/tests/messages_data/error_emails/content_transfer_encoding_with_semi_colon.py index 36e7169..2d5c13d 100644 --- a/tests/messages_data/error_emails/content_transfer_encoding_with_semi_colon.py +++ b/tests/messages_data/error_emails/content_transfer_encoding_with_semi_colon.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2005, 6, 29, 22, 57, 10, tzinfo=datetime.timezone(datetime.timedelta(-1, 64800))), + date=datetime.datetime(2005, 6, 29, 22, 57, 10, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=64800))), date_str='Wed, 29 Jun 2005 22:57:10 -0600', text='Dear Homeowner,\r\n\r\n \r\n\r\nYou have been pre-approved for a $402,000 Home Loan at a 3.45% Fixed Rate.\r\n\r\nThis offer is being extended to you unconditionally and your credit is in no\r\nway a factor.\r\n\r\n \r\n\r\nTo take Advantage of this Limited Time opportunity all\r\n\r\nwe ask is that you visit our Website and complete\r\n\r\nthe 1 minute post Approval Form.\r\n\r\n \r\n\r\nEnter Here \r\n\r\n \r\n\r\nSincerely,\r\n\r\n \r\n\r\nEsteban Tanner\r\n\r\nRegional CEO\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\nTuuuuurn oooooff notiiificatiiiiions heeeeeeere.\r\n \r\n\r\n', html='\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
    \r\n\r\n

    Dear Homeowner,

    \r\n\r\n

     

    \r\n\r\n

    You have been pre-approved for a $402,000 Home Loan at a\r\n3.45% Fixed Rate.

    \r\n\r\n

    This offer is being extended to you unconditionally and your\r\ncredit is in no way a factor.

    \r\n\r\n

     

    \r\n\r\n

    To take Advantage of this Limited Time opportunity all

    \r\n\r\n

    we ask is that you visit our Website and complete

    \r\n\r\n

    the 1 minute post Approval Form.

    \r\n\r\n

     

    \r\n\r\n

    Enter Here\r\n

    \r\n\r\n

     

    \r\n\r\n

    Sincerely,

    \r\n\r\n

     

    \r\n\r\n

    Esteban Tanner

    \r\n\r\n

    Regional CEO

    \r\n\r\n

     

    \r\n\r\n

     

    \r\n\r\n

     

    \r\n\r\n

     

    \r\n\r\n

     

    \r\n\r\n

     

    \r\n\r\n

     

    \r\n\r\n

     

    \r\n\r\n

     

    \r\n\r\n

     

    \r\n\r\n

     

    \r\n\r\n

     

    \r\n\r\n

     

    \r\n\r\n

     

    \r\n\r\n

     

    \r\n\r\n

     

    \r\n\r\n

     

    \r\n\r\n

     

    \r\n\r\n

     

    \r\n\r\n

     

    \r\n\r\n

    Tuuuuurn oooooff notiiificatiiiiions heeeeeeere.

    \r\n\r\n
    \r\n\r\n\r\n\r\n\r\n', diff --git a/tests/messages_data/error_emails/content_transfer_encoding_x_uuencode.py b/tests/messages_data/error_emails/content_transfer_encoding_x_uuencode.py index d8b3f37..43aa9b8 100644 --- a/tests/messages_data/error_emails/content_transfer_encoding_x_uuencode.py +++ b/tests/messages_data/error_emails/content_transfer_encoding_x_uuencode.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2002, 1, 10, 13, 59, 53, tzinfo=datetime.timezone(datetime.timedelta(-1, 57600))), + date=datetime.datetime(2002, 1, 10, 13, 59, 53, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))), date_str='Thu, 10 Jan 2002 13:59:53 -0800', text='Attached are the comments of the Public Generating Pool.\r\n--\r\n_________________________________\r\nLon L. Peters\r\nNorthwest Economic Research, Inc.\r\n6765 S.W. Preslynn Drive\r\nPortland, Oregon 97225-2668\r\n503-203-1539 (voice)\r\n503-203-1569 (fax)\r\n503-709-5942 (mobile)\r\nlpeters@pacifier.com\r\n\r\nNOTICE: This communication and its attachments, if any, may contain\r\nsensitive, privileged, or other confidential information. If you are\r\nnot the intended recipient or believe that you have received this\r\ncommunication in error, please notify the sender of this\r\ncommunication and delete the copy you received from all storage\r\ndevices. In addition, please do not print, copy, retransmit,\r\nforward, disseminate, or otherwise use this communication or its\r\nattachments, if any. Thank you.\r\n', html='', diff --git a/tests/messages_data/error_emails/empty_group_lists.py b/tests/messages_data/error_emails/empty_group_lists.py index 9bde90f..3a55c67 100644 --- a/tests/messages_data/error_emails/empty_group_lists.py +++ b/tests/messages_data/error_emails/empty_group_lists.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=('western.uniontransfer1@hotmail.fr',), - date=datetime.datetime(2009, 12, 3, 10, 50, 22, tzinfo=datetime.timezone(datetime.timedelta(-1, 57600))), + date=datetime.datetime(2009, 12, 3, 10, 50, 22, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))), date_str='Thu, 3 Dec 2009 10:50:22 -0800 (PST)', text='Attention Beneficiary:\r\n\xa0\r\nThis is to officially informed you that we have concluded arrangements to effect your payment of $1,500,000.00 United States Dollars through WESTERN UNION Swift Money transfer services today, but the maximum amount you will be receiving every day starting from tomorrow is $5,000.00 as reflected in our transfer system daily until the funds is completely transferred.\r\n\xa0\r\nThis special arrangement is being used to avoid all scrupulous demands by both the states and federal authorities that have previously delayed your payment till date; we shall need your maximum co-operation to ensure that strictness and confidence is maintained to avoid any further delays.You are to discard any request asking you to send money to any agency such as courier company,Bank and Security Agency as there are no such and any money committed their will be regret, so be wise. \r\n\xa0\r\nPlease contact the Accredited WESTERN UNION Agent for the details of your first payment of $5,000 United States Dollars and reconfirm your correct details that you will like the first transfer to be program with such as Receivers Name, destination where you will like the transfer to be send to and your cell phone number for urgent communication if the need arise.\r\nFill your details below for reference purposes:\r\n*NAME OF CUSTOMER: .........\r\n*ADDRESS: ..........\r\n*COUNTRY: .................\r\n*TEL: .....................\r\n*OCCUPATION: ..............\r\n\xa0\r\nRemember your obligation to secure an International Remittance Form as stated in United Nation act of (FRT209) that will help build and renew your transfer file for record keeping as a way of checkmating the present Economics crisis situations.\r\nContact the below Electronic Transfer unit of WESTERN UNION for immediate programing of your first transfer:\r\n\xa0\r\nName: Rev.John Ntepe\r\nMobile:+229 97292685\r\nEmail: (western.union1891@live.fr) or (westerrnunion_2@sify.com)\r\n\r\n\xa0\r\nRegards.\r\nThanks and God Bless.\r\nMrs.Cecil Edward\r\n\r\n\r\n-- \r\nFilter4: This message has been scanned for viruses and\r\ndangerous content by MailScanner, and is\r\nbelieved to be clean.\r\n\r\n', html='
    Attention Beneficiary:
     
    This is to officially informed you that we have concluded arrangements to effect your payment of $1,500,000.00 United States Dollars through WESTERN UNION Swift Money transfer services today, but the maximum amount you will be receiving every day starting from tomorrow is $5,000.00 as reflected in our transfer system daily until the funds is completely transferred.
     
    This special arrangement is being used to avoid all scrupulous demands by both the states and federal authorities that have previously delayed your payment\r\n till date; we shall need your maximum co-operation to ensure that strictness and confidence is maintained to avoid any further delays.You are to discard any request asking you to send money to any agency such as courier company,Bank and Security Agency as there are no such and any money committed their will be regret, so be wise.
     
    Please contact the Accredited WESTERN UNION Agent for the details of your first payment of $5,000 United States Dollars and reconfirm your correct details that you will like the first transfer to be program with such as Receivers Name, destination where you will like the transfer to be send to and your cell phone number for urgent communication if the need arise.
    Fill your details below for reference\r\n purposes:
    *NAME OF CUSTOMER: .........
    *ADDRESS: ..........
    *COUNTRY: ..................
    *TEL: .....................
    *OCCUPATION: ..............
     
    Remember your obligation to secure an International Remittance Form as stated in United Nation act of (FRT209) that will help build and renew your transfer file for record keeping as a way of checkmating the present Economics crisis situations.
    Contact the\r\n below Electronic Transfer unit of WESTERN UNION for immediate programing of your first transfer:
     
    Name: Rev.John Ntepe
    Mobile:+229 97292685
    Email: (western.union1891@live.fr) or (westerrnunion_2@sify.com)

     
    Regards.
    Thanks and God Bless.
    Mrs.Cecil Edward


    -- \r\n
    This message has been scanned for viruses and\r\n
    dangerous content by\r\nMailScanner, and is\r\n
    believed to be clean.\r\n\r\n\r\n', diff --git a/tests/messages_data/error_emails/empty_in_reply_to.py b/tests/messages_data/error_emails/empty_in_reply_to.py index ffc8c64..af1f4ad 100644 --- a/tests/messages_data/error_emails/empty_in_reply_to.py +++ b/tests/messages_data/error_emails/empty_in_reply_to.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=('ak@g.com',), - date=datetime.datetime(2009, 9, 19, 19, 49, 36, tzinfo=datetime.timezone(datetime.timedelta(0, 14400))), + date=datetime.datetime(2009, 9, 19, 19, 49, 36, tzinfo=datetime.timezone(datetime.timedelta(seconds=14400))), date_str='Sat, 19 Sep 2009 19:49:36 +0400', text='', html='', diff --git a/tests/messages_data/error_emails/encoding_madness.py b/tests/messages_data/error_emails/encoding_madness.py index 537423d..fb27b16 100644 --- a/tests/messages_data/error_emails/encoding_madness.py +++ b/tests/messages_data/error_emails/encoding_madness.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=('',), - date=datetime.datetime(2010, 9, 22, 2, 30, 53, tzinfo=datetime.timezone(datetime.timedelta(-1, 68400))), + date=datetime.datetime(2010, 9, 22, 2, 30, 53, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=68400))), date_str='Wed, 22 Sep 2010 02:30:53 -0500', text='Body Text', html='', diff --git a/tests/messages_data/error_emails/header_fields_with_empty_values.py b/tests/messages_data/error_emails/header_fields_with_empty_values.py index ef40c2f..5b7c764 100644 --- a/tests/messages_data/error_emails/header_fields_with_empty_values.py +++ b/tests/messages_data/error_emails/header_fields_with_empty_values.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2009, 10, 30, 20, 7, 42, tzinfo=datetime.timezone(datetime.timedelta(0, 3600))), + date=datetime.datetime(2009, 10, 30, 20, 7, 42, tzinfo=datetime.timezone(datetime.timedelta(seconds=3600))), date_str='Fri, 30 Oct 2009 20:07:42 +0100', text='\r\n\r\n--\r\nJørn Støylen -- http://www.prikkprikkprikk.no\r\n924 38 051 -- jorn@prikkprikkprikk.no\r\n\r\n', html='', diff --git a/tests/messages_data/error_emails/missing_body.py b/tests/messages_data/error_emails/missing_body.py index 804ab82..186d439 100644 --- a/tests/messages_data/error_emails/missing_body.py +++ b/tests/messages_data/error_emails/missing_body.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2001, 11, 27, 15, 2, 35, tzinfo=datetime.timezone(datetime.timedelta(-1, 57600))), + date=datetime.datetime(2001, 11, 27, 15, 2, 35, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))), date_str='Tue, 27 Nov 2001 15:02:35 -0800', text='', html='', diff --git a/tests/messages_data/error_emails/new_line_in_to_header.py b/tests/messages_data/error_emails/new_line_in_to_header.py index 2c5e835..63a7517 100644 --- a/tests/messages_data/error_emails/new_line_in_to_header.py +++ b/tests/messages_data/error_emails/new_line_in_to_header.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2010, 10, 13, 7, 53, 4, tzinfo=datetime.timezone(datetime.timedelta(-1, 61200))), + date=datetime.datetime(2010, 10, 13, 7, 53, 4, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))), date_str='Wed, 13 Oct 2010 07:53:04 -0700', text='\r\n\r\n \r\n 2010-10-13T07:53:04-09:00\r\n ... (not important) ...', html='', diff --git a/tests/messages_data/error_emails/weird_to_header.py b/tests/messages_data/error_emails/weird_to_header.py index a0e3e03..4885bee 100644 --- a/tests/messages_data/error_emails/weird_to_header.py +++ b/tests/messages_data/error_emails/weird_to_header.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2010, 10, 14, 23, 25, 6, tzinfo=datetime.timezone(datetime.timedelta(-1, 72000))), + date=datetime.datetime(2010, 10, 14, 23, 25, 6, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=72000))), date_str='14 Oct 2010 23:25:06 -0400', text='\r\nCONTACT:\r\n\r\n\r\n\r\n\r\nCOMMENT:\r\n\r\n\r\nPAGE THEY WERE ON:\r\n\r\n', html='', diff --git a/tests/messages_data/forwarded_message.py b/tests/messages_data/forwarded_message.py index a5cc150..219004c 100644 --- a/tests/messages_data/forwarded_message.py +++ b/tests/messages_data/forwarded_message.py @@ -8,9 +8,9 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2017, 10, 12, 9, 41, 56, tzinfo=datetime.timezone(datetime.timedelta(0, 18000))), + date=datetime.datetime(2017, 10, 12, 9, 41, 56, tzinfo=datetime.timezone(datetime.timedelta(seconds=18000))), date_str='Thu, 12 Oct 2017 09:41:56 +0500', - text='\r\n', + text='\r\nНовый заказ №28922 http://group.company.ru/ru/order/28922/process/\r\nСоздал: \r\nКлиент Ковчег (Гусев Дмитрий)\r\n\r\nСегменты:\r\n\r\n- Москва - Тель-Авив, some-889, 15.03.2018, эконом: (15 взр.)\r\n\r\n- Тель-Авив - Москва, some-890, 22.03.2018, эконом: (15 взр.)', html='\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n Новый заказ №28922\r\n \r\n\r\n \r\n \r\n\r\n', headers={'subject': ('=?UTF-8?B?0YHRgtCw0YLRg9GB?=',), 'to': ('Jessica Schmidt ,\r\n\t=?iso-8859-1?Q?Rabea=2EBart=F6lke=40uni=2Ede?= <\udcd1\udc8f\udce4\udcbd\udca0Rabea.Bart\udcc3\udcb6lke@uni.de>',), 'from': ('i.kor@company.ru',), 'message-id': ('<2405271c-86ac-0a65-e50c-d1ebccfcc644@company.ru>',), 'date': ('Thu, 12 Oct 2017 09:41:56 +0500',), 'mime-version': ('1.0',), 'in-reply-to': ('<20171011085432.15374.20485@web.hades.company>',), 'content-type': ('multipart/mixed;\r\n boundary="------------BF90926EC9DF73443A6B8F28"',), 'content-language': ('ru',)}, attachments=[ diff --git a/tests/messages_data/mime_emails/raw_email11.py b/tests/messages_data/mime_emails/raw_email11.py index b1111b4..bc75ff0 100644 --- a/tests/messages_data/mime_emails/raw_email11.py +++ b/tests/messages_data/mime_emails/raw_email11.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2005, 4, 27, 14, 15, 31, tzinfo=datetime.timezone(datetime.timedelta(-1, 61200))), + date=datetime.datetime(2005, 4, 27, 14, 15, 31, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))), date_str='Wed, 27 Apr 2005 14:15:31 -0700', text='\r\nXXXXX Xxxxx\r\n', html='', diff --git a/tests/messages_data/mime_emails/raw_email12.py b/tests/messages_data/mime_emails/raw_email12.py index c32cfec..77898a0 100644 --- a/tests/messages_data/mime_emails/raw_email12.py +++ b/tests/messages_data/mime_emails/raw_email12.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2005, 6, 6, 22, 21, 22, tzinfo=datetime.timezone(datetime.timedelta(0, 7200))), + date=datetime.datetime(2005, 6, 6, 22, 21, 22, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200))), date_str='Mon, 6 Jun 2005 22:21:22 +0200', text='This is the first part.\r\n', html='', diff --git a/tests/messages_data/mime_emails/raw_email2.py b/tests/messages_data/mime_emails/raw_email2.py index 282821c..9cdf6ce 100644 --- a/tests/messages_data/mime_emails/raw_email2.py +++ b/tests/messages_data/mime_emails/raw_email2.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=('xxxxxxxxx.xxxxxxx@gmail.com',), - date=datetime.datetime(2005, 5, 8, 14, 9, 11, tzinfo=datetime.timezone(datetime.timedelta(-1, 68400))), + date=datetime.datetime(2005, 5, 8, 14, 9, 11, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=68400))), date_str='Sun, 8 May 2005 14:09:11 -0500', text='We should not include these files or vcards as attachments.\r\n\r\n---------- Forwarded message ----------\r\nFrom: xxxxx xxxxxx \r\nDate: May 8, 2005 1:17 PM\r\nSubject: Signed email causes file attachments\r\nTo: xxxxxxx@xxxxxxxxxx.com\r\n\r\n\r\nHi,\r\n\r\nJust started to use my xxxxxxxx account (to set-up a GTD system,\r\nnatch) and noticed that when I send content via email the signature/\r\ncertificate from my email account gets added as a file (e.g.\r\n"smime.p7s").\r\n\r\nObviously I can uncheck the signature option in the Mail compose\r\nwindow but how often will I remember to do that?\r\n\r\nIs there any way these kind of files could be ignored, e.g. via some\r\nsort of exclusions list?\r\n', html='', diff --git a/tests/messages_data/mime_emails/raw_email4.py b/tests/messages_data/mime_emails/raw_email4.py index aafbd80..c921bf2 100644 --- a/tests/messages_data/mime_emails/raw_email4.py +++ b/tests/messages_data/mime_emails/raw_email4.py @@ -8,9 +8,9 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2005, 5, 8, 12, 30, 8, tzinfo=datetime.timezone(datetime.timedelta(-1, 68400))), + date=datetime.datetime(2005, 5, 8, 12, 30, 8, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=68400))), date_str='Sun, 8 May 2005 12:30:08 -0500', - text='Some text\r\n', + text="Some text\r\n\r\n--\r\nThis Orange Multi Media Message was sent wirefree from an Orange\r\nMMS phone. If you would like to reply, please text or phone the\r\nsender directly by using the phone number listed in the sender's\r\naddress. To learn more about Orange's Multi Media Messaging\r\nService, find us on the Web at xxx.xxxx.xxx.uk/mms\r\n\r\n\r\n--mimepart_427e4cb4ca329_133ae40413c81ef-\r\n", html='', headers={'return-path': ('',), 'received': ('from xxx.xxxx.xxx by xxx.xxxx.xxx with ESMTP id 6AAEE3B4D23 for ; Sun, 8 May 2005 12:30:23 -0500', 'from xxx.xxxx.xxx by xxx.xxxx.xxx with ESMTP id j48HUC213279 for ; Sun, 8 May 2005 12:30:13 -0500', 'from conversion-xxx.xxxx.xxx.net by xxx.xxxx.xxx id <0IG600901LQ64I@xxx.xxxx.xxx> for ; Sun, 8 May 2005 12:30:12 -0500', 'from agw1 by xxx.xxxx.xxx with ESMTP id <0IG600JFYLYCAxxx@xxxx.xxx> for ; Sun, 8 May 2005 12:30:12 -0500'), 'date': ('Sun, 8 May 2005 12:30:08 -0500',), 'from': ('xxx@xxxx.xxx',), 'to': ('xxx@xxxx.xxx',), 'message-id': ('<7864245.1115573412626.JavaMxxx@xxxx.xxx>',), 'subject': ('Filth',), 'mime-version': ('1.0',), 'content-type': ('multipart/mixed; boundary=mimepart_427e4cb4ca329_133ae40413c81ef',), 'x-mms-priority': ('1',), 'x-mms-transaction-id': ('3198421808-0',), 'x-mms-message-type': ('0',), 'x-mms-sender-visibility': ('1',), 'x-mms-read-reply': ('1',), 'x-original-to': ('xxx@xxxx.xxx',), 'x-mms-message-class': ('0',), 'x-mms-delivery-report': ('0',), 'x-mms-mms-version': ('16',), 'delivered-to': ('xxx@xxxx.xxx',), 'x-nokia-ag-version': ('2.0',)}, attachments=[], diff --git a/tests/messages_data/mime_emails/raw_email7.py b/tests/messages_data/mime_emails/raw_email7.py index f44009b..21d8862 100644 --- a/tests/messages_data/mime_emails/raw_email7.py +++ b/tests/messages_data/mime_emails/raw_email7.py @@ -8,9 +8,9 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2005, 6, 6, 22, 21, 22, tzinfo=datetime.timezone(datetime.timedelta(0, 7200))), + date=datetime.datetime(2005, 6, 6, 22, 21, 22, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200))), date_str='Mon, 6 Jun 2005 22:21:22 +0200', - text='This is the first part.\r\n', + text='This is the first part.\r\n\r\n', html='', headers={'mime-version': ('1.0 (Apple Message framework v730)',), 'content-type': ('multipart/mixed; boundary=Apple-Mail-13-196941151',), 'message-id': ('<9169D984-4E0B-45EF-82D4-8F5E53AD7012@example.com>',), 'from': ('foo@example.com',), 'subject': ('testing',), 'date': ('Mon, 6 Jun 2005 22:21:22 +0200',), 'to': ('blah@example.com',)}, attachments=[ diff --git a/tests/messages_data/mime_emails/raw_email_encoded_stack_level_too_deep.py b/tests/messages_data/mime_emails/raw_email_encoded_stack_level_too_deep.py index c13e195..fb23612 100644 --- a/tests/messages_data/mime_emails/raw_email_encoded_stack_level_too_deep.py +++ b/tests/messages_data/mime_emails/raw_email_encoded_stack_level_too_deep.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=('x.y@gmail.com',), - date=datetime.datetime(2005, 6, 28, 1, 2, 11, tzinfo=datetime.timezone(datetime.timedelta(-1, 61200))), + date=datetime.datetime(2005, 6, 28, 1, 2, 11, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))), date_str='Tue, 28 Jun 2005 01:02:11 -0700', text='Nicolas Fouché has accepted your invitation to Gmail and has chosen the \r\nbrand new address x.y@gmail.com. Be one of the first to email Nicolas \r\nat this new Gmail address--just hit reply and send Nicolas a message. \r\nx.y@gmail.com has also been automatically added to your contact list \r\nso you can stay in touch with Gmail. \r\n\r\n\r\nThanks, \r\n\r\nThe Gmail Team\r\n', html='\r\n\r\n

    Nicolas Fouché has accepted your invitation to Gmail and has\r\n chosen the brand new address x.y@gmail.com. Be one of the first to email \r\n Nicolas at this new Gmail address--just hit reply and send \r\n Nicolas a message. x.y@gmail.com has also been automatically added to\r\n your contact list so you can stay in touch with Gmail.\r\n

    \r\n


    \r\n Thanks,

    \r\n

    The Gmail Team

    \r\n
    \r\n\r\n', diff --git a/tests/messages_data/mime_emails/raw_email_with_binary_encoded.py b/tests/messages_data/mime_emails/raw_email_with_binary_encoded.py index f689e9f..5e38f0d 100644 --- a/tests/messages_data/mime_emails/raw_email_with_binary_encoded.py +++ b/tests/messages_data/mime_emails/raw_email_with_binary_encoded.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=('email_test@me.nowhere',), - date=datetime.datetime(2007, 10, 21, 19, 38, 13, tzinfo=datetime.timezone(datetime.timedelta(0, 36000))), + date=datetime.datetime(2007, 10, 21, 19, 38, 13, tzinfo=datetime.timezone(datetime.timedelta(seconds=36000))), date_str='Sun, 21 Oct 2007 19:38:13 +1000', text='', html='', diff --git a/tests/messages_data/mime_emails/raw_email_with_illegal_boundary.py b/tests/messages_data/mime_emails/raw_email_with_illegal_boundary.py index e68cb00..c461d02 100644 --- a/tests/messages_data/mime_emails/raw_email_with_illegal_boundary.py +++ b/tests/messages_data/mime_emails/raw_email_with_illegal_boundary.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=('email_test@me.nowhere',), - date=datetime.datetime(2007, 10, 21, 19, 38, 13, tzinfo=datetime.timezone(datetime.timedelta(0, 36000))), + date=datetime.datetime(2007, 10, 21, 19, 38, 13, tzinfo=datetime.timezone(datetime.timedelta(seconds=36000))), date_str='Sun, 21 Oct 2007 19:38:13 +1000', text='Hello\r\nThis is an outlook test\r\n\r\nSo there.\r\n\r\nMe.\r\n', html='\r\n\r\n\r\n\r\n\r\n\r\n\r\n
    Hello
    \r\n
    This is an outlook \r\ntest
    \r\n
     
    \r\n
    So there.
    \r\n
     
    \r\n
    Me.
    \r\n\r\n', diff --git a/tests/messages_data/mime_emails/raw_email_with_mimepart_without_content_type.py b/tests/messages_data/mime_emails/raw_email_with_mimepart_without_content_type.py index 0906364..eff715d 100644 --- a/tests/messages_data/mime_emails/raw_email_with_mimepart_without_content_type.py +++ b/tests/messages_data/mime_emails/raw_email_with_mimepart_without_content_type.py @@ -8,9 +8,9 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2006, 10, 20, 4, 28, 33, tzinfo=datetime.timezone(datetime.timedelta(-1, 72000))), + date=datetime.datetime(2006, 10, 20, 4, 28, 33, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=72000))), date_str='Fri, 20 Oct 2006 04:28:33 -0400 (EDT)', - text=' **********************************************\r\n ** THIS IS A WARNING MESSAGE ONLY **\r\n ** YOU DO NOT NEED TO RESEND YOUR MESSAGE **\r\n **********************************************\r\n\r\nThe original message was received at Thu, 19 Oct 2006 01:23:47 -0400 (EDT)\r\nfrom py-out-1112.google.com [64.233.166.178]\r\n\r\n ----- Transcript of session follows -----\r\n... Deferred\r\nWarning: message still undelivered after 1 day\r\nWill keep trying until message is 5 days old\r\n', + text=" **********************************************\r\n ** THIS IS A WARNING MESSAGE ONLY **\r\n ** YOU DO NOT NEED TO RESEND YOUR MESSAGE **\r\n **********************************************\r\n\r\nThe original message was received at Thu, 19 Oct 2006 01:23:47 -0400 (EDT)\r\nfrom py-out-1112.google.com [64.233.166.178]\r\n\r\n ----- Transcript of session follows -----\r\n... Deferred\r\nWarning: message still undelivered after 1 day\r\nWill keep trying until message is 5 days old\r\nSalut,\r\nje ne suis pas sur de m'adresser a la bonne personne.\r\nMais si jamais tu me reconnais :p, peux-tu repondre a ce mail ?\r\nMerci.\r\nRoger\r\n", html='', headers={'x-gmail-received': ('b2c98353cc39d93e4204831226f778c200d28109',), 'delivered-to': ('roor32@gmail.com',), 'received': ('by 10.64.10.4 with SMTP id 4cs594808qbj;\r\n Fri, 20 Oct 2006 01:53:34 -0700 (PDT)', 'by 10.65.224.11 with SMTP id b11mr149813qbr;\r\n Fri, 20 Oct 2006 01:53:34 -0700 (PDT)', 'from anis.telecom.uqam.ca (anis.telecom.uqam.ca [132.208.250.6])\r\n by mx.google.com with ESMTP id e13si1575402qbe.2006.10.20.01.53.34;\r\n Fri, 20 Oct 2006 01:53:34 -0700 (PDT)', 'from anis4.telecom.uqam.ca (anis4.telecom.uqam.ca [132.208.250.236])\r\n\tby sortant.uqam.ca (8.13.6/8.12.1) with SMTP id k9K8SIwA023763\r\n\tfor ; Fri, 20 Oct 2006 04:28:33 -0400 (EDT)', 'from antivirus.uqam.ca ([127.0.0.1])\r\n by anis4.telecom.uqam.ca (SAVSMTP 3.1.1.32) with SMTP id M2006102004283404041\r\n for ; Fri, 20 Oct 2006 04:28:34 -0400', 'from localhost (localhost)\r\n\tby antivirus.uqam.ca (8.13.6/8.12.1) id k9JMDbg4005560;\r\n\tFri, 20 Oct 2006 04:28:33 -0400 (EDT)'), 'return-path': ('<>',), 'received-spf': ('pass (google.com: best guess record for domain of anis.telecom.uqam.ca designates 132.208.250.6 as permitted sender)',), 'date': ('Fri, 20 Oct 2006 04:28:33 -0400 (EDT)',), 'from': ('Mail Delivery Subsystem ',), 'message-id': ('<200610200828.k9JMDbg4005560@antivirus.uqam.ca>',), 'to': ('',), 'mime-version': ('1.0',), 'content-type': ('multipart/report; report-type=delivery-status;\r\n\tboundary="k9JMDbg4005560.1161332913/antivirus.uqam.ca"',), 'subject': ('Warning: could not send message for past 1 day',), 'auto-submitted': ('auto-generated (warning-timeout)',)}, attachments=[ diff --git a/tests/messages_data/mime_emails/raw_email_with_multipart_mixed_quoted_boundary.py b/tests/messages_data/mime_emails/raw_email_with_multipart_mixed_quoted_boundary.py index 724ce21..7144f51 100644 --- a/tests/messages_data/mime_emails/raw_email_with_multipart_mixed_quoted_boundary.py +++ b/tests/messages_data/mime_emails/raw_email_with_multipart_mixed_quoted_boundary.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=('email_test@me.nowhere',), - date=datetime.datetime(2007, 10, 21, 19, 38, 13, tzinfo=datetime.timezone(datetime.timedelta(0, 36000))), + date=datetime.datetime(2007, 10, 21, 19, 38, 13, tzinfo=datetime.timezone(datetime.timedelta(seconds=36000))), date_str='Sun, 21 Oct 2007 19:38:13 +1000', text='Just attaching another PDF, here, to see what the message looks like,\r\nand to see if I can figure out what is going wrong here.\r\n', html='', diff --git a/tests/messages_data/mime_emails/raw_email_with_nested_attachment.py b/tests/messages_data/mime_emails/raw_email_with_nested_attachment.py index e46260c..2785f14 100644 --- a/tests/messages_data/mime_emails/raw_email_with_nested_attachment.py +++ b/tests/messages_data/mime_emails/raw_email_with_nested_attachment.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2007, 2, 22, 11, 20, 31, tzinfo=datetime.timezone(datetime.timedelta(-1, 61200))), + date=datetime.datetime(2007, 2, 22, 11, 20, 31, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))), date_str='Thu, 22 Feb 2007 11:20:31 -0700', text='Here is a test of an attachment via email.\r\n\r\n- Jamis\r\n\r\n', html='', diff --git a/tests/messages_data/mime_emails/raw_email_with_quoted_illegal_boundary.py b/tests/messages_data/mime_emails/raw_email_with_quoted_illegal_boundary.py index ceac877..cd25ab9 100644 --- a/tests/messages_data/mime_emails/raw_email_with_quoted_illegal_boundary.py +++ b/tests/messages_data/mime_emails/raw_email_with_quoted_illegal_boundary.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=('email_test@me.nowhere',), - date=datetime.datetime(2007, 10, 21, 19, 38, 13, tzinfo=datetime.timezone(datetime.timedelta(0, 36000))), + date=datetime.datetime(2007, 10, 21, 19, 38, 13, tzinfo=datetime.timezone(datetime.timedelta(seconds=36000))), date_str='Sun, 21 Oct 2007 19:38:13 +1000', text='Hello\r\nThis is an outlook test\r\n\r\nSo there.\r\n\r\nMe.\r\n', html='\r\n\r\n\r\n\r\n\r\n\r\n\r\n
    Hello
    \r\n
    This is an outlook \r\ntest
    \r\n
     
    \r\n
    So there.
    \r\n
     
    \r\n
    Me.
    \r\n\r\n', diff --git a/tests/messages_data/mime_emails/sig_only_email.py b/tests/messages_data/mime_emails/sig_only_email.py index d016b68..10929c4 100644 --- a/tests/messages_data/mime_emails/sig_only_email.py +++ b/tests/messages_data/mime_emails/sig_only_email.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2007, 6, 4, 15, 1, 31, tzinfo=datetime.timezone(datetime.timedelta(-1, 61200))), + date=datetime.datetime(2007, 6, 4, 15, 1, 31, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))), date_str='Mon, 4 Jun 2007 15:01:31 -0700', text='This is random text, not what has been signed below, ie, this sig\r\nemail is not signed correctly.\r\n', html='', diff --git a/tests/messages_data/mime_emails/two_from_in_message.py b/tests/messages_data/mime_emails/two_from_in_message.py index cbd4ec9..bb7afcb 100644 --- a/tests/messages_data/mime_emails/two_from_in_message.py +++ b/tests/messages_data/mime_emails/two_from_in_message.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2009, 12, 2, 22, 39, 33, tzinfo=datetime.timezone(datetime.timedelta(0, 46800))), + date=datetime.datetime(2009, 12, 2, 22, 39, 33, tzinfo=datetime.timezone(datetime.timedelta(seconds=46800))), date_str='Wed, 2 Dec 2009 22:39:33 +1300', text="When sending email:\r\n* From Hotmail you get the ads as well.\r\n* From GMail you also get the person's signature.\r\n\r\nI'm curious, and I might do some digging tomorrow as well, to see if its\r\npossible to strip the last little bit (signature/ads) from email messages.\r\n", html='
    When sending email:
    * From Hotmail you get the ads as well.
    * From GMail you also get the person's signature.

    I\'m curious, and I might do some digging tomorrow as well, to see if its possible to strip the last little bit (signature/ads) from email messages.
    \r\n\r\n
    \r\n', diff --git a/tests/messages_data/multi_charset/japanese_attachment.py b/tests/messages_data/multi_charset/japanese_attachment.py index 45fa43f..3212c6c 100644 --- a/tests/messages_data/multi_charset/japanese_attachment.py +++ b/tests/messages_data/multi_charset/japanese_attachment.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2009, 10, 16, 23, 39, 34, tzinfo=datetime.timezone(datetime.timedelta(0, 39600))), + date=datetime.datetime(2009, 10, 16, 23, 39, 34, tzinfo=datetime.timezone(datetime.timedelta(seconds=39600))), date_str='Fri, 16 Oct 2009 23:39:34 +1100', text='testing\r\n\r\n-- \r\nhttp://lindsaar.net/\r\nRails, RSpec and Life blog....\r\n', html='', diff --git a/tests/messages_data/multi_charset/japanese_attachment_long_name.py b/tests/messages_data/multi_charset/japanese_attachment_long_name.py index dc38123..93ccfce 100644 --- a/tests/messages_data/multi_charset/japanese_attachment_long_name.py +++ b/tests/messages_data/multi_charset/japanese_attachment_long_name.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2009, 10, 30, 19, 11, 2, tzinfo=datetime.timezone(datetime.timedelta(0, 39600))), + date=datetime.datetime(2009, 10, 30, 19, 11, 2, tzinfo=datetime.timezone(datetime.timedelta(seconds=39600))), date_str='Fri, 30 Oct 2009 19:11:02 +1100', text='', html='', diff --git a/tests/messages_data/multi_charset/japanese_shift_jis.py b/tests/messages_data/multi_charset/japanese_shift_jis.py index b94655b..a6321c3 100644 --- a/tests/messages_data/multi_charset/japanese_shift_jis.py +++ b/tests/messages_data/multi_charset/japanese_shift_jis.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2014, 5, 28, 17, 18, 19, tzinfo=datetime.timezone(datetime.timedelta(0, 32400))), + date=datetime.datetime(2014, 5, 28, 17, 18, 19, tzinfo=datetime.timezone(datetime.timedelta(seconds=32400))), date_str='Wed, 28 May 2014 17:18:19 +0900 (JST)', text='あいうえお\r\n\r\nこのメールはテスト用のメールです。\r\n\r\n今後ともよろしくお願い申し上げます!\r\n', html='', diff --git a/tests/messages_data/multi_charset/ks_c_5601-1987.py b/tests/messages_data/multi_charset/ks_c_5601-1987.py index 809abef..6513b5f 100644 --- a/tests/messages_data/multi_charset/ks_c_5601-1987.py +++ b/tests/messages_data/multi_charset/ks_c_5601-1987.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2014, 5, 28, 17, 18, 19, tzinfo=datetime.timezone(datetime.timedelta(0, 32400))), + date=datetime.datetime(2014, 5, 28, 17, 18, 19, tzinfo=datetime.timezone(datetime.timedelta(seconds=32400))), date_str='Wed, 28 May 2014 17:18:19 +0900 (JST)', text='스티해\r\n', html='', diff --git a/tests/messages_data/multipart_report_emails/multi_address_bounce1.py b/tests/messages_data/multipart_report_emails/multi_address_bounce1.py index 7f4b213..42c64b0 100644 --- a/tests/messages_data/multipart_report_emails/multi_address_bounce1.py +++ b/tests/messages_data/multipart_report_emails/multi_address_bounce1.py @@ -8,9 +8,9 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2010, 2, 23, 22, 16, 41, tzinfo=datetime.timezone(datetime.timedelta(-1, 57600))), + date=datetime.datetime(2010, 2, 23, 22, 16, 41, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))), date_str='Tue, 23 Feb 2010 22:16:41 -0800 (PST)', - text="This is the mail system at host lvmail01.LL.com.\r\n\r\nI'm sorry to have to inform you that your message could not\r\nbe delivered to one or more recipients. It's attached below.\r\n\r\nFor further assistance, please send mail to postmaster.\r\n\r\nIf you do so, please include this problem report. You can\r\ndelete your own text from the attached returned message.\r\n\r\n The mail system\r\n\r\n: host\r\n gmail-smtp-in.l.google.com[209.85.223.33] said: 550-5.1.1 The email account\r\n that you tried to reach does not exist. Please try 550-5.1.1\r\n double-checking the recipient's email address for typos or 550-5.1.1\r\n unnecessary spaces. Learn more at 550 5.1.1\r\n http://mail.google.com/support/bin/answer.py?answer=6596 41si5422799iwn.27\r\n (in reply to RCPT TO command)\r\n\r\n: host\r\n gmail-smtp-in.l.google.com[209.85.223.33] said: 550-5.1.1 The email account\r\n that you tried to reach does not exist. Please try 550-5.1.1\r\n double-checking the recipient's email address for typos or 550-5.1.1\r\n unnecessary spaces. Learn more at 550 5.1.1\r\n http://mail.google.com/support/bin/answer.py?answer=6596 41si5422799iwn.27\r\n (in reply to RCPT TO command)\r\n\r\n: host gmail-smtp-in.l.google.com[209.85.223.33]\r\n said: 550-5.1.1 The email account that you tried to reach does not exist.\r\n Please try 550-5.1.1 double-checking the recipient's email address for\r\n typos or 550-5.1.1 unnecessary spaces. Learn more at\r\n 550 5.1.1 http://mail.google.com/support/bin/answer.py?answer=6596\r\n 41si5422799iwn.27 (in reply to RCPT TO command)\r\n\r\n: host gmail-smtp-in.l.google.com[209.85.223.33]\r\n said: 550-5.1.1 The email account that you tried to reach does not exist.\r\n Please try 550-5.1.1 double-checking the recipient's email address for\r\n typos or 550-5.1.1 unnecessary spaces. Learn more at\r\n 550 5.1.1 http://mail.google.com/support/bin/answer.py?answer=6596\r\n 41si5422799iwn.27 (in reply to RCPT TO command)\r\n\r\n: host\r\n gmail-smtp-in.l.google.com[209.85.223.33] said: 550-5.1.1 The email account\r\n that you tried to reach does not exist. Please try 550-5.1.1\r\n double-checking the recipient's email address for typos or 550-5.1.1\r\n unnecessary spaces. Learn more at 550 5.1.1\r\n http://mail.google.com/support/bin/answer.py?answer=6596 41si5422799iwn.27\r\n (in reply to RCPT TO command)\r\n", + text="This is the mail system at host lvmail01.LL.com.\r\n\r\nI'm sorry to have to inform you that your message could not\r\nbe delivered to one or more recipients. It's attached below.\r\n\r\nFor further assistance, please send mail to postmaster.\r\n\r\nIf you do so, please include this problem report. You can\r\ndelete your own text from the attached returned message.\r\n\r\n The mail system\r\n\r\n: host\r\n gmail-smtp-in.l.google.com[209.85.223.33] said: 550-5.1.1 The email account\r\n that you tried to reach does not exist. Please try 550-5.1.1\r\n double-checking the recipient's email address for typos or 550-5.1.1\r\n unnecessary spaces. Learn more at 550 5.1.1\r\n http://mail.google.com/support/bin/answer.py?answer=6596 41si5422799iwn.27\r\n (in reply to RCPT TO command)\r\n\r\n: host\r\n gmail-smtp-in.l.google.com[209.85.223.33] said: 550-5.1.1 The email account\r\n that you tried to reach does not exist. Please try 550-5.1.1\r\n double-checking the recipient's email address for typos or 550-5.1.1\r\n unnecessary spaces. Learn more at 550 5.1.1\r\n http://mail.google.com/support/bin/answer.py?answer=6596 41si5422799iwn.27\r\n (in reply to RCPT TO command)\r\n\r\n: host gmail-smtp-in.l.google.com[209.85.223.33]\r\n said: 550-5.1.1 The email account that you tried to reach does not exist.\r\n Please try 550-5.1.1 double-checking the recipient's email address for\r\n typos or 550-5.1.1 unnecessary spaces. Learn more at\r\n 550 5.1.1 http://mail.google.com/support/bin/answer.py?answer=6596\r\n 41si5422799iwn.27 (in reply to RCPT TO command)\r\n\r\n: host gmail-smtp-in.l.google.com[209.85.223.33]\r\n said: 550-5.1.1 The email account that you tried to reach does not exist.\r\n Please try 550-5.1.1 double-checking the recipient's email address for\r\n typos or 550-5.1.1 unnecessary spaces. Learn more at\r\n 550 5.1.1 http://mail.google.com/support/bin/answer.py?answer=6596\r\n 41si5422799iwn.27 (in reply to RCPT TO command)\r\n\r\n: host\r\n gmail-smtp-in.l.google.com[209.85.223.33] said: 550-5.1.1 The email account\r\n that you tried to reach does not exist. Please try 550-5.1.1\r\n double-checking the recipient's email address for typos or 550-5.1.1\r\n unnecessary spaces. Learn more at 550 5.1.1\r\n http://mail.google.com/support/bin/answer.py?answer=6596 41si5422799iwn.27\r\n (in reply to RCPT TO command)\r\nThis is just testing.\r\n\r\n\r\nThanks & Regards,\r\nRahul P. Chaudhari\r\nSoftware Developer\r\nLIVIA India Private Limited\r\n\r\nBoard Line - +91.22.6725 5100\r\nHand Phone - +91.809 783 3437\r\nWeb URL: www.LL.com \r\n", html='', headers={'received': ('from lvmail01.LL.com (LHLO lvmail01.LL.com)\r\n (10.60.6.3) by lvmail01.LL.com with LMTP; Tue, 23 Feb 2010 22:16:41\r\n -0800 (PST)', 'by lvmail01.LL.com (Postfix)\r\n\tid 3E47A1BC025; Tue, 23 Feb 2010 22:16:41 -0800 (PST)'), 'date': ('Tue, 23 Feb 2010 22:16:41 -0800 (PST)',), 'from': ('MAILER-DAEMON@lvmail01.LL.com (Mail Delivery System)',), 'subject': ('Undelivered Mail Returned to Sender',), 'to': ('rahul.chaudhari@LL.com',), 'auto-submitted': ('auto-replied',), 'mime-version': ('1.0',), 'content-type': ('multipart/report; report-type=delivery-status;\r\n\tboundary="9B7841BC027.1266992201/lvmail01.LL.com"',), 'content-transfer-encoding': ('7bit',), 'message-id': ('<20100224061641.3E47A1BC025@lvmail01.LL.com>',)}, attachments=[ diff --git a/tests/messages_data/multipart_report_emails/multi_address_bounce2.py b/tests/messages_data/multipart_report_emails/multi_address_bounce2.py index 7f4b213..42c64b0 100644 --- a/tests/messages_data/multipart_report_emails/multi_address_bounce2.py +++ b/tests/messages_data/multipart_report_emails/multi_address_bounce2.py @@ -8,9 +8,9 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2010, 2, 23, 22, 16, 41, tzinfo=datetime.timezone(datetime.timedelta(-1, 57600))), + date=datetime.datetime(2010, 2, 23, 22, 16, 41, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))), date_str='Tue, 23 Feb 2010 22:16:41 -0800 (PST)', - text="This is the mail system at host lvmail01.LL.com.\r\n\r\nI'm sorry to have to inform you that your message could not\r\nbe delivered to one or more recipients. It's attached below.\r\n\r\nFor further assistance, please send mail to postmaster.\r\n\r\nIf you do so, please include this problem report. You can\r\ndelete your own text from the attached returned message.\r\n\r\n The mail system\r\n\r\n: host\r\n gmail-smtp-in.l.google.com[209.85.223.33] said: 550-5.1.1 The email account\r\n that you tried to reach does not exist. Please try 550-5.1.1\r\n double-checking the recipient's email address for typos or 550-5.1.1\r\n unnecessary spaces. Learn more at 550 5.1.1\r\n http://mail.google.com/support/bin/answer.py?answer=6596 41si5422799iwn.27\r\n (in reply to RCPT TO command)\r\n\r\n: host\r\n gmail-smtp-in.l.google.com[209.85.223.33] said: 550-5.1.1 The email account\r\n that you tried to reach does not exist. Please try 550-5.1.1\r\n double-checking the recipient's email address for typos or 550-5.1.1\r\n unnecessary spaces. Learn more at 550 5.1.1\r\n http://mail.google.com/support/bin/answer.py?answer=6596 41si5422799iwn.27\r\n (in reply to RCPT TO command)\r\n\r\n: host gmail-smtp-in.l.google.com[209.85.223.33]\r\n said: 550-5.1.1 The email account that you tried to reach does not exist.\r\n Please try 550-5.1.1 double-checking the recipient's email address for\r\n typos or 550-5.1.1 unnecessary spaces. Learn more at\r\n 550 5.1.1 http://mail.google.com/support/bin/answer.py?answer=6596\r\n 41si5422799iwn.27 (in reply to RCPT TO command)\r\n\r\n: host gmail-smtp-in.l.google.com[209.85.223.33]\r\n said: 550-5.1.1 The email account that you tried to reach does not exist.\r\n Please try 550-5.1.1 double-checking the recipient's email address for\r\n typos or 550-5.1.1 unnecessary spaces. Learn more at\r\n 550 5.1.1 http://mail.google.com/support/bin/answer.py?answer=6596\r\n 41si5422799iwn.27 (in reply to RCPT TO command)\r\n\r\n: host\r\n gmail-smtp-in.l.google.com[209.85.223.33] said: 550-5.1.1 The email account\r\n that you tried to reach does not exist. Please try 550-5.1.1\r\n double-checking the recipient's email address for typos or 550-5.1.1\r\n unnecessary spaces. Learn more at 550 5.1.1\r\n http://mail.google.com/support/bin/answer.py?answer=6596 41si5422799iwn.27\r\n (in reply to RCPT TO command)\r\n", + text="This is the mail system at host lvmail01.LL.com.\r\n\r\nI'm sorry to have to inform you that your message could not\r\nbe delivered to one or more recipients. It's attached below.\r\n\r\nFor further assistance, please send mail to postmaster.\r\n\r\nIf you do so, please include this problem report. You can\r\ndelete your own text from the attached returned message.\r\n\r\n The mail system\r\n\r\n: host\r\n gmail-smtp-in.l.google.com[209.85.223.33] said: 550-5.1.1 The email account\r\n that you tried to reach does not exist. Please try 550-5.1.1\r\n double-checking the recipient's email address for typos or 550-5.1.1\r\n unnecessary spaces. Learn more at 550 5.1.1\r\n http://mail.google.com/support/bin/answer.py?answer=6596 41si5422799iwn.27\r\n (in reply to RCPT TO command)\r\n\r\n: host\r\n gmail-smtp-in.l.google.com[209.85.223.33] said: 550-5.1.1 The email account\r\n that you tried to reach does not exist. Please try 550-5.1.1\r\n double-checking the recipient's email address for typos or 550-5.1.1\r\n unnecessary spaces. Learn more at 550 5.1.1\r\n http://mail.google.com/support/bin/answer.py?answer=6596 41si5422799iwn.27\r\n (in reply to RCPT TO command)\r\n\r\n: host gmail-smtp-in.l.google.com[209.85.223.33]\r\n said: 550-5.1.1 The email account that you tried to reach does not exist.\r\n Please try 550-5.1.1 double-checking the recipient's email address for\r\n typos or 550-5.1.1 unnecessary spaces. Learn more at\r\n 550 5.1.1 http://mail.google.com/support/bin/answer.py?answer=6596\r\n 41si5422799iwn.27 (in reply to RCPT TO command)\r\n\r\n: host gmail-smtp-in.l.google.com[209.85.223.33]\r\n said: 550-5.1.1 The email account that you tried to reach does not exist.\r\n Please try 550-5.1.1 double-checking the recipient's email address for\r\n typos or 550-5.1.1 unnecessary spaces. Learn more at\r\n 550 5.1.1 http://mail.google.com/support/bin/answer.py?answer=6596\r\n 41si5422799iwn.27 (in reply to RCPT TO command)\r\n\r\n: host\r\n gmail-smtp-in.l.google.com[209.85.223.33] said: 550-5.1.1 The email account\r\n that you tried to reach does not exist. Please try 550-5.1.1\r\n double-checking the recipient's email address for typos or 550-5.1.1\r\n unnecessary spaces. Learn more at 550 5.1.1\r\n http://mail.google.com/support/bin/answer.py?answer=6596 41si5422799iwn.27\r\n (in reply to RCPT TO command)\r\nThis is just testing.\r\n\r\n\r\nThanks & Regards,\r\nRahul P. Chaudhari\r\nSoftware Developer\r\nLIVIA India Private Limited\r\n\r\nBoard Line - +91.22.6725 5100\r\nHand Phone - +91.809 783 3437\r\nWeb URL: www.LL.com \r\n", html='', headers={'received': ('from lvmail01.LL.com (LHLO lvmail01.LL.com)\r\n (10.60.6.3) by lvmail01.LL.com with LMTP; Tue, 23 Feb 2010 22:16:41\r\n -0800 (PST)', 'by lvmail01.LL.com (Postfix)\r\n\tid 3E47A1BC025; Tue, 23 Feb 2010 22:16:41 -0800 (PST)'), 'date': ('Tue, 23 Feb 2010 22:16:41 -0800 (PST)',), 'from': ('MAILER-DAEMON@lvmail01.LL.com (Mail Delivery System)',), 'subject': ('Undelivered Mail Returned to Sender',), 'to': ('rahul.chaudhari@LL.com',), 'auto-submitted': ('auto-replied',), 'mime-version': ('1.0',), 'content-type': ('multipart/report; report-type=delivery-status;\r\n\tboundary="9B7841BC027.1266992201/lvmail01.LL.com"',), 'content-transfer-encoding': ('7bit',), 'message-id': ('<20100224061641.3E47A1BC025@lvmail01.LL.com>',)}, attachments=[ diff --git a/tests/messages_data/multipart_report_emails/multipart_report_multiple_status.py b/tests/messages_data/multipart_report_emails/multipart_report_multiple_status.py index 12a7954..39d1708 100644 --- a/tests/messages_data/multipart_report_emails/multipart_report_multiple_status.py +++ b/tests/messages_data/multipart_report_emails/multipart_report_multiple_status.py @@ -8,9 +8,9 @@ cc=(), bcc=(), reply_to=('Postmaster@ci.com',), - date=datetime.datetime(2010, 6, 29, 10, 42, 44, tzinfo=datetime.timezone(datetime.timedelta(-1, 68400))), + date=datetime.datetime(2010, 6, 29, 10, 42, 44, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=68400))), date_str='Tue, 29 Jun 2010 10:42:44 -0500', - text='This Message was undeliverable due to the following reason:\r\n', + text='This Message was undeliverable due to the following reason:\r\n has restricted SMS e-mail\r\nPlease reply to \r\nif you feel this message to be in error.Hey cingularmefarida,\n\nFarida Malik thinks you should apply to join HomeRun, your place fot., San Francisco, CA, 94123, USA', html="\n\n\nHomeRun - Your Friend Farida Malik wants you to join run.com/o.45b0d380.gif' width='1' />\n</td>\n</tr>\n</table>\n</td>\n</tr>\n</table>\n</div>\n</body>\n</html>\n", headers={'return-path': ('<>',), 'x-original-to': ('notification+promo@blah.com',), 'delivered-to': ('notification+promo@blah.com',), 'received': ('from schemailmta04.ci.com (schemailmta04.ci.com [209.183.37.58])\r\n by blah.com (Postfix) with ESMTP id 24EF419F546\r\n for <notification+promo@blah.com>; Tue, 29 Jun 2010 15:42:46 +0000 (UTC)',), 'to': ('notification+promo@blah.com',), 'from': ('Mail Administrator <Postmaster@ci.com>',), 'reply-to': ('<Postmaster@ci.com>',), 'subject': ('Mail System Error - Returned Mail',), 'date': ('Tue, 29 Jun 2010 10:42:44 -0500',), 'message-id': ('<20100629154244.OZPA15102.schemailmta04.ci.com@schemailmta04>',), 'mime-version': ('1.0',), 'content-type': ('multipart/report;\r\n report-type=delivery-status;\r\n Boundary="===========================_ _= 6078796(15102)1277826164"',), 'x-cloudmark-analysis': ('v=1.0 c=1 a=q8OS1GolVHwA:10 a=ev1gGZlfZ-EA:10 a=HQ-Cukr2AAAA:8 a=qihIh-XuXL65y3o_mUgA:9 a=mUL5bUDOV_-gjcCZylcY5Lz4jjsA:4 a=iQvSWfByulMA:10 a=ni8l3qMSI1sA:10 a=WHDNLAQ519cA:10 a=Fry9e7MVxuJdODrS104A:9 a=JYo4OF_E9TqbHrUN2TvLdggtx2cA:4 a=S0jCPnXDAAAA:8 a=pXkHMj1YAAAA:8 a=5ErcFzC0N3E7OloTRA8A:9 a=cC0RL7HlXt3RrKfnpEbxHCeM-zQA:4 a=cHEBK1Z0Lu8A:10 a=p9ZeupWRHUwA:10 a=7sPVfr_AX1EA:10',)}, attachments=[ diff --git a/tests/messages_data/multipart_report_emails/report_422.py b/tests/messages_data/multipart_report_emails/report_422.py index d3ead08..31c1016 100644 --- a/tests/messages_data/multipart_report_emails/report_422.py +++ b/tests/messages_data/multipart_report_emails/report_422.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2008, 1, 17, 3, 40, 52, tzinfo=datetime.timezone(datetime.timedelta(0, 39600))), + date=datetime.datetime(2008, 1, 17, 3, 40, 52, tzinfo=datetime.timezone(datetime.timedelta(seconds=39600))), date_str='Thu, 17 Jan 2008 03:40:52 +1100', text=' **********************************************\r\n ** THIS IS A WARNING MESSAGE ONLY **\r\n ** YOU DO NOT NEED TO RESEND YOUR MESSAGE **\r\n **********************************************\r\n\r\nThe original message was received at Wed, 16 Jan 2008 19:38:07 +1100\r\nfrom 60-0-0-61.static.tppppp.com.au [60.0.0.61]\r\n\r\nThis message was generated by mail11.tppppp.com.au\r\n\r\n ----- Transcript of session follows -----\r\n.... while talking to mail.oooooooo.com.au.:\r\n>>> DATA\r\n<<< 452 4.2.2 <fraser@oooooooo.com.au>... Mailbox full\r\n<fraser@oooooooo.com.au>... Deferred: 452 4.2.2 <fraser@oooooooo.com.au>... Mailbox full\r\n<<< 503 5.0.0 Need RCPT (recipient)\r\nWarning: message still undelivered after 8 hours\r\nWill keep trying until message is 5 days old\r\n\r\n-- \r\nThis message has been scanned for viruses and\r\ndangerous content by MailScanner, and is\r\nbelieved to be clean.\r\n\r\n', html='', diff --git a/tests/messages_data/multipart_report_emails/report_530.py b/tests/messages_data/multipart_report_emails/report_530.py index c0df728..a118810 100644 --- a/tests/messages_data/multipart_report_emails/report_530.py +++ b/tests/messages_data/multipart_report_emails/report_530.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2007, 12, 24, 10, 3, 53, tzinfo=datetime.timezone(datetime.timedelta(0, 39600))), + date=datetime.datetime(2007, 12, 24, 10, 3, 53, tzinfo=datetime.timezone(datetime.timedelta(seconds=39600))), date_str='Mon, 24 Dec 2007 10:03:53 +1100', text='The original message was received at Mon, 24 Dec 2007 10:03:47 +1100\r\nfrom 60-0-0-146.static.tttttt.com.au [60.0.0.146]\r\n\r\nThis message was generated by mail12.tttttt.com.au\r\n\r\n ----- The following addresses had permanent fatal errors -----\r\n<edwin@zzzzzzz.com>\r\n (reason: 553 5.3.0 <edwin@zzzzzzz.com>... Unknown E-Mail Address)\r\n\r\n ----- Transcript of session follows -----\r\n... while talking to mail.zzzzzz.com.:\r\n>>> DATA\r\n<<< 553 5.3.0 <edwin@zzzzzzz.com>... Unknown E-Mail Address\r\n550 5.1.1 <edwin@zzzzzzz.com>... User unknown\r\n<<< 503 5.0.0 Need RCPT (recipient)\r\n\r\n-- \r\nThis message has been scanned for viruses and\r\ndangerous content by MailScanner, and is\r\nbelieved to be clean.\r\n\r\n', html='', diff --git a/tests/messages_data/plain_emails/basic_email.py b/tests/messages_data/plain_emails/basic_email.py index 8f5ac46..e180fec 100644 --- a/tests/messages_data/plain_emails/basic_email.py +++ b/tests/messages_data/plain_emails/basic_email.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2008, 11, 22, 15, 4, 59, tzinfo=datetime.timezone(datetime.timedelta(0, 39600))), + date=datetime.datetime(2008, 11, 22, 15, 4, 59, tzinfo=datetime.timezone(datetime.timedelta(seconds=39600))), date_str='Sat, 22 Nov 2008 15:04:59 +1100', text='Plain email.\r\n\r\nHope it works well!\r\n\r\nMikel\r\n', html='', diff --git a/tests/messages_data/plain_emails/basic_email_lf.py b/tests/messages_data/plain_emails/basic_email_lf.py index bf94dd3..c01efd3 100644 --- a/tests/messages_data/plain_emails/basic_email_lf.py +++ b/tests/messages_data/plain_emails/basic_email_lf.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2008, 11, 22, 15, 4, 59, tzinfo=datetime.timezone(datetime.timedelta(0, 39600))), + date=datetime.datetime(2008, 11, 22, 15, 4, 59, tzinfo=datetime.timezone(datetime.timedelta(seconds=39600))), date_str='Sat, 22 Nov 2008 15:04:59 +1100', text='Plain email.\n\nHope it works well!\n\nMikel\n', html='', diff --git a/tests/messages_data/plain_emails/mix_caps_content_type.py b/tests/messages_data/plain_emails/mix_caps_content_type.py index b2292f4..2844828 100644 --- a/tests/messages_data/plain_emails/mix_caps_content_type.py +++ b/tests/messages_data/plain_emails/mix_caps_content_type.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2010, 2, 19, 10, 8, 29, tzinfo=datetime.timezone(datetime.timedelta(0, 10800))), + date=datetime.datetime(2010, 2, 19, 10, 8, 29, tzinfo=datetime.timezone(datetime.timedelta(seconds=10800))), date_str='Fri, 19 Feb 2010 10:08:29 +0300', text='foo bar\r\n', html='', diff --git a/tests/messages_data/plain_emails/raw_email.py b/tests/messages_data/plain_emails/raw_email.py index b04b2ac..46ff5f4 100644 --- a/tests/messages_data/plain_emails/raw_email.py +++ b/tests/messages_data/plain_emails/raw_email.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2005, 5, 2, 16, 7, 5, tzinfo=datetime.timezone(datetime.timedelta(-1, 64800))), + date=datetime.datetime(2005, 5, 2, 16, 7, 5, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=64800))), date_str='Mon, 2 May 2005 16:07:05 -0600', text='대부분의 마찬가지로, 우리는 하나님을 믿습니다.\r\n\r\n제 이름은 Jamis입니다.', html='', diff --git a/tests/messages_data/plain_emails/raw_email10.py b/tests/messages_data/plain_emails/raw_email10.py index c012e1e..31fce36 100644 --- a/tests/messages_data/plain_emails/raw_email10.py +++ b/tests/messages_data/plain_emails/raw_email10.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2005, 5, 10, 15, 27, 3, tzinfo=datetime.timezone(datetime.timedelta(-1, 68400))), + date=datetime.datetime(2005, 5, 10, 15, 27, 3, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=68400))), date_str='Tue, 10 May 2005 15:27:03 -0500', text="Test test. Hi. Waving. m\r\n\r\n----------------------------------------------------------------\r\nSent via Bell Mobility's Text Messaging service. \r\nEnvoyé par le service de messagerie texte de Bell Mobilité.\r\n----------------------------------------------------------------\r\n", html='', diff --git a/tests/messages_data/plain_emails/raw_email5.py b/tests/messages_data/plain_emails/raw_email5.py index 81fd1d8..aa41168 100644 --- a/tests/messages_data/plain_emails/raw_email5.py +++ b/tests/messages_data/plain_emails/raw_email5.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2005, 5, 10, 15, 27, 3, tzinfo=datetime.timezone(datetime.timedelta(-1, 68400))), + date=datetime.datetime(2005, 5, 10, 15, 27, 3, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=68400))), date_str='Tue, 10 May 2005 15:27:03 -0500', text="Test test. Hi. Waving. m\r\n\r\n----------------------------------------------------------------\r\nSent via Bell Mobility's Text Messaging service. \r\nEnvoyé par le service de messagerie texte de Bell Mobilité.\r\n----------------------------------------------------------------\r\n", html='', diff --git a/tests/messages_data/plain_emails/raw_email6.py b/tests/messages_data/plain_emails/raw_email6.py index 49a0ad1..b266754 100644 --- a/tests/messages_data/plain_emails/raw_email6.py +++ b/tests/messages_data/plain_emails/raw_email6.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2005, 5, 10, 15, 27, 3, tzinfo=datetime.timezone(datetime.timedelta(-1, 68400))), + date=datetime.datetime(2005, 5, 10, 15, 27, 3, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=68400))), date_str='Tue, 10 May 2005 15:27:03 -0500', text="Test test. Hi. Waving. m\r\n\r\n----------------------------------------------------------------\r\nSent via Bell Mobility's Text Messaging service. \r\nEnvoy par le service de messagerie texte de Bell Mobilit.\r\n----------------------------------------------------------------\r\n", html='', diff --git a/tests/messages_data/plain_emails/raw_email8.py b/tests/messages_data/plain_emails/raw_email8.py index a566a48..86f627f 100644 --- a/tests/messages_data/plain_emails/raw_email8.py +++ b/tests/messages_data/plain_emails/raw_email8.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=('xxxxxxxxx.xxxxxxx@gmail.com',), - date=datetime.datetime(2005, 5, 8, 14, 9, 11, tzinfo=datetime.timezone(datetime.timedelta(-1, 68400))), + date=datetime.datetime(2005, 5, 8, 14, 9, 11, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=68400))), date_str='Sun, 8 May 2005 14:09:11 -0500', text='We should not include these files or vcards as attachments.\r\n\r\n---------- Forwarded message ----------\r\nFrom: xxxxx xxxxxx <xxxxxxxx@xxx.com>\r\nDate: May 8, 2005 1:17 PM\r\nSubject: Signed email causes file attachments\r\nTo: xxxxxxx@xxxxxxxxxx.com\r\n\r\n\r\nHi,\r\n\r\nTest attachments oddly encoded with japanese charset.\r\n\r\n', html='', diff --git a/tests/messages_data/plain_emails/raw_email_bad_time.py b/tests/messages_data/plain_emails/raw_email_bad_time.py index e321fc2..cf9387a 100644 --- a/tests/messages_data/plain_emails/raw_email_bad_time.py +++ b/tests/messages_data/plain_emails/raw_email_bad_time.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(3609, 6, 30, 15, 33, 50, tzinfo=datetime.timezone(datetime.timedelta(0, 21600))), + date=datetime.datetime(3609, 6, 30, 15, 33, 50, tzinfo=datetime.timezone(datetime.timedelta(seconds=21600))), date_str='Mon, 30 Jun 3609 15:33:50 +0600', text='\r\nFilter2: This message has been scanned for viruses and\r\ndangerous content by MailScanner, and is\r\nbelieved to be clean.\r\n\r\n', html='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r\n<HTML><HEAD>\r\n<META http-equiv=Content-Type content="text/html; charset=utf-8">\r\n<META content="MSHTML 6.00.2900.2180" name=GENERATOR>\r\n<STYLE></STYLE>\r\n</HEAD>\r\n<BODY bgColor=#ffffff>\r\n<br />This message has been scanned for viruses and\r\n<br />dangerous content by\r\n<a href="http://www.mailscanner.info/"><b>MailScanner</b></a>, and is\r\n<br />believed to be clean.\r\n</HTML>\r\n', diff --git a/tests/messages_data/plain_emails/raw_email_double_at_in_header.py b/tests/messages_data/plain_emails/raw_email_double_at_in_header.py index 3d5c8ab..a65e723 100644 --- a/tests/messages_data/plain_emails/raw_email_double_at_in_header.py +++ b/tests/messages_data/plain_emails/raw_email_double_at_in_header.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2005, 5, 2, 16, 7, 5, tzinfo=datetime.timezone(datetime.timedelta(-1, 64800))), + date=datetime.datetime(2005, 5, 2, 16, 7, 5, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=64800))), date_str='Mon, 2 May 2005 16:07:05 -0600', text='대부분의 마찬가지로, 우리는 하나님을 믿습니다.\r\n\r\n제 이름은 Jamis입니다.', html='', diff --git a/tests/messages_data/plain_emails/raw_email_quoted_with_0d0a.py b/tests/messages_data/plain_emails/raw_email_quoted_with_0d0a.py index f1ac42c..6308cb5 100644 --- a/tests/messages_data/plain_emails/raw_email_quoted_with_0d0a.py +++ b/tests/messages_data/plain_emails/raw_email_quoted_with_0d0a.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2005, 6, 6, 22, 21, 22, tzinfo=datetime.timezone(datetime.timedelta(0, 7200))), + date=datetime.datetime(2005, 6, 6, 22, 21, 22, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200))), date_str='Mon, 6 Jun 2005 22:21:22 +0200', text="A fax has arrived from remote ID ''.\r\n------------------------------------------------------------\r\nTime: 3/9/2006 3:50:52 PM\r\nReceived from remote ID: \r\nInbound user ID XXXXXXXXXX, routing code XXXXXXXXX\r\nResult: (0/352;0/0) Successful Send\r\nPage record: 1 - 1\r\nElapsed time: 00:58 on channel 11\r\n\r\n", html='', diff --git a/tests/messages_data/plain_emails/raw_email_reply.py b/tests/messages_data/plain_emails/raw_email_reply.py index 093bca3..3b8fe2a 100644 --- a/tests/messages_data/plain_emails/raw_email_reply.py +++ b/tests/messages_data/plain_emails/raw_email_reply.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2007, 11, 18, 19, 56, 7, tzinfo=datetime.timezone(datetime.timedelta(0, 39600))), + date=datetime.datetime(2007, 11, 18, 19, 56, 7, tzinfo=datetime.timezone(datetime.timedelta(seconds=39600))), date_str='Sun, 18 Nov 2007 19:56:07 +1100', text='Message body\r\n', html='', diff --git a/tests/messages_data/plain_emails/raw_email_simple.py b/tests/messages_data/plain_emails/raw_email_simple.py index 010ff5b..13438e6 100644 --- a/tests/messages_data/plain_emails/raw_email_simple.py +++ b/tests/messages_data/plain_emails/raw_email_simple.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2007, 10, 21, 19, 38, 13, tzinfo=datetime.timezone(datetime.timedelta(0, 36000))), + date=datetime.datetime(2007, 10, 21, 19, 38, 13, tzinfo=datetime.timezone(datetime.timedelta(seconds=36000))), date_str='Sun, 21 Oct 2007 19:38:13 +1000', text='Hello Mikel\r\n\r\n', html='', diff --git a/tests/messages_data/plain_emails/raw_email_string_in_date_field.py b/tests/messages_data/plain_emails/raw_email_string_in_date_field.py index 5864b4b..f9fe332 100644 --- a/tests/messages_data/plain_emails/raw_email_string_in_date_field.py +++ b/tests/messages_data/plain_emails/raw_email_string_in_date_field.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2008, 9, 20, 20, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(0, 10800))), + date=datetime.datetime(2008, 9, 20, 20, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(seconds=10800))), date_str='Sat, 20 Sep 2008 20:04:30 +0300 (�������� ������ ��������������)', text='대부분의 마찬가지로, 우리는 하나님을 믿습니다.\r\n\r\n제 이름은 Jamis입니다.', html='', diff --git a/tests/messages_data/plain_emails/raw_email_trailing_dot.py b/tests/messages_data/plain_emails/raw_email_trailing_dot.py index fb0de50..4837992 100644 --- a/tests/messages_data/plain_emails/raw_email_trailing_dot.py +++ b/tests/messages_data/plain_emails/raw_email_trailing_dot.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2008, 9, 22, 15, 6, 28, tzinfo=datetime.timezone(datetime.timedelta(-1, 72000))), + date=datetime.datetime(2008, 9, 22, 15, 6, 28, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=72000))), date_str='Mon, 22 Sep 2008 15:06:28 -0400 (EDT)', text='Testing, testing, 123.', html='', diff --git a/tests/messages_data/plain_emails/raw_email_with_at_display_name.py b/tests/messages_data/plain_emails/raw_email_with_at_display_name.py index fe60500..e613219 100644 --- a/tests/messages_data/plain_emails/raw_email_with_at_display_name.py +++ b/tests/messages_data/plain_emails/raw_email_with_at_display_name.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2008, 11, 22, 15, 4, 59, tzinfo=datetime.timezone(datetime.timedelta(0, 39600))), + date=datetime.datetime(2008, 11, 22, 15, 4, 59, tzinfo=datetime.timezone(datetime.timedelta(seconds=39600))), date_str='Sat, 22 Nov 2008 15:04:59 +1100', text='Plain email.\r\n\r\nHope it works well!\r\n\r\nMikel\r\n', html='', diff --git a/tests/messages_data/plain_emails/raw_email_with_partially_quoted_subject.py b/tests/messages_data/plain_emails/raw_email_with_partially_quoted_subject.py index 15effd6..4b2c6f3 100644 --- a/tests/messages_data/plain_emails/raw_email_with_partially_quoted_subject.py +++ b/tests/messages_data/plain_emails/raw_email_with_partially_quoted_subject.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2005, 5, 2, 16, 7, 5, tzinfo=datetime.timezone(datetime.timedelta(-1, 64800))), + date=datetime.datetime(2005, 5, 2, 16, 7, 5, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=64800))), date_str='Mon, 2 May 2005 16:07:05 -0600', text='대부분의 마찬가지로, 우리는 하나님을 믿습니다.\r\n\r\n제 이름은 Jamis입니다.', html='', diff --git a/tests/messages_data/rfc2822/example01.py b/tests/messages_data/rfc2822/example01.py index 727adfa..78dfd17 100644 --- a/tests/messages_data/rfc2822/example01.py +++ b/tests/messages_data/rfc2822/example01.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(1997, 11, 21, 9, 55, 6, tzinfo=datetime.timezone(datetime.timedelta(-1, 64800))), + date=datetime.datetime(1997, 11, 21, 9, 55, 6, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=64800))), date_str='Fri, 21 Nov 1997 09:55:06 -0600', text='This is a message just to say hello.\r\nSo, "Hello".\r\n', html='', diff --git a/tests/messages_data/rfc2822/example02.py b/tests/messages_data/rfc2822/example02.py index 7f9717b..0f7ffca 100644 --- a/tests/messages_data/rfc2822/example02.py +++ b/tests/messages_data/rfc2822/example02.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(1997, 11, 21, 9, 55, 6, tzinfo=datetime.timezone(datetime.timedelta(-1, 64800))), + date=datetime.datetime(1997, 11, 21, 9, 55, 6, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=64800))), date_str='Fri, 21 Nov 1997 09:55:06 -0600', text='This is a message just to say hello.\r\nSo, "Hello".\r\n', html='', diff --git a/tests/messages_data/rfc2822/example03.py b/tests/messages_data/rfc2822/example03.py index 31adfef..2e85a68 100644 --- a/tests/messages_data/rfc2822/example03.py +++ b/tests/messages_data/rfc2822/example03.py @@ -8,7 +8,7 @@ cc=('boss@nil.test', 'sysservices@example.net'), bcc=(), reply_to=(), - date=datetime.datetime(2003, 7, 1, 10, 52, 37, tzinfo=datetime.timezone(datetime.timedelta(0, 7200))), + date=datetime.datetime(2003, 7, 1, 10, 52, 37, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200))), date_str='Tue, 1 Jul 2003 10:52:37 +0200', text='Hi everyone.\r\n', html='', diff --git a/tests/messages_data/rfc2822/example04.py b/tests/messages_data/rfc2822/example04.py index beffd4c..c70b248 100644 --- a/tests/messages_data/rfc2822/example04.py +++ b/tests/messages_data/rfc2822/example04.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(1969, 2, 13, 23, 32, 54, tzinfo=datetime.timezone(datetime.timedelta(-1, 73800))), + date=datetime.datetime(1969, 2, 13, 23, 32, 54, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=73800))), date_str='Thu, 13 Feb 1969 23:32:54 -0330', text='Testing.\r\n', html='', diff --git a/tests/messages_data/rfc2822/example05.py b/tests/messages_data/rfc2822/example05.py index 727adfa..78dfd17 100644 --- a/tests/messages_data/rfc2822/example05.py +++ b/tests/messages_data/rfc2822/example05.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(1997, 11, 21, 9, 55, 6, tzinfo=datetime.timezone(datetime.timedelta(-1, 64800))), + date=datetime.datetime(1997, 11, 21, 9, 55, 6, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=64800))), date_str='Fri, 21 Nov 1997 09:55:06 -0600', text='This is a message just to say hello.\r\nSo, "Hello".\r\n', html='', diff --git a/tests/messages_data/rfc2822/example06.py b/tests/messages_data/rfc2822/example06.py index 20929c5..e9971c9 100644 --- a/tests/messages_data/rfc2822/example06.py +++ b/tests/messages_data/rfc2822/example06.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=('smith@home.example',), - date=datetime.datetime(1997, 11, 21, 10, 1, 10, tzinfo=datetime.timezone(datetime.timedelta(-1, 64800))), + date=datetime.datetime(1997, 11, 21, 10, 1, 10, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=64800))), date_str='Fri, 21 Nov 1997 10:01:10 -0600', text='This is a reply to your hello.\r\n', html='', diff --git a/tests/messages_data/rfc2822/example07.py b/tests/messages_data/rfc2822/example07.py index 4c59785..56316d2 100644 --- a/tests/messages_data/rfc2822/example07.py +++ b/tests/messages_data/rfc2822/example07.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(1997, 11, 21, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(-1, 64800))), + date=datetime.datetime(1997, 11, 21, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=64800))), date_str='Fri, 21 Nov 1997 11:00:00 -0600', text='This is a reply to your reply.\r\n', html='', diff --git a/tests/messages_data/rfc2822/example08.py b/tests/messages_data/rfc2822/example08.py index 51aa7f2..a269f08 100644 --- a/tests/messages_data/rfc2822/example08.py +++ b/tests/messages_data/rfc2822/example08.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(1997, 11, 21, 9, 55, 6, tzinfo=datetime.timezone(datetime.timedelta(-1, 64800))), + date=datetime.datetime(1997, 11, 21, 9, 55, 6, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=64800))), date_str='Fri, 21 Nov 1997 09:55:06 -0600', text='This is a message just to say hello.\r\nSo, "Hello".\r\n', html='', diff --git a/tests/messages_data/rfc2822/example09.py b/tests/messages_data/rfc2822/example09.py index b81b01c..0676495 100644 --- a/tests/messages_data/rfc2822/example09.py +++ b/tests/messages_data/rfc2822/example09.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(1997, 11, 21, 9, 55, 6, tzinfo=datetime.timezone(datetime.timedelta(-1, 64800))), + date=datetime.datetime(1997, 11, 21, 9, 55, 6, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=64800))), date_str='Fri, 21 Nov 1997 09:55:06 -0600', text='This is a message just to say hello.\r\nSo, "Hello".\r\n', html='', diff --git a/tests/messages_data/rfc2822/example10.py b/tests/messages_data/rfc2822/example10.py index 7ee3485..db17540 100644 --- a/tests/messages_data/rfc2822/example10.py +++ b/tests/messages_data/rfc2822/example10.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(1969, 2, 13, 23, 32, tzinfo=datetime.timezone(datetime.timedelta(-1, 73800))), + date=datetime.datetime(1969, 2, 13, 23, 32, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=73800))), date_str='Thu,\r\n 13\r\n Feb\r\n 1969\r\n 23:32\r\n -0330 (Newfoundland Time)', text='Testing.\r\n', html='', diff --git a/tests/messages_data/rfc2822/example11.py b/tests/messages_data/rfc2822/example11.py index 4ed8696..883e051 100644 --- a/tests/messages_data/rfc2822/example11.py +++ b/tests/messages_data/rfc2822/example11.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2003, 7, 1, 10, 52, 37, tzinfo=datetime.timezone(datetime.timedelta(0, 7200))), + date=datetime.datetime(2003, 7, 1, 10, 52, 37, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200))), date_str='Tue, 1 Jul 2003 10:52:37 +0200', text='Hi everyone.\r\n', html='', diff --git a/tests/messages_data/rfc2822/example14.py b/tests/messages_data/rfc2822/example14.py index 12c6db5..5e0baf4 100644 --- a/tests/messages_data/rfc2822/example14.py +++ b/tests/messages_data/rfc2822/example14.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=('rudeboyjet@gmail.com',), - date=datetime.datetime(2011, 8, 19, 10, 47, 17, tzinfo=datetime.timezone(datetime.timedelta(0, 32400))), + date=datetime.datetime(2011, 8, 19, 10, 47, 17, tzinfo=datetime.timezone(datetime.timedelta(seconds=32400))), date_str='Fri, 19 Aug 2011 10:47:17 +0900', text='Hello\r\n', html='', diff --git a/tests/messages_data/simple.py b/tests/messages_data/simple.py index bf94dd3..c01efd3 100644 --- a/tests/messages_data/simple.py +++ b/tests/messages_data/simple.py @@ -8,7 +8,7 @@ cc=(), bcc=(), reply_to=(), - date=datetime.datetime(2008, 11, 22, 15, 4, 59, tzinfo=datetime.timezone(datetime.timedelta(0, 39600))), + date=datetime.datetime(2008, 11, 22, 15, 4, 59, tzinfo=datetime.timezone(datetime.timedelta(seconds=39600))), date_str='Sat, 22 Nov 2008 15:04:59 +1100', text='Plain email.\n\nHope it works well!\n\nMikel\n', html='', diff --git a/tests/test_message.py b/tests/test_message.py index a9c1419..9d14309 100644 --- a/tests/test_message.py +++ b/tests/test_message.py @@ -5,6 +5,7 @@ from tests.utils import MailboxTestCase from imap_tools import MailMessage, MailMessageFlags, EmailAddress +from imap_tools.consts import PYTHON_VERSION_MINOR def _load_module(full_path: str): @@ -116,6 +117,10 @@ def test_attributes(self): eml_path_set.append(full_path) for eml_path in eml_path_set: + # *there are many parser improvements at 3.13 + fixed_in_py313 = ('missing_body.eml', 'bad_date_header.eml', 'raw_email_with_at_display_name.eml') + if any(i in eml_path for i in fixed_in_py313) and PYTHON_VERSION_MINOR == 13: + continue py_path = eml_path.replace('/messages/', '/messages_data/')[:-4] + '.py' eml_data_module = _load_module(py_path) expected_data = eml_data_module.DATA # noqa diff --git a/tox.ini b/tox.ini index 0475691..436a723 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] envlist= - py3.3,py3.4,py3.5,py3.6,py3.7,py3.8,py3.9,py3.10,py3.11,py3.12,py3.13 + py3.8,py3.9,py3.10,py3.11,py3.12,py3.13 [testenv] commands=