2011-12-25 3 views
1

나는 Django로 응용 프로그램을 개발 중입니다. 내 양식의 클래스가 저장되는 forms.py에서 텍스트 상자에 입력 한 모든 이메일이 올바른 형식 ([email protected])을 준수하는지 확인하는 정리 함수를 작성했습니다.EmailMessage에서 올바른받는 사람 전자 메일 주소를 확인하는 적절한 방법은 무엇입니까?

이 깨끗한 함수에서, 나는 EmailMessage 개체에 전자 메일 메시지를 만들 :

def clean_recipients(self): 
     rec = self.data['recipients'].split(",") 
     recList = [] 
     for recipient in rec: 
      reci = str.strip(str(recipient)) 
      recList.append(reci) 
      message = (self.data['subject'], self.data['message'], '[email protected]', recList) 
     mail = EmailMessage(self.data['subject'], self.data['message'], '[email protected]', ['[email protected]'], recList) 
     try: 
      mail.send(fail_silently=False) 
     except Exception: 
      raise forms.ValidationError('Please check inputted emails for validity.') 
     return self.data['recipients'] 

그러나 예외 이 '타당성 입력 된 이메일을 확인하시기 바랍니다.'은 입력란에 입력 한 내용과 관계없이 양식에서 절대로 제기되지 않습니다. 텍스트 상자에 임의의 문자를 입력하면 메시지가 전송되지 않습니다.

전자 메일이 제대로 전송되지 않은 경우 적절한 방법은 무엇입니까?

감사합니다.

+0

http://www.rossp.org/blog/2010/jun/11/django-bounce-postmark/에서 흥미로운 정보를 찾을 수 있습니다. – LaundroMat

답변

0

clean_recipients에서만받는 사람 전자 메일 형식 정리를 시도하십시오. 스 니펫에 이메일 확인 방법이 있습니다. http://djangosnippets.org/snippets/1093/. 전자 메일 형식이 일치하지 않으면 유효성 검사 오류가 발생합니다.

이메일을 만들어 양식의 정리 방법에서 보내십시오 (전송 오류가 표시되어야하는 경우 전송하기 전에 양식 오류가 있는지 확인해야합니다.) 또는보기에서 이메일을 보내십시오.

추신. 이 방법으로 데이터를 얻으십시오 - self.data 대신 self.cleaned_data.

관련 문제