def test_bcc(self): send_template_mail( u'mailer/mail.tpl', u'差出人 <*****@*****.**>', [u'差出人 <*****@*****.**>'], bcc=[u'宛先 <*****@*****.**>'], extra_context={ 'subject': u'これは\r改行\nの\nある\r\n件名', 'body': u'本文', }, fail_silently=False, ) self.assertEquals(len(django_mail.outbox), 1) mail_message = django_mail.outbox[0] message = mail_message.message() self.assertEquals(str(message['To']), '=?UTF-8?b?5beu5Ye65Lq6?= <*****@*****.**>') self.assertEquals(str(message['From']), '=?UTF-8?b?5beu5Ye65Lq6?= <*****@*****.**>') # Bcc is not included in email headers self.assertEquals(message['Bcc'], None) self.assertTrue(u'宛先 <*****@*****.**>' in django_mail.outbox[0].bcc)
def test_cc(self): send_template_mail( u'mailer/mail.tpl', u'差出人 <*****@*****.**>', [u'差出人 <*****@*****.**>'], cc=[u'宛先 <*****@*****.**>'], extra_context={ 'subject': u'これは\r改行\nの\nある\r\n件名', 'body': u'本文', }, fail_silently=False, ) self.assertEquals(len(django_mail.outbox), 1) mail_message = django_mail.outbox[0] message = mail_message.message() self.assertEquals( str(message['To']), '=?utf-8?b?5beu5Ye65Lq6?= <*****@*****.**>') self.assertEquals(str(message['Cc']), '=?utf-8?b?5a6b5YWI?= <*****@*****.**>') self.assertEquals( str(message['From']), '=?utf-8?b?5beu5Ye65Lq6?= <*****@*****.**>')
def test_bcc(self): send_template_mail( u'mailer/mail.tpl', u'差出人 <*****@*****.**>', [u'差出人 <*****@*****.**>'], bcc=[u'宛先 <*****@*****.**>'], extra_context={ 'subject': u'これは\r改行\nの\nある\r\n件名', 'body': u'本文', }, fail_silently=False, ) self.assertEquals(len(django_mail.outbox), 1) mail_message = django_mail.outbox[0] message = mail_message.message() self.assertEquals( str(message['To']), '=?utf-8?b?5beu5Ye65Lq6?= <*****@*****.**>') self.assertEquals( str(message['From']), '=?utf-8?b?5beu5Ye65Lq6?= <*****@*****.**>') # Bcc is not included in email headers self.assertEquals(message['Bcc'], None) self.assertTrue( u'宛先 <*****@*****.**>' in django_mail.outbox[0].bcc)
def test_multi_line_subject(self): send_template_mail( u'mailer/mail.tpl', u'差出人 <*****@*****.**>', [u'宛先 <*****@*****.**>'], extra_context={ 'subject': u'これは\r改行\nの\nある\r\n件名', 'body': u'本文', }, fail_silently=False, ) self.assertEquals(len(django_mail.outbox), 1) mail_message = django_mail.outbox[0] self.assertEquals(mail_message.subject, u'これは改行のある件名') self.assertEquals(mail_message.body, u'本文\n') message = mail_message.message() self.assertEquals( str(message['Subject']), '=?utf-8?b?44GT44KM44Gv5pS56KGM44Gu44GC44KL5Lu25ZCN?=') self.assertEquals(str(message['To']), '=?utf-8?b?5a6b5YWI?= <*****@*****.**>') self.assertEquals( str(message['From']), '=?utf-8?b?5beu5Ye65Lq6?= <*****@*****.**>')
def test_email_default_context_overwrite(self): send_template_mail( u'mailer/mail.tpl', u'差出人 <*****@*****.**>', [u'宛先 <*****@*****.**>'], extra_context={ 'subject': 'overwrite', 'body': u'本文', }, fail_silently=False, ) # Check to make sure we don't overwrite the data in # settings.EMAIL_DEFAULT_CONTEXT send_template_mail( u'mailer/mail.tpl', u'差出人 <*****@*****.**>', [u'宛先 <*****@*****.**>'], extra_context={ 'body': u'本文', }, fail_silently=False, ) self.assertEquals(len(django_mail.outbox), 2) self.assertEquals(django_mail.outbox[1].body, u'本文\n') message = django_mail.outbox[1].message() self.assertEquals(str(message['Subject']), '=?UTF-8?b?5Lu25ZCN?=') self.assertEquals(str(message['To']), '=?UTF-8?b?5a6b5YWI?= <*****@*****.**>') self.assertEquals(str(message['From']), '=?UTF-8?b?5beu5Ye65Lq6?= <*****@*****.**>')
def test_email_default_context_overwrite(self): send_template_mail( u'mailer/mail.tpl', u'差出人 <*****@*****.**>', [u'宛先 <*****@*****.**>'], extra_context={ 'subject': 'overwrite', 'body': u'本文', }, fail_silently=False, ) # Check to make sure we don't overwrite the data in # settings.EMAIL_DEFAULT_CONTEXT send_template_mail( u'mailer/mail.tpl', u'差出人 <*****@*****.**>', [u'宛先 <*****@*****.**>'], extra_context={ 'body': u'本文', }, fail_silently=False, ) self.assertEquals(len(django_mail.outbox), 2) self.assertEquals(django_mail.outbox[1].body, u'本文\n') message = django_mail.outbox[1].message() self.assertEquals(str(message['Subject']), '=?utf-8?b?5Lu25ZCN?=') self.assertEquals(str(message['To']), '=?utf-8?b?5a6b5YWI?= <*****@*****.**>') self.assertEquals( str(message['From']), '=?utf-8?b?5beu5Ye65Lq6?= <*****@*****.**>')
def test_send_template_mail(self): send_template_mail( u'mailer/mail.tpl', u'*****@*****.**', [u'*****@*****.**'], extra_context={ 'subject': u'件名', 'body': u'本文', 'html': u"<h1>本文</h1>", }, fail_silently=False, html_template_name=u'mailer/html_mail.tpl', attachments=[('test.txt', u"データ", None)], ) message = django_mail.outbox[0] self.assertEquals(message.attachments, [('test.txt', u"データ", None)])
def test_send_template_mail(self): send_template_mail( u'mailer/mail.tpl', u'*****@*****.**', [u'*****@*****.**'], extra_context={ 'subject': u'件名', 'body': u'本文', 'html': u"<h1>本文</h1>", }, fail_silently=False, html_template_name=u'mailer/html_mail.tpl', attachments=[('test.txt', u"データ", 'text/plain')], ) message = django_mail.outbox[0] self.assertEquals(message.attachments, [('test.txt', u"データ", 'text/plain')])
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_email_default_context(self): send_template_mail( u'mailer/mail.tpl', u'差出人 <*****@*****.**>', [u'宛先 <*****@*****.**>'], extra_context={ 'body': u'本文', }, fail_silently=False, ) self.assertEquals(len(django_mail.outbox), 1) self.assertEquals(django_mail.outbox[0].body, u'本文\n') message = django_mail.outbox[0].message() self.assertEquals(str(message['Subject']), '=?UTF-8?b?5Lu25ZCN?=') self.assertEquals(str(message['To']), '=?UTF-8?b?5a6b5YWI?= <*****@*****.**>') self.assertEquals(str(message['From']), '=?UTF-8?b?5beu5Ye65Lq6?= <*****@*****.**>')
def test_html_template_mail(self): send_template_mail( u'mailer/mail.tpl', u'*****@*****.**', [u'*****@*****.**'], extra_context={ 'subject': u'件名', 'body': u'本文', 'html': u"<h1>本文</h1>", }, fail_silently=False, html_template_name=u'mailer/html_mail.tpl', ) self.assertEquals(len(django_mail.outbox), 1) email_message = django_mail.outbox[0] self.assertEquals(email_message.body, u'本文\n') self.assertTrue(isinstance(email_message, EmailMultiAlternatives)) self.assertTrue((u"<h1>本文</h1>\n", "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"本文\n".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>\n".encode('utf-8'))
def test_email_default_context(self): send_template_mail( u'mailer/mail.tpl', u'差出人 <*****@*****.**>', [u'宛先 <*****@*****.**>'], extra_context={ 'body': u'本文', }, fail_silently=False, ) self.assertEquals(len(django_mail.outbox), 1) self.assertEquals(django_mail.outbox[0].body, u'本文\n') message = django_mail.outbox[0].message() self.assertEquals(str(message['Subject']), '=?utf-8?b?5Lu25ZCN?=') self.assertEquals(str(message['To']), '=?utf-8?b?5a6b5YWI?= <*****@*****.**>') self.assertEquals( str(message['From']), '=?utf-8?b?5beu5Ye65Lq6?= <*****@*****.**>')
def test_cc(self): send_template_mail( u'mailer/mail.tpl', u'差出人 <*****@*****.**>', [u'差出人 <*****@*****.**>'], cc=[u'宛先 <*****@*****.**>'], extra_context={ 'subject': u'これは\r改行\nの\nある\r\n件名', 'body': u'本文', }, fail_silently=False, ) self.assertEquals(len(django_mail.outbox), 1) mail_message = django_mail.outbox[0] message = mail_message.message() self.assertEquals(str(message['To']), '=?UTF-8?b?5beu5Ye65Lq6?= <*****@*****.**>') self.assertEquals(str(message['Cc']), '=?UTF-8?b?5a6b5YWI?= <*****@*****.**>') self.assertEquals(str(message['From']), '=?UTF-8?b?5beu5Ye65Lq6?= <*****@*****.**>')
def test_html_template_mail(self): send_template_mail( u'mailer/mail.tpl', u'*****@*****.**', [u'*****@*****.**'], extra_context={ 'subject': u'件名', 'body': u'本文', 'html': u"<h1>本文</h1>", }, fail_silently=False, html_template_name=u'mailer/html_mail.tpl', ) self.assertEquals(len(django_mail.outbox), 1) email_message = django_mail.outbox[0] self.assertEquals(email_message.body, u'本文\n') self.assertTrue(isinstance(email_message, EmailMultiAlternatives)) self.assertTrue((u"<h1>本文</h1>\n", "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(), "5pys5paHCg==\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+Cg==\n")
def test_multi_line_subject(self): send_template_mail( u'mailer/mail.tpl', u'差出人 <*****@*****.**>', [u'宛先 <*****@*****.**>'], extra_context={ 'subject': u'これは\r改行\nの\nある\r\n件名', 'body': u'本文', }, fail_silently=False, ) self.assertEquals(len(django_mail.outbox), 1) mail_message = django_mail.outbox[0] self.assertEquals(mail_message.subject, u'これは改行のある件名') self.assertEquals(mail_message.body, u'本文\n') message = mail_message.message() self.assertEquals(str(message['Subject']), '=?UTF-8?b?44GT44KM44Gv5pS56KGM44Gu44GC44KL5Lu25ZCN?=') self.assertEquals(str(message['To']), '=?UTF-8?b?5a6b5YWI?= <*****@*****.**>') self.assertEquals(str(message['From']), '=?UTF-8?b?5beu5Ye65Lq6?= <*****@*****.**>')
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