function submit($data)
 {
     global $wgUserEmailUseReplyTo, $wgEmailUsersUseJobQueue, $wgPasswordSender, $wgUser;
     if ($data['target-reverse']) {
         $targets = array_diff($this->userIds, $data['target']);
     } else {
         $targets = $data['target'];
     }
     if ($data['ccme']) {
         $targets[] = $wgUser->getId();
     }
     $text = rtrim($data['text']) . "\n\n-- \n";
     $params = array('subj' => $data['subject'], 'replyto' => new MailAddress($wgUser));
     if ($wgUserEmailUseReplyTo) {
         $params['from'] = new MailAddress($wgPasswordSender);
     } else {
         $params['from'] = new MailAddress($wgUser);
     }
     foreach ($targets as $userId) {
         $user = User::newFromId($userId);
         $params['to'] = new MailAddress($user);
         # Or use the recipient's language instead of content?
         $params['body'] = $text . wfMsgExt('emailuserfooter', array('content', 'parsemag'), array($wgUser->getName(), $user->getName()));
         $job = new EmaillingJob($this->getTitle(), $params);
         if ($wgEmailUsersUseJobQueue) {
             $job->insert();
         } else {
             $job->run();
         }
     }
     return true;
 }