Django的简单电子邮件确认。

django-simple-email-confirmation的Python项目详细描述


https://img.shields.io/travis/mfogel/django-simple-email-confirmation/develop.svghttps://img.shields.io/coveralls/mfogel/django-simple-email-confirmation/develop.svghttps://img.shields.io/pypi/dm/django-simple-email-confirmation.svg

提供简单电子邮件确认的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

安装

  1. pypi使用pip

    pip install django-simple-email-confirmation
    
  2. 在您的settings.INSTALLED_APPS

    INSTALLED_APPS=(...'simple_email_confirmation',...)
  3. < P>将提供的MIN添加到您的^ {A7}:

    fromdjango.contrib.auth.modelsimportAbstractUserfromsimple_email_confirmation.modelsimportSimpleEmailConfirmationUserMixinclassUser(SimpleEmailConfirmationUserMixin,AbstractUser):pass

    注意:你不必严格地做最后一步。如果没有这个,你的用户对象就没有好的helper函数和属性,但是应用程序的其余部分应该可以正常工作。

  4. 更改默认设置(可选):

    默认情况下,密钥不会过期。如果需要,请将设置。简单电子邮件确认周期设置为时间增量。

    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'

python/django支持的版本

  • Python:2.7、3.4、3.5和3.6
  • django:1.8至2.0

运行测试

  1. 安装toxcoverage

    pip install tox coverage
    
  2. 从存储库根目录中,运行

    tox
    tox -e coverage
    

    就这么简单。

找到虫子了吗?

若要提交错误或修补程序,请转到django-simple-email-confirmation on github

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java中ArrayList的超简单问题   Java 8在一段时间后过期   java如何创建具有用户定义维度的矩阵,并使用从上到下、从左到右的递增值填充它?   java从JDBC重启mysql   带有sqlite的java LiveData未更新UI   带有JDialog的java小程序在Mac OSX中未正确隐藏   java ActionListener无法从公共类引用数组?   java Apache Digester:NoSuchMethodException:没有这样的可访问方法   安卓中数据库中的java数据没有以正确的格式检索   java快速排序实现:使用random pivot时几乎排序   安卓 Java:高效的ArrayList过滤?   java如何在单独的文件中制作GUI程序   jasper报告如何从JSP或Java代码在JasperReport中传递参数值?