* @param array $options:
* 'replyTo' MailAddress
* 'contentType' string default 'text/plain; charset=UTF-8'
+ * 'headers' array Extra headers to set
*
* Previous versions of this function had $replyto as the 5th argument and $contentType
* as the 6th. These are still supported for backwards compatability, but deprecated.
public static function send( $to, $from, $subject, $body, $options = array() ) {
global $wgSMTP, $wgEnotifMaxRecips, $wgAdditionalMailParams, $wgAllowHTMLEmail;
$contentType = 'text/plain; charset=UTF-8';
+ $headers = array();
if ( is_array( $options ) ) {
$replyto = isset( $options['replyTo'] ) ? $options['replyTo'] : null;
$contentType = isset( $options['contentType'] ) ? $options['contentType'] : $contentType;
+ $headers = isset( $options['headers'] ) ? $options['headers'] : $headers;
} else {
// Old calling style
wfDeprecated( __METHOD__ . ' with $replyto as 5th parameter', '1.26' );
return Status::newFatal( 'user-mail-no-addy' );
}
- // Forge email headers
- // -------------------
- //
- // WARNING
- //
- // DO NOT add To: or Subject: headers at this step. They need to be
- // handled differently depending upon the mailer we are going to use.
- //
- // To:
- // PHP mail() first argument is the mail receiver. The argument is
- // used as a recipient destination and as a To header.
- //
- // PEAR mailer has a recipient argument which is only used to
- // send the mail. If no To header is given, PEAR will set it to
- // to 'undisclosed-recipients:'.
- //
- // NOTE: To: is for presentation, the actual recipient is specified
- // by the mailer using the Rcpt-To: header.
- //
- // Subject:
- // PHP mail() second argument to pass the subject, passing a Subject
- // as an additional header will result in a duplicate header.
- //
- // PEAR mailer should be passed a Subject header.
- //
- // -- hashar 20120218
+ /**
+ * Forge email headers
+ * -------------------
+ *
+ * WARNING
+ *
+ * DO NOT add To: or Subject: headers at this step. They need to be
+ * handled differently depending upon the mailer we are going to use.
+ *
+ * To:
+ * PHP mail() first argument is the mail receiver. The argument is
+ * used as a recipient destination and as a To header.
+ *
+ * PEAR mailer has a recipient argument which is only used to
+ * send the mail. If no To header is given, PEAR will set it to
+ * to 'undisclosed-recipients:'.
+ *
+ * NOTE: To: is for presentation, the actual recipient is specified
+ * by the mailer using the Rcpt-To: header.
+ *
+ * Subject:
+ * PHP mail() second argument to pass the subject, passing a Subject
+ * as an additional header will result in a duplicate header.
+ *
+ * PEAR mailer should be passed a Subject header.
+ *
+ * -- hashar 20120218
+ */
$headers['From'] = $from->toString();
$returnPath = $from->address;
MediaWiki\restoreWarnings();
return Status::newGood();
} else {
- //
// PHP mail()
- //
if ( count( $to ) > 1 ) {
$headers['To'] = 'undisclosed-recipients:;';
}