【问题标题】:How to setup email verification/confirmation in Django/Pinax?如何在 Django/Pinax 中设置电子邮件验证/确认?
【发布时间】:2012-05-27 15:58:51
【问题描述】:

如何在 Pinax 中设置电子邮件确认?,我需要设置 SMTP 服务器或类似的东西吗?,我试图找到相关文档但失败了。任何人都可以将我重定向到解释此问题的文档或任何相关文章吗? Pinax 使用电子邮件确认应用程序。我浏览了emailconfirmation的代码,但它不包含任何关于主机或服务器的设置。

【问题讨论】:

    标签: django pinax email-confirmation


    【解决方案1】:

    emailconfirmation 的集成非常简单。如果您有可用于发送邮件的现有邮件服务器,则无需设置任何邮件服务器。您只需在标准 Django 设置中填写用于发送邮件的数据,emailconfirmation 将使用该数据:

    # e-mail settings
    # XXXXXXXXXXXXXXXXXXXXXXX     THESE ARE NOT YET PRODUCTIONREADY!
    EMAIL_HOST='mail.your_mailserver.com'
    EMAIL_PORT=1025
    EMAIL_HOST_USER='your_username'
    EMAIL_HOST_PASSWORD='your_password'
    

    总结接下来要做什么:您必须创建一个用于输入电子邮件地址的表单(电子邮件配置不附带这种表单的原因有些晦涩)。这可能看起来像这样:

    # email form using emailconfirmation
    class AddEmailForm(forms.Form):
    
        def __init__(self, *args, **kwargs):
            try:
                self.user = kwargs.pop('user')
            except KeyError:
                pass
            super(AddEmailForm, self).__init__(*args, **kwargs)
    
        email = forms.EmailField(label="Email",required=True, widget=forms.TextInput())
    
        def clean_email(self):
            try:
                EmailAddress.objects.get(user=self.user, email=self.cleaned_data["email"])
            except EmailAddress.DoesNotExist:
                try:
                    User.objects.get(email = self.cleaned_data['email'])
                except User.DoesNotExist:
                    return self.cleaned_data["email"]
            raise forms.ValidationError(u"email address associated with another account.")
    
        def save(self):
            try:
                self.user.message_set.create(message="Confirmation email sent to %s" % self.cleaned_data["email"])
            except AttributeError:
                pass
            return EmailAddress.objects.add_email(self.user, self.cleaned_data["email"])
    

    这将允许用户输入一个电子邮件地址,检查该电子邮件地址是否已经存在并且正在被另一个帐户使用。之后,它会将电子邮件地址添加到未确认的电子邮件地址中,并向用户发送一封带有链接的电子邮件。然后,用户可以通过单击链接来确认电子邮件地址。

    仅此而已。让我们希望 Pinax 的人能尽快对他们的文档进行质量攻势;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-21
      • 2011-09-23
      • 2013-05-18
      • 2011-04-20
      • 1970-01-01
      • 2020-09-14
      • 2019-08-15
      相关资源
      最近更新 更多