public function test_validation_with_missing_template() { $email = new BP_Email('activity-at-message'); $email->set_from('*****@*****.**')->set_to('*****@*****.**')->set_subject('testing'); $email->set_content_html('testing')->set_tokens(array('poster.name' => 'example'))->set_template(''); $result = $email->validate(); // Template has a default value, but it can't be blank. $this->assertTrue(is_wp_error($result)); $this->assertSame('missing_parameter', $result->get_error_code()); }
/** * Set various email headers for BP 2.5 emails. * * This includes the 'Reply-To' and custom 'From' headers. * * @since 1.0-RC4 * * @param bool|WP_Error $retval Returns true if validation is successful, else a descriptive WP_Error. * @param BP_Email $email Current instance of the email type class. */ public function set_bp_email_headers($retval, $email) { if (!$email->get_to()) { return $retval; } if (empty($this->listener->item_id)) { return $retval; } $to = $email->get_to(); // Backpat headers to be used for checks in 'bp_rbe_querystring' filter. $headers = array(); $headers['to'] = array_shift($to)->get_address(); $reply_to = $this->get_reply_to_address($headers); // If no reply to, bail. if (empty($reply_to)) { return $retval; } /** * Should we use the poster's display name as the 'From' name? * * @since 1.0-RC4. * * @param bool $retval */ $use_custom_from_header = apply_filters('bp_rbe_use_custom_from_header', true); // Set custom 'From' header. if (!empty($this->listener->user_id) && true === $use_custom_from_header) { // Fetch current 'From' email address. $from = $email->get_from()->get_address(); // Grab the host. $host = substr($from, strpos($from, '@') + 1); // Set the custom From email address and name. $email->set_from("noreply@{$host}", bp_core_get_user_displayname($this->listener->user_id)); } /** * Set our custom 'Reply-To' email header. * * Have to workaround a mailbox character limit PHPMailer bug by wiping out * the Reply-To header and then setting it as a custom header. * * @link https://github.com/PHPMailer/PHPMailer/issues/706 */ $email->set_reply_to(''); $email->set_headers(array('Reply-To' => $reply_to)); return $retval; }