def send_confirmation(self, email_address): salt = sha_constructor(str(random())).hexdigest()[:5] confirmation_key = sha_constructor(salt + email_address.email).hexdigest() current_site = Site.objects.get_current() # check for the url with the dotted view path try: path = reverse("emailconfirmation.views.confirm_email", args=[confirmation_key]) except NoReverseMatch: # or get path with named urlconf instead path = reverse("emailconfirmation_confirm_email", args=[confirmation_key]) protocol = getattr(settings, "DEFAULT_HTTP_PROTOCOL", "http") activate_url = u"%s://%s%s" % (protocol, unicode(current_site.domain), path) context = { "user": email_address.user, "activate_url": activate_url, "current_site": current_site, "confirmation_key": confirmation_key, } subject = render_to_string("emailconfirmation/email_confirmation_subject.txt", context) # remove superfluous line breaks subject = "".join(subject.splitlines()) message = render_to_string("emailconfirmation/email_confirmation_message.txt", context) send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [email_address.email]) confirmation = self.create(email_address=email_address, sent=now(), confirmation_key=confirmation_key) email_confirmation_sent.send(sender=self.model, confirmation=confirmation) return confirmation
def send_confirmation(self, confirmation): """Send a confirmation email using a previously generated confirmation. :param confirmation: EmailConfirmation instance :return: None """ subject, message = self.render_confirmation(confirmation) send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [confirmation.email_address.email]) email_confirmation_sent.send( sender=self.model, confirmation=confirmation, ) return
def send_confirmation(self, email_address): salt = sha_constructor(str(random())).hexdigest()[:5] confirmation_key = sha_constructor(salt + email_address.email).hexdigest() current_site = Site.objects.get_current() try: path = reverse("emailconfirmation_confirm", args=[confirmation_key]) except NoReverseMatch: # A third-party app may be using our view but a different name, so # fall-back to reversing the exact view if name-based reversal # fails. path = reverse("emailconfirmation.views.confirm_email", args=[confirmation_key]) protocol = getattr(settings, "DEFAULT_HTTP_PROTOCOL", "http") activate_url = u"%s://%s%s" % ( protocol, unicode(current_site.domain), path ) context = { "user": email_address.user, "activate_url": activate_url, "current_site": current_site, "confirmation_key": confirmation_key, } subject = render_to_string( "emailconfirmation/email_confirmation_subject.txt", context) # remove superfluous line breaks subject = "".join(subject.splitlines()) message = render_to_string( "emailconfirmation/email_confirmation_message.txt", context) send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [email_address.email]) confirmation = self.create( email_address=email_address, sent=datetime.datetime.now(), confirmation_key=confirmation_key ) email_confirmation_sent.send( sender=self.model, confirmation=confirmation, ) return confirmation
def send_confirmation(self, email_address): salt = sha1(str(random())).hexdigest()[:5] confirmation_key = sha1(salt + email_address.email).hexdigest() current_site = Site.objects.get_current() # check for the url with the dotted view path try: path = reverse("emailconfirmation.views.confirm_email", args=[confirmation_key]) except NoReverseMatch: # or get path with named urlconf instead path = reverse( "emailconfirmation_confirm_email", args=[confirmation_key]) protocol = getattr(settings, "DEFAULT_HTTP_PROTOCOL", "http") activate_url = u"%s://%s%s" % ( protocol, unicode(current_site.domain), path ) context = { "user": email_address.user, "activate_url": activate_url, "current_site": current_site, "confirmation_key": confirmation_key, } subject = render_to_string( "emailconfirmation/email_confirmation_subject.txt", context) # remove superfluous line breaks subject = "".join(subject.splitlines()) message = render_to_string( "emailconfirmation/email_confirmation_message.txt", context) send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [email_address.email]) confirmation = self.create( email_address=email_address, sent=timezone.now(), confirmation_key=confirmation_key ) email_confirmation_sent.send( sender=self.model, confirmation=confirmation, ) return confirmation