2012-05-27 45 views
1

如何在Pinax中設置電子郵件確認?我是否需要設置SMTP服務器或類似的東西?,我試圖找到關於該文件但失敗。任何人都可以將我重定向到文檔或任何相關文章解釋這個嗎?,Pinax使用電子郵件確認應用程序。我瀏覽了emailconfirmation的代碼,但它沒有包含任何有關主機或服務器的設置。如何在Django/Pinax中設置電子郵件驗證/確認?

回答

2

電子郵件確認的整合非常簡單。如果您有可用於發送郵件的現有郵件服務器,則不必設置任何郵件服務器。你只需要填寫用於在標準的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"]) 

這將允許用戶輸入一個電子郵件地址,檢查電子郵件ADRESS媒體鏈接存在,是其他帳戶使用。之後,它會將電子郵件地址添加到未經確認的電子郵件地址,併發送包含該用戶鏈接的電子郵件。用戶然後可以通過點擊鏈接來確認電子郵件地址。

就是這樣。讓我們希望皮納克斯傢伙很快就會對他們的文檔進行高質量的攻勢;)