2012-05-27 3 views
1

Pinax에서 전자 메일 확인을 설정하는 방법, SMTP 서버 또는 이와 유사한 설정이 필요합니까?, 이에 대한 설명서를 찾으려고했지만 실패했습니다. 누구든지이 문서 나 다른 관련 기사로 리디렉션 할 수 있습니까?, Pinax는 emailconfirmation 응용 프로그램을 사용합니다. emailconfirmation 코드를 탐색했지만 호스트 또는 서버에 대한 설정은 포함되어 있지 않습니다.Django/Pinax에서 전자 메일 확인/확인을 설정하는 방법은 무엇입니까?

답변

2

emailconfirmation의 통합은 매우 간단합니다. 메일을 보내는 데 사용할 수있는 기존 메일 서버가있는 경우 메일 서버를 설정할 필요가 없습니다. 당신은 당신의 표준 장고 설정에서 메일을 보내는 데 사용되는 데이터를 입력해야하고, 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-adress (전자 양식과 함께 제공되지 않는 이유는 다소 모호합니다). 이것은 다음과 같이 보일 수 있습니다

# 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이 allready 존재하고 다른 계정에서 사용하고 있는지 확인합니다. 그 후에 그것은 확인되지 않은 emailadresses에 emailadress를 추가하고 사용자에게 링크가 포함 된 이메일을 보냅니다. 사용자는 링크를 클릭하여 이메일 주소를 확인할 수 있습니다.

그게 전부입니다. Pinax 팀원들이 조만간 문서에 질적 인 공격을하기를 바랍니다.)