From: Chad Horohoe Date: Wed, 15 Dec 2010 19:55:08 +0000 (+0000) Subject: When using safe_mode, mail() cannot take the 5th parameter. Rather than (needlessly... X-Git-Tag: 1.31.0-rc.0~33282 X-Git-Url: http://git.cyclocoop.org/%24image?a=commitdiff_plain;h=a13e752b69cf306ec7b1be6af007eaafd5ef5d3d;p=lhc%2Fweb%2Fwiklou.git When using safe_mode, mail() cannot take the 5th parameter. Rather than (needlessly) disabling e-mail confirmation as a result, just disregard the parameter. Pointed out by Kunda on IRC. --- diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php index f60eb61fcc..3db8ece006 100644 --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@ -1043,6 +1043,7 @@ $wgSMTP = false; /** * Additional email parameters, will be passed as the last argument to mail() call. + * If using safe_mode this has no effect */ $wgAdditionalMailParams = null; diff --git a/includes/UserMailer.php b/includes/UserMailer.php index 91eaab7302..17fd74cf33 100644 --- a/includes/UserMailer.php +++ b/includes/UserMailer.php @@ -223,12 +223,19 @@ class UserMailer { ini_set( 'html_errors', '0' ); set_error_handler( array( 'UserMailer', 'errorHandler' ) ); - if ( is_array( $to ) ) { - foreach ( $to as $recip ) { + // We need to check for safe_mode, because mail() throws an E_NOTICE + // on the 5th parameter when it's turned on + $sm = wfIniGetBool( 'safe_mode' ); + + if ( !is_array( $to ) ) { + $to = array( $to ); + } + foreach ( $to as $recip ) { + if( $sm ) { + $sent = mail( $recip->toString(), self::quotedPrintable( $subject ), $body, $headers ); + } else { $sent = mail( $recip->toString(), self::quotedPrintable( $subject ), $body, $headers, $wgAdditionalMailParams ); } - } else { - $sent = mail( $to->toString(), self::quotedPrintable( $subject ), $body, $headers, $wgAdditionalMailParams ); } restore_error_handler();