如何在 Pinax 中设置电子邮件确认?,我需要设置 SMTP 服务器或类似的东西吗?,我试图找到有关此的文档但失败了。任何人都可以将我重定向到解释此问题的文档或任何相关文章吗? Pinax 使用电子邮件确认应用程序。我浏览了 emailconfirmation 的代码,但它不包含有关主机或服务器的任何设置。
问问题
1189 次
1 回答
2
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 的人很快就会对他们的文档进行质量攻势;)
于 2012-05-27T16:39:04.313 回答