From 2da8afe11ee69f60c208b5fe07b6b03df453d13e Mon Sep 17 00:00:00 2001 From: "Mark A. Hershberger" Date: Thu, 28 Jul 2011 19:15:58 +0000 Subject: [PATCH] =?utf8?q?further=20sanity=20checks=20for=20sending=20emai?= =?utf8?q?l=20=E2=80=A6=20bomb=20out=20if=20we=20aren't=20given=20any=20us?= =?utf8?q?er=20with=20an=20email=20address.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- includes/UserMailer.php | 12 +++++++----- languages/messages/MessagesEn.php | 1 + 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/includes/UserMailer.php b/includes/UserMailer.php index 47e95b2f6c..1bb7c08875 100644 --- a/includes/UserMailer.php +++ b/includes/UserMailer.php @@ -67,6 +67,8 @@ class MailAddress { } else { return $this->address; } + } else { + return ""; } } @@ -153,6 +155,9 @@ class UserMailer { } else if( $to->address ) { $dest[] = $to->address; } + if ( count( $dest ) == 0 ) { + return Status::newFatal( 'user-mail-no-addy' ); + } if ( $wgEnotifImpersonal ) { $headers['To'] = 'undisclosed-recipients:;'; @@ -231,11 +236,8 @@ class UserMailer { ini_set( 'html_errors', '0' ); set_error_handler( 'UserMailer::errorHandler' ); - if ( !is_array( $to ) ) { - $to = array( $to ); - } - foreach ( $to as $recip ) { - $sent = mail( $recip->toString(), self::quotedPrintable( $subject ), $body, $headers, $wgAdditionalMailParams ); + foreach ( $dest as $recip ) { + $sent = mail( $recip, self::quotedPrintable( $subject ), $body, $headers, $wgAdditionalMailParams ); } restore_error_handler(); diff --git a/languages/messages/MessagesEn.php b/languages/messages/MessagesEn.php index 3ef7ddcc21..91cef944b2 100644 --- a/languages/messages/MessagesEn.php +++ b/languages/messages/MessagesEn.php @@ -1146,6 +1146,7 @@ Please wait before trying again.', 'pear-mail-error' => '$1', # do not translate or duplicate this message to other languages 'php-mail-error' => '$1', # do not translate or duplicate this message to other languages 'php-mail-error-unknown' => "Unknown error in PHP's mail() function", +'user-mail-no-addy' => "Tried to send email without an email address", # Change password dialog 'resetpass' => 'Change password', -- 2.20.1