示例#1
0
    def test_to_mime_message_with_data(self):
        msg = self._dummy_message()
        envelope = Envelope(**msg)

        mime_msg = envelope.to_mime_message()
        assert mime_msg is not None

        assert mime_msg['Subject'] == msg['subject']
        assert mime_msg['To'] == 'Example To <*****@*****.**>'
        assert mime_msg['From'] == 'Example From <*****@*****.**>'

        cc_header = (
            '[email protected],'
            'Example CC2 <*****@*****.**>,'
            'Example CC3 <*****@*****.**>'
        )
        assert mime_msg['CC'] == cc_header
        assert 'BCC' not in mime_msg

        assert mime_msg['Reply-To'] == msg['headers']['Reply-To']
        assert mime_msg['X-Mailer'] == msg['headers']['X-Mailer']

        mime_msg_parts = [part for part in mime_msg.walk()]
        assert len(mime_msg_parts) == 3
        text_part, html_part = mime_msg_parts[1:]

        assert text_part.get_content_type() == 'text/plain'
        assert text_part.get_payload(decode=True) == msg['text_body'].encode('utf-8')

        assert html_part.get_content_type() == 'text/html'
        assert html_part.get_payload(decode=True) == msg['html_body'].encode('utf-8')
示例#2
0
    def test_to_mime_message_with_data(self):
        msg = self._dummy_message()
        envelope = Envelope(**msg)

        mime_msg = envelope.to_mime_message()
        assert mime_msg is not None

        assert mime_msg['Subject'] == msg['subject']
        assert mime_msg['To'] == 'Example To <*****@*****.**>'
        assert mime_msg['From'] == 'Example From <*****@*****.**>'

        cc_header = (
            '[email protected],'
            'Example CC2 <*****@*****.**>,'
            'Example CC3 <*****@*****.**>'
        )
        assert mime_msg['CC'] == cc_header
        assert 'BCC' not in mime_msg

        assert mime_msg['Reply-To'] == msg['headers']['Reply-To']
        assert mime_msg['X-Mailer'] == msg['headers']['X-Mailer']

        mime_msg_parts = [part for part in mime_msg.walk()]
        assert len(mime_msg_parts) == 3
        text_part, html_part = mime_msg_parts[1:]

        assert text_part.get_content_type() == 'text/plain'
        assert text_part.get_payload(decode=True) == msg['text_body'].encode('utf-8')

        assert html_part.get_content_type() == 'text/html'
        assert html_part.get_payload(decode=True) == msg['html_body'].encode('utf-8')
示例#3
0
    def test_to_mime_message_with_data(self):
        msg = self._dummy_message()
        envelope = Envelope(**msg)

        mime_msg = envelope.to_mime_message()
        assert mime_msg is not None

        assert mime_msg["Subject"] == msg["subject"]
        assert mime_msg["To"] == "Example To <*****@*****.**>"
        assert mime_msg["From"] == "Example From <*****@*****.**>"

        cc_header = "[email protected]," "Example CC2 <*****@*****.**>," "Example CC3 <*****@*****.**>"
        assert mime_msg["CC"] == cc_header
        assert "BCC" not in mime_msg

        assert mime_msg["Reply-To"] == msg["headers"]["Reply-To"]
        assert mime_msg["X-Mailer"] == msg["headers"]["X-Mailer"]

        mime_msg_parts = [part for part in mime_msg.walk()]
        assert len(mime_msg_parts) == 3
        text_part, html_part = mime_msg_parts[1:]

        assert text_part.get_content_type() == "text/plain"
        assert text_part.get_payload(decode=True) == msg["text_body"].encode("utf-8")

        assert html_part.get_content_type() == "text/html"
        assert html_part.get_payload(decode=True) == msg["html_body"].encode("utf-8")
示例#4
0
    def test_to_mime_message_with_many_to_addresses(self):
        msg = self._dummy_message()
        msg["to_addr"] = ["*****@*****.**", "Example To2 <*****@*****.**>", ("*****@*****.**", "Example To3")]
        envelope = Envelope(**msg)

        mime_msg = envelope.to_mime_message()
        assert mime_msg is not None

        to_header = "[email protected]," "Example To2 <*****@*****.**>," "Example To3 <*****@*****.**>"
        assert mime_msg["To"] == to_header
示例#5
0
    def test_to_mime_message_with_no_data(self):
        envelope = Envelope()
        mime_msg = envelope.to_mime_message()

        assert mime_msg['Subject'] == ''
        assert mime_msg['To'] == ''
        assert mime_msg['From'] == ''

        assert 'CC' not in mime_msg
        assert 'BCC' not in mime_msg

        mime_msg_parts = [part for part in mime_msg.walk()]
        assert len(mime_msg_parts) == 1
示例#6
0
    def test_to_mime_message_with_no_data(self):
        envelope = Envelope()
        mime_msg = envelope.to_mime_message()

        assert mime_msg["Subject"] == ""
        assert mime_msg["To"] == ""
        assert mime_msg["From"] == ""

        assert "CC" not in mime_msg
        assert "BCC" not in mime_msg

        mime_msg_parts = [part for part in mime_msg.walk()]
        assert len(mime_msg_parts) == 1
示例#7
0
    def test_to_mime_message_with_no_data(self):
        envelope = Envelope()
        mime_msg = envelope.to_mime_message()

        assert mime_msg['Subject'] == ''
        assert mime_msg['To'] == ''
        assert mime_msg['From'] == ''

        assert 'CC' not in mime_msg
        assert 'BCC' not in mime_msg

        mime_msg_parts = [part for part in mime_msg.walk()]
        assert len(mime_msg_parts) == 1
示例#8
0
    def test_to_mime_message_unicode(self):
        msg = {
            'to_addr': ('*****@*****.**', u'ęóąśłżźćń'),
            'from_addr': ('*****@*****.**', u'ęóąśłżźćń'),
            'subject': u'ęóąśłżźćń',
            'html_body': u'ęóąśłżźćń',
            'text_body': u'ęóąśłżźćń',
            'cc_addr': [('*****@*****.**', u'ęóąśłżźćń')],
            'bcc_addr': [u'ęóąśłżźćń <*****@*****.**>'],
            'headers': {
                'X-Test': u'ęóąśłżźćń'
            },
            'charset': 'utf-8'
        }

        envelope = Envelope(**msg)

        def enc_addr_header(name, email):
            header = Header(name)
            header.append(email)
            return header.encode()

        mime_msg = envelope.to_mime_message()
        assert mime_msg is not None

        assert mime_msg['Subject'] == Header(msg['subject'], 'utf-8').encode()
        assert mime_msg['To'] == enc_addr_header(u'ęóąśłżźćń',
                                                 '<*****@*****.**>')
        assert mime_msg['From'] == enc_addr_header(u'ęóąśłżźćń',
                                                   '<*****@*****.**>')

        assert mime_msg['CC'] == enc_addr_header(u'ęóąśłżźćń',
                                                 '<*****@*****.**>')

        assert mime_msg['BCC'] == enc_addr_header(u'ęóąśłżźćń',
                                                  '<*****@*****.**>')

        assert mime_msg['X-Test'] == Header(msg['headers']['X-Test'],
                                            'utf-8').encode()

        mime_msg_parts = [part for part in mime_msg.walk()]
        assert len(mime_msg_parts) == 3
        text_part, html_part = mime_msg_parts[1:]

        assert text_part.get_content_type() == 'text/plain'
        assert text_part.get_payload(
            decode=True) == msg['text_body'].encode('utf-8')

        assert html_part.get_content_type() == 'text/html'
        assert html_part.get_payload(
            decode=True) == msg['html_body'].encode('utf-8')
示例#9
0
    def test_to_mime_message_with_many_to_addresses(self):
        msg = self._dummy_message()
        msg['to_addr'] = [
            '*****@*****.**', 'Example To2 <*****@*****.**>',
            ('*****@*****.**', 'Example To3')
        ]
        envelope = Envelope(**msg)

        mime_msg = envelope.to_mime_message()
        assert mime_msg is not None

        to_header = ('[email protected],'
                     'Example To2 <*****@*****.**>,'
                     'Example To3 <*****@*****.**>')
        assert mime_msg['To'] == to_header
示例#10
0
    def test_to_mime_message_unicode(self):
        msg = {
            'to_addr': ('*****@*****.**', u'ęóąśłżźćń'),
            'from_addr': ('*****@*****.**', u'ęóąśłżźćń'),
            'subject': u'ęóąśłżźćń',
            'html_body': u'ęóąśłżźćń',
            'text_body': u'ęóąśłżźćń',
            'cc_addr': [
                ('*****@*****.**', u'ęóąśłżźćń')
            ],
            'bcc_addr': [
                u'ęóąśłżźćń <*****@*****.**>'
            ],
            'headers': {
                'X-Test': u'ęóąśłżźćń'
            },
            'charset': 'utf-8'
        }

        envelope = Envelope(**msg)

        def enc_addr_header(name, email):
            header = Header(name)
            header.append(email)
            return header.encode()

        mime_msg = envelope.to_mime_message()
        assert mime_msg is not None

        assert mime_msg['Subject'] == Header(msg['subject'], 'utf-8').encode()
        assert mime_msg['To'] == enc_addr_header(u'ęóąśłżźćń', '<*****@*****.**>')
        assert mime_msg['From'] == enc_addr_header(u'ęóąśłżźćń', '<*****@*****.**>')

        assert mime_msg['CC'] == enc_addr_header(u'ęóąśłżźćń', '<*****@*****.**>')

        assert 'BCC' not in mime_msg

        assert mime_msg['X-Test'] == Header(msg['headers']['X-Test'], 'utf-8').encode()

        mime_msg_parts = [part for part in mime_msg.walk()]
        assert len(mime_msg_parts) == 3
        text_part, html_part = mime_msg_parts[1:]

        assert text_part.get_content_type() == 'text/plain'
        assert text_part.get_payload(decode=True) == msg['text_body'].encode('utf-8')

        assert html_part.get_content_type() == 'text/html'
        assert html_part.get_payload(decode=True) == msg['html_body'].encode('utf-8')
示例#11
0
    def test_send(self):
        conn = SMTP('localhost')

        msg = self._dummy_message()
        envelope = Envelope(**msg)
        mime_msg = envelope.to_mime_message()

        conn.send(envelope)
        assert conn._conn is not None
        assert len(conn._conn._call_stack.get('sendmail', [])) == 1

        call_args = conn._conn._call_stack['sendmail'][0][0]
        assert len(call_args) == 3
        assert call_args[0] == mime_msg['From']
        assert call_args[1] == mime_msg['To']
        assert call_args[2] != ''
示例#12
0
    def test_send(self):
        conn = SMTP('localhost')

        msg = self._dummy_message()
        envelope = Envelope(**msg)
        mime_msg = envelope.to_mime_message()

        conn.send(envelope)
        assert conn._conn is not None
        assert len(conn._conn._call_stack.get('sendmail', [])) == 1

        call_args = conn._conn._call_stack['sendmail'][0][0]
        assert len(call_args) == 3
        assert call_args[0] == mime_msg['From']
        assert call_args[1] == mime_msg['To']
        assert call_args[2] != ''
示例#13
0
    def test_to_mime_message_with_many_to_addresses(self):
        msg = self._dummy_message()
        msg['to_addr'] = [
            '*****@*****.**',
            'Example To2 <*****@*****.**>',
            ('*****@*****.**', 'Example To3')
        ]
        envelope = Envelope(**msg)

        mime_msg = envelope.to_mime_message()
        assert mime_msg is not None

        to_header = (
            '[email protected],'
            'Example To2 <*****@*****.**>,'
            'Example To3 <*****@*****.**>'
        )
        assert mime_msg['To'] == to_header
示例#14
0
    def test_send(self):
        conn = SMTP("localhost")

        msg = self._dummy_message()
        envelope = Envelope(**msg)
        mime_msg = envelope.to_mime_message()

        conn.send(envelope)
        assert conn._conn is not None
        assert len(conn._conn._call_stack.get("sendmail", [])) == 1

        call_args = conn._conn._call_stack["sendmail"][0][0]
        assert len(call_args) == 3
        assert call_args[0] == mime_msg["From"]
        assert call_args[1] == [
            envelope._addrs_to_header([addr]) for addr in envelope._to + envelope._cc + envelope._bcc
        ]
        assert call_args[2] != ""
示例#15
0
    def test_to_mime_message_unicode(self):
        msg = {
            'to_addr': '*****@*****.**',
            'to_name': u'ęóąśłżźćń',
            'from_addr': '*****@*****.**',
            'from_name': u'ęóąśłżźćń',
            'subject': u'ęóąśłżźćń',
            'html_body': u'ęóąśłżźćń',
            'text_body': u'ęóąśłżźćń',
            'cc_addrs': [('*****@*****.**', u'ęóąśłżźćń')],
            'bcc_addrs': [('*****@*****.**', u'ęóąśłżźćń')],
            'headers': {
                'X-Test': u'ęóąśłżźćń'
            },
            'charset': 'utf-8'
        }

        envelope = Envelope(**msg)

        mime_msg = envelope.to_mime_message()
        assert mime_msg is not None

        assert mime_msg['Subject'] == msg['subject'].encode('utf-8')
        assert mime_msg['To'] == u'ęóąśłżźćń <*****@*****.**>'.encode('utf-8')
        assert mime_msg['From'] == u'ęóąśłżźćń <*****@*****.**>'.\
            encode('utf-8')

        cc_header = u'ęóąśłżźćń <*****@*****.**>'
        assert mime_msg['CC'] == cc_header.encode('utf-8')

        bcc_header = u'ęóąśłżźćń <*****@*****.**>'
        assert mime_msg['BCC'] == bcc_header.encode('utf-8')

        assert mime_msg['X-Test'] == msg['headers']['X-Test'].encode('utf-8')

        mime_msg_parts = [part for part in mime_msg.walk()]
        assert len(mime_msg_parts) == 3
        text_part, html_part = mime_msg_parts[1:]

        assert text_part.get_content_type() == 'text/plain'
        assert text_part.get_payload() == msg['text_body'].encode('utf-8')

        assert html_part.get_content_type() == 'text/html'
        assert html_part.get_payload() == msg['html_body'].encode('utf-8')
示例#16
0
    def test_to_mime_message_unicode(self):
        msg = {
            "to_addr": ("*****@*****.**", u"ęóąśłżźćń"),
            "from_addr": ("*****@*****.**", u"ęóąśłżźćń"),
            "subject": u"ęóąśłżźćń",
            "html_body": u"ęóąśłżźćń",
            "text_body": u"ęóąśłżźćń",
            "cc_addr": [("*****@*****.**", u"ęóąśłżźćń")],
            "bcc_addr": [u"ęóąśłżźćń <*****@*****.**>"],
            "headers": {"X-Test": u"ęóąśłżźćń"},
            "charset": "utf-8",
        }

        envelope = Envelope(**msg)

        def enc_addr_header(name, email):
            header = Header(name)
            header.append(email)
            return header.encode()

        mime_msg = envelope.to_mime_message()
        assert mime_msg is not None

        assert mime_msg["Subject"] == Header(msg["subject"], "utf-8").encode()
        assert mime_msg["To"] == enc_addr_header(u"ęóąśłżźćń", "<*****@*****.**>")
        assert mime_msg["From"] == enc_addr_header(u"ęóąśłżźćń", "<*****@*****.**>")

        assert mime_msg["CC"] == enc_addr_header(u"ęóąśłżźćń", "<*****@*****.**>")

        assert "BCC" not in mime_msg

        assert mime_msg["X-Test"] == Header(msg["headers"]["X-Test"], "utf-8").encode()

        mime_msg_parts = [part for part in mime_msg.walk()]
        assert len(mime_msg_parts) == 3
        text_part, html_part = mime_msg_parts[1:]

        assert text_part.get_content_type() == "text/plain"
        assert text_part.get_payload(decode=True) == msg["text_body"].encode("utf-8")

        assert html_part.get_content_type() == "text/html"
        assert html_part.get_payload(decode=True) == msg["html_body"].encode("utf-8")