2011-12-25 21 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-bounces-postmark/有趣的信息 – LaundroMat 2011-12-25 07:41:37

回答

0

嘗試清除收件人的電子郵件格式只在clean_recipients。有如何檢查電子郵件的片段。 http://djangosnippets.org/snippets/1093/。如果電子郵件格式不匹配,請提高驗證錯誤。

創建電子郵件,並從形式的清潔方法把它(如果你需要顯示發送錯誤。你需要發送之前檢查形式的錯誤。)或從視圖。

PS。以這種方式獲取數據 - self.cleaned_data而不是self.data。

相關問題