- mail_managers(mail_managers_subject, mail_managers_body,
- fail_silently=True)
-
- if email_re.match(contact.contact):
- mail_subject = render_to_string([
- 'contact/%s/mail_subject.txt' % self.form_tag,
- 'contact/mail_subject.txt',
- ], dictionary, context).strip()
- mail_body = render_to_string([
- 'contact/%s/mail_body.txt' % self.form_tag,
- 'contact/mail_body.txt',
- ], dictionary, context)
- send_mail(mail_subject, mail_body,
- 'no-reply@%s' % site.domain,
- [contact.contact],
- fail_silently=True)
+ mail_managers(mail_managers_subject, mail_managers_body, fail_silently=True)
+
+ try:
+ validate_email(contact.contact)
+ except ValidationError:
+ pass
+ else:
+ if not self.instance:
+ mail_subject = render_to_string([
+ 'contact/%s/mail_subject.txt' % self.form_tag,
+ 'contact/mail_subject.txt',
+ ], dictionary, context).strip()
+ if self.result_page:
+ mail_body = render_to_string(
+ 'contact/%s/results_email.txt' % contact.form_tag,
+ {
+ 'contact': contact,
+ 'results': self.results(contact),
+ }, context)
+ else:
+ mail_body = render_to_string([
+ 'contact/%s/mail_body.txt' % self.form_tag,
+ 'contact/mail_body.txt',
+ ], dictionary, context)
+ send_mail(mail_subject, mail_body, 'no-reply@%s' % site.domain, [contact.contact], fail_silently=True)
+ if email_changed and (self.mailing or (self.mailing_field and self.cleaned_data[self.mailing_field])):
+ mailing.subscribe(contact.contact)