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")
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")
def test_email_localtime_strict(self): send_mail( u'件名', u'本文', u'差出人 <*****@*****.**>', [u'宛先 <*****@*****.**>'], ) message = django_mail.outbox[0].message() self.assertTrue(message['Date'].endswith("+0900"))
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)])
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']), '*****@*****.**')
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']), '*****@*****.**')
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']), '*****@*****.**')
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")
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"])
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?= <*****@*****.**>')
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")
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, )
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)
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?= <*****@*****.**>')
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'))
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")
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"))
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