def save(self, domain_override=None, subject_template_name='registration/password_reset_subject.txt', email_template_name='registration/password_reset_email.html', use_https=False, token_generator=default_token_generator, from_email=None, request=None): """ Generates a one-use only link for resetting password and sends to the user. """ for user in self.users_cache: if not domain_override: current_site = get_current_site(request) site_name = current_site.name domain = current_site.domain else: site_name = domain = domain_override c = { 'email': user.email, 'domain': domain, 'site_name': site_name, 'uid': int_to_base36(user.id), 'user': user, 'token': token_generator.make_token(user), 'protocol': use_https and 'https' or 'http', } subject = loader.render_to_string(subject_template_name, c) # Email subject *must not* contain newlines subject = ''.join(subject.splitlines()) email = loader.render_to_string(email_template_name, c) if settings.EMAIL_SENT_THROUGH_CELERY: send_mail.delay(subject, email, [user.email]) else: send_mail(subject, email, [user.email])
def test_sending_email(self): result = send_mail('Test', 'Body of mail', ['*****@*****.**']) self.assertTrue(result) self.assertEqual(len(mail.outbox), 1) self.assertEqual(mail.outbox[0].subject, 'Test')
def test_sending_email_in_HTML(self): # with subject = 'Test' body = '<b>body of mail</b>' to_list = ['*****@*****.**', '*****@*****.**'] # when result = send_mail(subject, body, to_list) # then self.assertTrue(result) self.assertEqual(len(mail.outbox), 1) email = mail.outbox[0] self.assertEqual(len(email.to), len(to_list)) self.assertEqual(email.subject, subject) self.assertEqual(email.body, body)
def test_sending_email_for_more_than_one_address_as_BCC_only(self): # with subject = 'Test' body = 'body of mail' to_list = [] bcc_list = ['*****@*****.**', '*****@*****.**', '*****@*****.**',] # when result = send_mail(subject, body, to_list, bcc_list) # then self.assertTrue(result) self.assertEqual(len(mail.outbox), 1) email = mail.outbox[0] self.assertEqual(len(email.to), len(to_list)) self.assertEqual(len(email.bcc), len(bcc_list)) self.assertEqual(email.subject, subject) self.assertEqual(email.body, body)
def test_sending_email_for_more_than_one_address_as_BCC_only(self): # with subject = 'Test' body = 'body of mail' to_list = [] bcc_list = [ '*****@*****.**', '*****@*****.**', '*****@*****.**', ] # when result = send_mail(subject, body, to_list, bcc_list) # then self.assertTrue(result) self.assertEqual(len(mail.outbox), 1) email = mail.outbox[0] self.assertEqual(len(email.to), len(to_list)) self.assertEqual(len(email.bcc), len(bcc_list)) self.assertEqual(email.subject, subject) self.assertEqual(email.body, body)