public function validate_mail($template = 'mail') { $components = (array) $this->contact_form->prop($template); if (!$components) { return; } if ('mail' != $template && empty($components['active'])) { return; } $components = wp_parse_args($components, array('subject' => '', 'sender' => '', 'recipient' => '', 'additional_headers' => '', 'body' => '')); $callback = array($this, 'replace_mail_tags_with_minimum_input'); $subject = $components['subject']; $subject = new WPCF7_MailTaggedText($subject, array('callback' => $callback)); $subject = $subject->replace_tags(); $subject = wpcf7_strip_newline($subject); if ('' === $subject) { $this->add_error(sprintf('%s.subject', $template), self::error_maybe_empty); } $sender = $components['sender']; $sender = new WPCF7_MailTaggedText($sender, array('callback' => $callback)); $sender = $sender->replace_tags(); $sender = wpcf7_strip_newline($sender); if (!wpcf7_is_mailbox_list($sender)) { $this->add_error(sprintf('%s.sender', $template), self::error_invalid_syntax); } elseif (!wpcf7_is_email_in_site_domain($sender)) { $this->add_error(sprintf('%s.sender', $template), self::error_email_not_in_site_domain); } $recipient = $components['recipient']; $recipient = new WPCF7_MailTaggedText($recipient, array('callback' => $callback)); $recipient = $recipient->replace_tags(); $recipient = wpcf7_strip_newline($recipient); if (!wpcf7_is_mailbox_list($recipient)) { $this->add_error(sprintf('%s.recipient', $template), self::error_invalid_syntax); } $additional_headers = $components['additional_headers']; $additional_headers = new WPCF7_MailTaggedText($additional_headers, array('callback' => $callback)); $additional_headers = $additional_headers->replace_tags(); if (!$this->test_additional_headers_syntax($additional_headers)) { $this->add_error(sprintf('%s.additional_headers', $template), self::error_invalid_syntax); } $body = $components['body']; $body = new WPCF7_MailTaggedText($body, array('callback' => $callback)); $body = $body->replace_tags(); if ('' === $body) { $this->add_error(sprintf('%s.body', $template), self::error_maybe_empty); } }
public function validate_mail($template = 'mail') { $components = (array) $this->contact_form->prop($template); if (!$components) { return; } if ('mail' != $template && empty($components['active'])) { return; } $components = wp_parse_args($components, array('subject' => '', 'sender' => '', 'recipient' => '', 'additional_headers' => '', 'body' => '')); $callback = array($this, 'replace_mail_tags_with_minimum_input'); $subject = $components['subject']; $subject = new WPCF7_MailTaggedText($subject, array('callback' => $callback)); $subject = $subject->replace_tags(); $subject = wpcf7_strip_newline($subject); if ('' === $subject) { $this->add_error(sprintf('%s.subject', $template), self::error_maybe_empty, array('link' => __('http://contactform7.com/configuration-errors/#mail.subject:error_maybe_empty', 'contact-form-7'))); } $sender = $components['sender']; $sender = new WPCF7_MailTaggedText($sender, array('callback' => $callback)); $sender = $sender->replace_tags(); $sender = wpcf7_strip_newline($sender); if (!wpcf7_is_mailbox_list($sender)) { $this->add_error(sprintf('%s.sender', $template), self::error_invalid_syntax, array('link' => __('http://contactform7.com/configuration-errors/#mail.sender:error_invalid_syntax', 'contact-form-7'))); } elseif (!wpcf7_is_email_in_site_domain($sender)) { $this->add_error(sprintf('%s.sender', $template), self::error_email_not_in_site_domain, array('link' => __('http://contactform7.com/configuration-errors/#mail.sender:error_email_not_in_site_domain', 'contact-form-7'))); } $recipient = $components['recipient']; $recipient = new WPCF7_MailTaggedText($recipient, array('callback' => $callback)); $recipient = $recipient->replace_tags(); $recipient = wpcf7_strip_newline($recipient); if (!wpcf7_is_mailbox_list($recipient)) { $this->add_error(sprintf('%s.recipient', $template), self::error_invalid_syntax, array('link' => __('http://contactform7.com/configuration-errors/#mail.recipient:error_invalid_syntax', 'contact-form-7'))); } $additional_headers = $components['additional_headers']; $additional_headers = new WPCF7_MailTaggedText($additional_headers, array('callback' => $callback)); $additional_headers = $additional_headers->replace_tags(); $additional_headers = explode("\n", $additional_headers); $mailbox_header_types = array('reply-to', 'cc', 'bcc'); foreach ($additional_headers as $header) { $header = trim($header); if ('' === $header) { continue; } if (!preg_match('/^([0-9A-Za-z-]+):(.+)$/', $header, $matches)) { $this->add_error(sprintf('%s.additional_headers', $template), self::error_invalid_syntax, array('link' => __('http://contactform7.com/configuration-errors/#mail.additional_headers:error_invalid_syntax', 'contact-form-7'))); } elseif (in_array(strtolower($matches[1]), $mailbox_header_types) && !wpcf7_is_mailbox_list($matches[2])) { $this->add_error(sprintf('%s.additional_headers', $template), self::error_invalid_syntax, array('message' => __("The %name% field value is invalid.", 'contact-form-7'), 'params' => array('name' => $matches[1]), 'link' => __('http://contactform7.com/configuration-errors/#mail.additional_headers:error_invalid_syntax', 'contact-form-7'))); } } $body = $components['body']; $body = new WPCF7_MailTaggedText($body, array('callback' => $callback)); $body = $body->replace_tags(); if ('' === $body) { $this->add_error(sprintf('%s.body', $template), self::error_maybe_empty, array('link' => __('http://contactform7.com/configuration-errors/#mail.body:error_maybe_empty', 'contact-form-7'))); } }