什么是正确的方式来验证正确的收件人电子邮件地址的EmailMessage?

问题描述:

我正在用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

尝试清除收件人的电子邮件格式只在clean_recipients。有如何检查电子邮件的片段。 http://djangosnippets.org/snippets/1093/。如果电子邮件格式不匹配,请提高验证错误。

创建电子邮件,并从形式的清洁方法把它(如果你需要显示发送错误。你需要发送之前检查形式的错误。)或从视图。

PS。以这种方式获取数据 - self.cleaned_data而不是self.data。