def test_create_activation_key(self): user = get_user_model().objects.create(**VALID_DATA) activation_key = utils.create_activation_key(user) self.assertTrue(activation_key) self.assertEqual(len(activation_key), 40)
def reset_password_link(sender, instance, **kwargs): try: reset_key = utils.create_activation_key(instance) link = settings.BASE_URL + '/reset/%s' % reset_key user_profile = instance.profile user_profile.password_recovery_key = reset_key user_profile.save() timeNow = datetime.now() profile = ProfileMetaProp.objects.get(pk=1) FROM = '<strong>Любовь и Ненависть' USER = profile.user_name PASSWORD = profile.password PORT = profile.smtp_port SERVER = profile.smtp_server TO = instance.profile.email SUBJECT = 'Восстановление доступа' MESSAGE = MIMEMultipart('alternative') MESSAGE['subject'] = SUBJECT MESSAGE['To'] = TO MESSAGE['From'] = "{}".format(FROM) MESSAGE.preamble = """ Your mail reader does not support the report format. Please visit us <a href="http://www.divorcesus.com">online</a>!""" f = codecs.open("templates/activate_inline.html", 'r') mess = str(f.read()) mess = str.replace(mess, '[greeting]', 'Приветствуем Вас на ЛХ,') mess = str.replace( mess, '[greeting_statement]', 'Нажмите на кнопку ниже для восстановления доступа.') mess = str.replace(mess, '[greeting_link]', 'Восстановить Пароль') mess = str.replace(mess, '[greeting_sent]', 'Это сообщение было послано на адрес') mess = str.replace(mess, '[greeting_global_link]', 'Любовь и Ненависть') mess = str.replace(mess, '[greeting_locale]', 'Москва, Российская Федерация') mess = str.replace(mess, '[First Name]', instance.username) mess = str.replace(mess, '[message]', 'Восстановление Доступа') mess = str.replace(mess, '*****@*****.**', instance.profile.email) mess = str.replace(mess, '[link]', link) HTML_BODY = MIMEText(mess.encode('utf-8'), 'html', 'utf-8') MESSAGE.attach(HTML_BODY) msg = MESSAGE.as_string() server = smtplib.SMTP(SERVER + ':' + PORT) server.ehlo() server.starttls() server.login(USER, PASSWORD) server.sendmail(FROM, TO, msg) server.quit() except Exception as R: log = Logger(log='Failed resetting {}'.format(str(R))) log.save()
def send_activation_link(instance): mess = 'Please activate your account.' try: activation_key = utils.create_activation_key(instance) link = settings.BASE_URL + '/activate/%s' % activation_key user_profile = instance.profile user_profile.activation_key = activation_key user_profile.save() timeNow = datetime.now() profile = ProfileMetaProp.objects.get(pk=1) FROM = profile.from_email USER = profile.user_name PASSWORD = profile.password PORT = profile.smtp_port SERVER = profile.smtp_server TO = instance.profile.email SUBJECT = 'Activate your account' MESSAGE = MIMEMultipart('alternative') MESSAGE['subject'] = SUBJECT MESSAGE['To'] = TO MESSAGE['From'] = FROM MESSAGE.preamble = """ Your mail reader does not support the report format. Please visit us <a href="http://www.divorcesus.com">online</a>!""" path = "templates/activate_template.html" f = codecs.open(path, 'r') m = f.read() mess = string.replace(m, '[first]', instance.first_name) mess = string.replace(mess, '[last]', instance.profile.last_name) mess = string.replace(mess, '[greeting]', 'Dear') mess = string.replace( mess, '[greeting_statement]', 'Thank You for registering with <br/><strong>Grinberg and Segal Family Law Division</strong>' ) mess = string.replace(mess, '[greeting_sent]', 'This email was sent to ') mess = string.replace(mess, '*****@*****.**', instance.profile.email) mess = string.replace(mess, '[greeting_global_link]', 'Gringerg and Segal Family Law Division') mess = string.replace(mess, '[global_link]', 'https://divorcesus.com') mess = string.replace(mess, '[greeting_locale]', 'New York, NY, USA') mess = string.replace(mess, '[greeting_link]', 'Activate your account') mess = string.replace(mess, '*****@*****.**', instance.profile.email) mess = string.replace(mess, '[link]', link) message = mess HTML_BODY = MIMEText(message, 'html', 'utf-8') MESSAGE.attach(HTML_BODY) msg = MESSAGE.as_string() server = smtplib.SMTP(SERVER + ':' + PORT) server.ehlo() server.starttls() server.login(USER, PASSWORD) server.sendmail(FROM, TO, msg) server.quit() instance.profile.activation_key = activation_key instance.profile.save() instance.save() log = Logger(log="LET US SEND IT {}".format(activation_key)) log.save() except Exception as R: log = Logger(log='WE FAILED SENDING ACTIVATION %s' % str(R)) log.save()