Example #1
0
    def test_send_mail_html(self):
        send_mail(
            u"件名",
            u"本文",
            '*****@*****.**',
            ['*****@*****.**'],
            html_message=u"<h1>本文</h1>",
        )
        self.assertEquals(len(django_mail.outbox), 1)

        email_message = django_mail.outbox[0]
        self.assertEquals(email_message.body, u'本文')
        self.assertTrue(isinstance(email_message, EmailMultiAlternatives))

        self.assertTrue((u"<h1>本文</h1>", "text/html") in email_message.alternatives)

        message = django_mail.outbox[0].message()
        self.assertEquals(str(message['Subject']), '=?UTF-8?b?5Lu25ZCN?=')
        self.assertEquals(str(message['To']), '*****@*****.**')
        self.assertEquals(str(message['From']), '*****@*****.**')

        payloads = message.get_payload()

        # text + html ペイロード
        self.assertEquals(len(payloads), 2)
        self.assertEquals(payloads[0]['Content-Transfer-Encoding'], 'base64')
        self.assertEquals(payloads[0]['Content-Type'], 'text/plain; charset="UTF-8"')
        self.assertEquals(payloads[0].get_payload(), "5pys5paH\n")
        self.assertEquals(payloads[1]['Content-Transfer-Encoding'], 'base64')
        self.assertEquals(payloads[1]['Content-Type'], 'text/html; charset="UTF-8"')
        self.assertEquals(payloads[1].get_payload(), "PGgxPuacrOaWhzwvaDE+\n")
Example #2
0
    def test_pre_send_signal(self):
        def pre_send_signal(sender, message, **kwargs):
            message.from_email = message.from_email.replace(u'\uff5e', u'\u301c')
            message.to = map(lambda x: x.replace(u'\uff5e', u'\u301c'), message.to)
            message.bcc = map(lambda x: x.replace(u'\uff5e', u'\u301c'), message.bcc)
            message.subject = message.subject.replace(u'\uff5e', u'\u301c')
            message.body = message.body.replace(u'\uff5e', u'\u301c')
        mail_pre_send.connect(pre_send_signal)

        send_mail(
            u'件名',
            u'本文~テスト',
            u'差出人 <*****@*****.**>',
            [u'宛先 <*****@*****.**>'],
        )

        message = django_mail.outbox[0].message()

        self.assertEqual(str(message['Subject']), "=?ISO-2022-JP?b?GyRCN29MPhsoQg==?=")
        self.assertEqual(str(message['To']),
                         "=?ISO-2022-JP?b?GyRCMDhAaBsoQg==?= <*****@*****.**>")
        self.assertEqual(str(message['From']),
                         "=?ISO-2022-JP?b?GyRCOjk9UD9NGyhC?= <*****@*****.**>")
        self.assertEqual(message['Content-Transfer-Encoding'], '7bit')
        self.assertEqual(message['Content-Type'], 'text/plain; charset="ISO-2022-JP"')
        self.assertEqual(message.get_payload(), "\x1b$BK\\J8!A%F%9%H\x1b(B")
Example #3
0
    def test_email_localtime_strict(self):
        send_mail(
            u'件名',
            u'本文',
            u'差出人 <*****@*****.**>',
            [u'宛先 <*****@*****.**>'],
        )

        message = django_mail.outbox[0].message()
        self.assertTrue(message['Date'].endswith("+0900"))
Example #4
0
    def test_send_mail(self):
        send_mail(
            u'件名',
            u'本文',
            '*****@*****.**',
            ['*****@*****.**'],
            attachments=[('test.txt', u"データ", None)],
        )

        message = django_mail.outbox[0]
        self.assertEquals(message.attachments, [('test.txt', u"データ", None)])
Example #5
0
    def test_cc(self):
        send_mail(
            u'件名',
            u'本文',
            '*****@*****.**',
            ['*****@*****.**'],
            cc=['*****@*****.**'],
        )
        self.assertEquals(len(django_mail.outbox), 1)

        message = django_mail.outbox[0].message()
        self.assertEquals(str(message['To']), '*****@*****.**')
        self.assertEquals(str(message['Cc']), '*****@*****.**')
        self.assertEquals(str(message['From']), '*****@*****.**')
Example #6
0
    def test_email_all_forward(self):
        send_mail(
            u'件名',
            u'本文',
            '*****@*****.**',
            ['*****@*****.**'],
        )
        self.assertEquals(len(django_mail.outbox), 1)
        self.assertEquals(django_mail.outbox[0].body, u'本文')

        message = django_mail.outbox[0].message()
        self.assertEquals(str(message['Subject']), '=?UTF-8?b?5Lu25ZCN?=')
        self.assertEquals(str(message['To']), '*****@*****.**')
        self.assertEquals(str(message['From']), '*****@*****.**')
Example #7
0
    def test_cc(self):
        send_mail(
            u'件名',
            u'本文',
            '*****@*****.**',
            ['*****@*****.**'],
            cc=['*****@*****.**'],
        )
        self.assertEquals(len(django_mail.outbox), 1)

        message = django_mail.outbox[0].message()
        self.assertEquals(str(message['To']), '*****@*****.**')
        self.assertEquals(str(message['Cc']), '*****@*****.**')
        self.assertEquals(str(message['From']), '*****@*****.**')
Example #8
0
    def test_email_all_forward(self):
        send_mail(
            u'件名',
            u'本文',
            '*****@*****.**',
            ['*****@*****.**'],
        )
        self.assertEquals(len(django_mail.outbox), 1)
        self.assertEquals(django_mail.outbox[0].body, u'本文')

        message = django_mail.outbox[0].message()
        self.assertEquals(str(message['Subject']), '=?utf-8?b?5Lu25ZCN?=')
        self.assertEquals(str(message['To']), '*****@*****.**')
        self.assertEquals(str(message['From']), '*****@*****.**')
Example #9
0
    def test_email_charset_strict(self):
        send_mail(
            u'件名',
            u'本文',
            u'差出人 <*****@*****.**>',
            [u'宛先 <*****@*****.**>'],
        )

        message = django_mail.outbox[0].message()

        self.assertEqual(str(message['Subject']), "=?UTF-8?b?5Lu25ZCN?=")
        self.assertEqual(str(message['To']), "=?UTF-8?b?5a6b5YWI?= <*****@*****.**>")
        self.assertEqual(str(message['From']),
                         "=?UTF-8?b?5beu5Ye65Lq6?= <*****@*****.**>")
        self.assertEqual(message['Content-Transfer-Encoding'], 'base64')
        self.assertEqual(message['Content-Type'], 'text/plain; charset="UTF-8"')
        self.assertEqual(message.get_payload(), "5pys5paH\n")
Example #10
0
    def test_post_send_signal(self):
        test_list = []

        def post_send_signal(sender, message, **kwargs):
            self.assertEqual(message.subject, u'件名')
            self.assertEqual(message.body, u'本文')
            test_list.append("arrived")
        mail_post_send.connect(post_send_signal)

        send_mail(
            u'件名',
            u'本文',
            u'差出人 <*****@*****.**>',
            [u'宛先 <*****@*****.**>'],
        )

        self.assertTrue(test_list, ["arrived"])
Example #11
0
    def test_email_charset(self):
        send_mail(
            u'件名',
            u'本文',
            u'差出人 <*****@*****.**>',
            [u'宛先 <*****@*****.**>'],
        )

        self.assertEquals(len(django_mail.outbox), 1)
        self.assertEquals(django_mail.outbox[0].body, u'本文')

        message = django_mail.outbox[0].message()
        self.assertEquals(str(message['Subject']), '=?ISO-2022-JP?b?GyRCN29MPhsoQg==?=')
        self.assertEquals(str(message['To']),
                          '=?ISO-2022-JP?b?GyRCMDhAaBsoQg==?= <*****@*****.**>')
        self.assertEquals(str(message['From']),
                          '=?ISO-2022-JP?b?GyRCOjk9UD9NGyhC?= <*****@*****.**>')
Example #12
0
    def test_email_charset_strict(self):
        send_mail(
            u'件名',
            u'本文',
            u'差出人 <*****@*****.**>',
            [u'宛先 <*****@*****.**>'],
        )

        message = django_mail.outbox[0].message()

        self.assertEqual(str(message['Subject']), "=?ISO-2022-JP?b?GyRCN29MPhsoQg==?=")
        self.assertEqual(str(message['To']),
                         "=?ISO-2022-JP?b?GyRCMDhAaBsoQg==?= <*****@*****.**>")
        self.assertEqual(str(message['From']),
                         "=?ISO-2022-JP?b?GyRCOjk9UD9NGyhC?= <*****@*****.**>")
        self.assertEqual(message['Content-Transfer-Encoding'], '7bit')
        self.assertEqual(message['Content-Type'], 'text/plain; charset="ISO-2022-JP"')
        self.assertEqual(message.get_payload(), "\x1b$BK\\J8\x1b(B")
Example #13
0
    def test_post_send_signal(self):
        test_list = []

        def post_send_signal(sender, message, **kwargs):
            self.assertEqual(message.subject, u'件名')
            self.assertEqual(message.body, u'本文')
            test_list.append("arrived")

        mail_post_send.connect(post_send_signal)

        send_mail(
            u'件名',
            u'本文',
            u'差出人 <*****@*****.**>',
            [u'宛先 <*****@*****.**>'],
        )

        self.assertTrue(test_list, ["arrived"])
Example #14
0
 def test_fail_silently(self):
     send_mail(
         u'件名',
         u'本文',
         u'差出人 <*****@*****.**>',
         [u'宛先 <*****@*****.**>'],
         fail_silently=True,
     )
     send_template_mail(
         u'mailer/mail.tpl',
         u'差出人 <*****@*****.**>',
         [u'宛先 <*****@*****.**>'],
         extra_context={
             'subject': u'件名',
             'body': u'本文',
         },
         fail_silently=True,
     )
     send_mass_mail(((
         u'件名',
         u'本文',
         u'差出人 <*****@*****.**>',
         [u'宛先 <*****@*****.**>' % i],
     ) for i in range(10)),
                    fail_silently=True)
     mail_managers(
         u'件名',
         u'本文',
         fail_silently=True,
     )
     mail_managers_template(
         u'mailer/mail.tpl',
         extra_context={
             'subject': u'件名',
             'body': u'本文',
         },
         fail_silently=True,
     )
     mail_admins(
         u'件名',
         u'本文',
         fail_silently=True,
     )
Example #15
0
    def test_bcc(self):
        send_mail(
            u'件名',
            u'本文',
            '*****@*****.**',
            ['*****@*****.**'],
            bcc=['*****@*****.**'],
        )
        self.assertEquals(len(django_mail.outbox), 1)

        message = django_mail.outbox[0].message()

        self.assertEquals(str(message['To']), '*****@*****.**')
        self.assertEquals(str(message['From']), '*****@*****.**')

        # Bcc is not included in email headers
        self.assertEquals(message['Bcc'], None)

        self.assertTrue(u'*****@*****.**' in django_mail.outbox[0].bcc)
Example #16
0
    def test_bcc(self):
        send_mail(
            u'件名',
            u'本文',
            '*****@*****.**',
            ['*****@*****.**'],
            bcc=['*****@*****.**'],
        )
        self.assertEquals(len(django_mail.outbox), 1)

        message = django_mail.outbox[0].message()

        self.assertEquals(str(message['To']), '*****@*****.**')
        self.assertEquals(str(message['From']), '*****@*****.**')

        # Bcc is not included in email headers
        self.assertEquals(message['Bcc'], None)

        self.assertTrue(u'*****@*****.**' in django_mail.outbox[0].bcc)
Example #17
0
 def test_fail_silently(self):
     send_mail(
         u'件名',
         u'本文',
         u'差出人 <*****@*****.**>',
         [u'宛先 <*****@*****.**>'],
         fail_silently=True,
     )
     send_template_mail(
         u'mailer/mail.tpl',
         u'差出人 <*****@*****.**>',
         [u'宛先 <*****@*****.**>'],
         extra_context={
             'subject': u'件名',
             'body': u'本文',
         },
         fail_silently=True,
     )
     send_mass_mail(((
         u'件名',
         u'本文',
         u'差出人 <*****@*****.**>',
         [u'宛先 <*****@*****.**>' % i],
     ) for i in range(10)), fail_silently=True)
     mail_managers(
         u'件名',
         u'本文',
         fail_silently=True,
     )
     mail_managers_template(
         u'mailer/mail.tpl',
         extra_context={
             'subject': u'件名',
             'body': u'本文',
         },
         fail_silently=True,
     )
     mail_admins(
         u'件名',
         u'本文',
         fail_silently=True,
     )
Example #18
0
    def test_email_charset(self):
        send_mail(
            u'件名',
            u'本文',
            u'差出人 <*****@*****.**>',
            [u'宛先 <*****@*****.**>'],
        )

        self.assertEquals(len(django_mail.outbox), 1)
        self.assertEquals(django_mail.outbox[0].body, u'本文')

        message = django_mail.outbox[0].message()
        self.assertEquals(str(message['Subject']),
                          '=?iso-2022-jp?b?GyRCN29MPhsoQg==?=')
        self.assertEquals(
            str(message['To']),
            '=?iso-2022-jp?b?GyRCMDhAaBsoQg==?= <*****@*****.**>')
        self.assertEquals(
            str(message['From']),
            '=?iso-2022-jp?b?GyRCOjk9UD9NGyhC?= <*****@*****.**>')
Example #19
0
    def test_email_charset_strict(self):
        send_mail(
            u'件名',
            u'本文',
            u'差出人 <*****@*****.**>',
            [u'宛先 <*****@*****.**>'],
        )

        message = django_mail.outbox[0].message()

        self.assertEqual(str(message['Subject']), "=?utf-8?b?5Lu25ZCN?=")
        self.assertEqual(str(message['To']),
                         "=?utf-8?b?5a6b5YWI?= <*****@*****.**>")
        self.assertEqual(
            str(message['From']),
            "=?utf-8?b?5beu5Ye65Lq6?= <*****@*****.**>")
        self.assertEqual(message['Content-Transfer-Encoding'], '8bit')
        self.assertEqual(message['Content-Type'],
                         'text/plain; charset="utf-8"')
        self.assertEqual(message.get_payload(decode=True),
                         u'本文'.encode('utf-8'))
Example #20
0
    def test_email_charset_strict(self):
        send_mail(
            u'件名',
            u'本文',
            u'差出人 <*****@*****.**>',
            [u'宛先 <*****@*****.**>'],
        )

        message = django_mail.outbox[0].message()

        self.assertEqual(str(message['Subject']),
                         "=?iso-2022-jp?b?GyRCN29MPhsoQg==?=")
        self.assertEqual(
            str(message['To']),
            "=?iso-2022-jp?b?GyRCMDhAaBsoQg==?= <*****@*****.**>")
        self.assertEqual(
            str(message['From']),
            "=?iso-2022-jp?b?GyRCOjk9UD9NGyhC?= <*****@*****.**>")
        self.assertEqual(message['Content-Transfer-Encoding'], '7bit')
        self.assertEqual(message['Content-Type'],
                         'text/plain; charset="iso-2022-jp"')
        self.assertEqual(message.get_payload(), "\x1b$BK\\J8\x1b(B")
Example #21
0
    def test_send_mail_html(self):
        send_mail(
            u"件名",
            u"本文",
            '*****@*****.**',
            ['*****@*****.**'],
            html_message=u"<h1>本文</h1>",
        )
        self.assertEquals(len(django_mail.outbox), 1)

        email_message = django_mail.outbox[0]
        self.assertEquals(email_message.body, u'本文')
        self.assertTrue(isinstance(email_message, EmailMultiAlternatives))

        self.assertTrue((u"<h1>本文</h1>",
                         "text/html") in email_message.alternatives)

        message = django_mail.outbox[0].message()
        self.assertEquals(str(message['Subject']), '=?utf-8?b?5Lu25ZCN?=')
        self.assertEquals(str(message['To']), '*****@*****.**')
        self.assertEquals(str(message['From']), '*****@*****.**')

        payloads = message.get_payload()

        # text + html ペイロード
        self.assertEquals(len(payloads), 2)
        self.assertEquals(payloads[0]['Content-Transfer-Encoding'], '8bit')
        self.assertEquals(payloads[0]['Content-Type'],
                          'text/plain; charset="utf-8"')
        self.assertEquals(payloads[0].get_payload(decode=True),
                          u"本文".encode("utf-8"))
        self.assertEquals(payloads[1]['Content-Transfer-Encoding'], '8bit')
        self.assertEquals(payloads[1]['Content-Type'],
                          'text/html; charset="utf-8"')
        self.assertEquals(payloads[1].get_payload(decode=True),
                          u"<h1>本文</h1>".encode("utf-8"))
Example #22
0
 def test_fail_loud(self):
     try:
         send_mail(
             u'件名',
             u'本文',
             u'差出人 <*****@*****.**>',
             [u'宛先 <*****@*****.**>'],
         )
         self.fail("Expected Error")
     except EmailError:
         pass
     try:
         send_template_mail(
             u'mailer/mail.tpl',
             u'差出人 <*****@*****.**>',
             [u'宛先 <*****@*****.**>'],
             extra_context={
                 'subject': u'件名',
                 'body': u'本文',
             },
         )
         self.fail("Expected Error")
     except EmailError:
         pass
     try:
         send_mass_mail(((
             u'件名',
             u'本文',
             u'差出人 <*****@*****.**>',
             [u'宛先 <*****@*****.**>' % i],
         ) for i in range(10)))
         self.fail("Expected Error")
     except EmailError:
         pass
     try:
         mail_managers(
             u'件名',
             u'本文',
         )
         self.fail("Expected Error")
     except EmailError:
         pass
     try:
         mail_managers_template(
             u'mailer/mail.tpl',
             extra_context={
                 'subject': u'件名',
                 'body': u'本文',
             },
         )
         self.fail("Expected Error")
     except EmailError:
         pass
     try:
         mail_admins(
             u'件名',
             u'本文',
         )
         self.fail("Expected Error")
     except EmailError:
         pass
Example #23
0
 def test_fail_loud(self):
     try:
         send_mail(
             u'件名',
             u'本文',
             u'差出人 <*****@*****.**>',
             [u'宛先 <*****@*****.**>'],
         )
         self.fail("Expected Error")
     except EmailError:
         pass
     try:
         send_template_mail(
             u'mailer/mail.tpl',
             u'差出人 <*****@*****.**>',
             [u'宛先 <*****@*****.**>'],
             extra_context={
                 'subject': u'件名',
                 'body': u'本文',
             },
         )
         self.fail("Expected Error")
     except EmailError:
         pass
     try:
         send_mass_mail(((
             u'件名',
             u'本文',
             u'差出人 <*****@*****.**>',
             [u'宛先 <*****@*****.**>' % i],
         ) for i in range(10)))
         self.fail("Expected Error")
     except EmailError:
         pass
     try:
         mail_managers(
             u'件名',
             u'本文',
         )
         self.fail("Expected Error")
     except EmailError:
         pass
     try:
         mail_managers_template(
             u'mailer/mail.tpl',
             extra_context={
                 'subject': u'件名',
                 'body': u'本文',
             },
         )
         self.fail("Expected Error")
     except EmailError:
         pass
     try:
         mail_admins(
             u'件名',
             u'本文',
         )
         self.fail("Expected Error")
     except EmailError:
         pass