def test_prefers_html_body_over_text(self):
        mime_email = self._given_mime_email('email-html.mime')

        email = email_parser.parse_mime_email(mime_email)

        self.assertEqual(email.get('body'),
                         '<div dir="ltr">Body of the message.</div>\n')
    def test_parses_email_with_cc_and_bcc(self):
        mime_email = self._given_mime_email('email-ccbcc.mime')

        email = email_parser.parse_mime_email(mime_email)

        self.assertEqual(email.get('bcc'), ['*****@*****.**'])
        self.assertEqual(email.get('cc'),
                         ['*****@*****.**', '*****@*****.**'])
    def test_parses_email_with_attachments(self):
        mime_email = self._given_mime_email('email-attachment.mime')

        email = email_parser.parse_mime_email(mime_email)
        attachments = email.get('attachments', [])

        self.assertEqual(len(attachments), 1)
        self.assertStartsWith(attachments[0].get('content'), 'iVBORw0')
        self.assertEqual(attachments[0].get('filename'),
                         'cute-mouse-clipart-mouse4.png')
    def test_parses_email_metadata(self):
        mime_email = self._given_mime_email('email-html.mime')

        email = email_parser.parse_mime_email(mime_email)

        self.assertEqual(email.get('from'), '*****@*****.**')
        self.assertEqual(email.get('subject'), 'Two recipients')
        self.assertEqual(email.get('sent_at'), '2017-02-13 06:25')
        self.assertEqual(email.get('to'), ['*****@*****.**',
                                           '*****@*****.**'])
    def __call__(self, resource_id: str):
        mime_email = email_receive.STORAGE.fetch_text(resource_id)
        self.log_info('Fetched inbound MIME email %s', resource_id)

        email = parse_mime_email(mime_email)
        email = inline_images(email)
        server_datastore.store_email(resource_id, email)
        self.log_info('Stored inbound email %s', resource_id)

        email_receive.STORAGE.delete(resource_id)
        self.log_info('Deleted inbound MIME email %s', resource_id)

        return 'OK', 200
    def __call__(self, resource_id: str):
        mime_email = email_receive.STORAGE.fetch_text(resource_id)

        email = parse_mime_email(mime_email)
        email = format_attachments(email)
        email = format_inline_images(email)
        server_datastore.store_email(resource_id, email)

        email_receive.STORAGE.delete(resource_id)

        self.log_event(
            events.EMAIL_STORED_FOR_CLIENT,
            {'domain': get_domain(email.get('from', ''))})  # noqa: E501
        return 'OK', 200
Exemplo n.º 7
0
 def _parse(cls, mime_email):
     return email_parser.parse_mime_email(mime_email)
Exemplo n.º 8
0
 def _parse_mime_email(cls, mime_email: str) -> dict:
     email = parse_mime_email(mime_email)
     email = format_attachments(email)
     email = format_inline_images(email)
     return email