def clean(self, value): if not value: if self.required: raise forms.ValidationError(ugettext(u"Please enter a valid e-mail address")) else: return None # TODO here we have to add some mechanism to handle "firstname lastname <email>" format email = value if not is_valid_email(email): raise forms.ValidationError( ugettext(u'"%(email)s" is not a valid e-mail address') % {'email': email}) return email
def clean(self, value): if not value: if self.required: raise forms.ValidationError(ugettext(u"Please enter at least one valid e-mail address")) else: return None # fist normalize newline characters (windows has '\r\n', unix has '\n') # TODO I hope, Mac is like unix! recipient_string = re.sub(r'(\r\n|\r|\n)', ',', value) # replace all double commas by one comma recipient_string = re.sub(r'(,\s,|,\s;|;\s,|;\s;|,,|,;|;,|;;)', ',', recipient_string) recipient_list = re.split(r'[,;]', recipient_string) recipient_result_list = [] for recipient in recipient_list: (recipient_email, recipient_name) = get_email_and_name(recipient) if not is_valid_email(recipient_email): raise forms.ValidationError( ugettext(u'"%(email)s" is not a valid e-mail address') % {'email': recipient_email}) recipient_result_list.append((recipient_email, recipient_name)) return recipient_result_list