Django的简单电子邮件确认。
django-simple-email-confirmation的Python项目详细描述
提供简单电子邮件确认的django应用程序。
此应用程序可用于支持三种不同的方式来组织用户的电子邮件地址。每个电子邮件地址都可以处于确认/未确认状态。
- 用户有一个电子邮件地址存储在用户
- 用户有一个主电子邮件地址存储在用户模型中,有n个辅助电子邮件存储在电子邮件地址对象中
- 用户有n个电子邮件地址存储在emailaddress对象中。
示例
创建新用户,确认他们的电子邮件:
fromdjango.core.mailimportsend_mail# ...email='original@here.com'user=User.objects.create_user(email,email=email)user.is_confirmed# Falsesend_mail(email,'Use %s to confirm your email'%user.confirmation_key)# User gets email, passes the confirmation_key back to your serveruser.confirm_email(user.confirmation_key)user.is_confirmed# True
向现有用户添加另一封电子邮件,确认它,然后将其设置为主邮件。
new_email='newaddr@nowhere.com'confirmation_key=user.add_unconfirmed_email(new_email)new_emailinuser.unconfirmed_emails# Truesend_mail(new_email,'Use %s to confirm your new email'%confirmation_key)# User gets email, passes the confirmation_key back to your serveruser.confirm_email(confirmation_key)new_emailinuser.confirmed_emails# Trueuser.set_primary_email(new_email)user.email# newaddr@nowhere.com
安装
pip install django-simple-email-confirmation
INSTALLED_APPS=(...'simple_email_confirmation',...)
更改默认设置(可选):
默认情况下,密钥不会过期。如果需要,请将设置。简单电子邮件确认周期设置为时间增量。
fromdatetimeimporttimedeltaEMAIL_CONFIRMATION_PERIOD_DAYS=7SIMPLE_EMAIL_CONFIRMATION_PERIOD=timedelta(days=EMAIL_CONFIRMATION_PERIOD_DAYS)
默认情况下,自动为新用户添加未确认的电子邮件地址对象。如果要更改此行为,请将设置设置为false。simple_email_confirmation_auto_add设置为false。
SIMPLE_EMAIL_CONFIRMATION_AUTO_ADD=False
默认情况下,键的长度为12。如果您想更改它,请设置
设置。SimeEyMeLaySalpMyTrimeKythLime< /CIT> >整数值(最大值40)。 SIMPLE_EMAIL_CONFIRMATION_KEY_LENGTH=16
您可以覆盖此应用程序提供的电子邮件地址模型。它的工作方式与django的自定义用户模型类似,允许您向emailaddress模型添加字段,比如uuid,或者完全定义自己的模型。若要设置自定义电子邮件地址模型,请将“设置”。简单电子邮件确认电子邮件地址模型设置为要在<;应用程序标签>;<;模型名称>;时尚中使用的模型。
管理界面包括简单的电子邮件确认。尽管如此,它的设计目的是使用提供的电子邮件地址。当使用自定义模型时,无法保证管理员的功能,因此建议您提供自己的管理员定义。
对于已经使用的模型的现有应用程序,请注意:Similar to Django’s custom user model, migrating a custom email address model after the default one is already migrated is not supported and could have unforeseen side effects. The recommendation is to use a custom model from the beginning of development.
SIMPLE_EMAIL_CONFIRMATION_EMAIL_ADDRESS_MODEL='yourapp.EmailAddress'
fromdjango.contrib.auth.modelsimportAbstractUserfromsimple_email_confirmation.modelsimportSimpleEmailConfirmationUserMixinclassUser(SimpleEmailConfirmationUserMixin,AbstractUser):pass
注意:你不必严格地做最后一步。如果没有这个,你的用户对象就没有好的helper函数和属性,但是应用程序的其余部分应该可以正常工作。
python/django支持的版本
- Python:2.7、3.4、3.5和3.6
- django:1.8至2.0
找到虫子了吗?
若要提交错误或修补程序,请转到django-simple-email-confirmation on github。