} else {
# In the following $headers = expression we removed "Reply-To: {$from}\r\n" , because it is treated differently
# (fifth parameter of the PHP mail function, see some lines below)
+
+ # Line endings need to be different on Unix and Windows due to
+ # the bug described at http://trac.wordpress.org/ticket/2603
+ if ( wfIsWindows() ) {
+ $body = str_replace( "\n", "\r\n", $body );
+ $endl = "\r\n";
+ } else {
+ $endl = "\n";
+ }
$headers =
- "MIME-Version: 1.0\n" .
- "Content-type: text/plain; charset={$wgOutputEncoding}\n" .
- "Content-Transfer-Encoding: 8bit\n" .
- "X-Mailer: MediaWiki mailer\n".
- 'From: ' . $from->toString() . "\n";
+ "MIME-Version: 1.0$endl" .
+ "Content-type: text/plain; charset={$wgOutputEncoding}$endl" .
+ "Content-Transfer-Encoding: 8bit$endl" .
+ "X-Mailer: MediaWiki mailer$endl".
+ 'From: ' . $from->toString();
if ($replyto) {
- $headers .= "Reply-To: $replyto\n";
+ $headers .= "{$endl}Reply-To: $replyto";
}
$dest = $to->toString();
*/
function mailErrorHandler( $code, $string ) {
global $wgErrorString;
- $wgErrorString = preg_replace( "/^mail\(\): /", '', $string );
+ $wgErrorString = preg_replace( '/^mail\(\)(\s*\[.*?\])?: /', '', $string );
}