예제 #1
0
 public function itBuildsAndSendsAClassicEmailIfProjectDoesNotUseTruncatedEmail()
 {
     $project = stub('Project')->getTruncatedEmailsUsage()->returns(false);
     $sent = $this->builder->buildAndSendEmail($project, $this->notification, $this->mail_enhancer);
     expect($this->renderer)->renderToString()->never();
     expect($this->mail_enhancer)->enhanceMail()->count(2);
     $this->assertTrue($sent);
 }
 function sendNotifications($event, $params)
 {
     $success = true;
     foreach ($this->notifications as $notification) {
         $success &= $this->mail_builder->buildAndSendEmail($this->project, $notification, new MailEnhancer());
     }
     if (!$success) {
         $this->_feedback->log('warning', 'Error when sending some notifications.');
     }
 }
 private function sendErrorNotification(GitRepository $repository)
 {
     $user = $this->getRequester();
     if (!$user->isAnonymous()) {
         $factory = new BaseLanguageFactory();
         $language = $factory->getBaseLanguage($user->getLocale());
         $url = get_server_url() . GIT_BASE_URL . '/?action=repo_management&group_id=' . $repository->getProjectId() . '&repo_id=' . $repository->getId() . '&pane=gerrit';
         $notification = new Notification(array($user->getEmail()), $language->getText('plugin_git', 'delegated_to_gerrit_error_mail_subject', array($repository->getFullName())), $language->getText('plugin_git', 'delegated_to_gerrit_error_mail_body', array($repository->getFullName(), $url)), $language->getText('plugin_git', 'delegated_to_gerrit_error_mail_body', array($repository->getFullName(), $url)), $url, 'git');
         $this->mail_builder->buildAndSendEmail($repository->getProject(), $notification, new MailEnhancer());
     }
 }
예제 #4
0
 /**
  * @return bool
  */
 private function sendMail(GitRepository $repository, MailBuilder $mail_builder, $oldrev, $newrev, $refname)
 {
     $mail_raw_output = array();
     exec('/usr/share/codendi/plugins/git/hooks/post-receive-email ' . escapeshellarg($oldrev) . ' ' . escapeshellarg($newrev) . ' ' . escapeshellarg($refname), $mail_raw_output);
     $subject = isset($mail_raw_output[0]) ? $mail_raw_output[0] : self::DEFAULT_MAIL_SUBJECT;
     $mail_enhancer = new MailEnhancer();
     $this->addAdditionalMailHeaders($mail_enhancer, $mail_raw_output);
     $body = $this->createMailBody($mail_raw_output);
     $access_link = $repository->getDiffLink($this->repository_url_manager, $newrev);
     $notification = new Notification($repository->getNotifiedMails(), $subject, '', $body, $access_link, 'Git');
     return $mail_builder->buildAndSendEmail($repository->getProject(), $notification, $mail_enhancer);
 }
예제 #5
0
 public function itDoesNotStopIfAMailIsNotSent()
 {
     $project = stub('Project')->getTruncatedEmailsUsage()->returns(false);
     $codendi_mail_2 = stub('Codendi_Mail')->send()->returns(true);
     stub($this->codendi_mail)->send()->returns(false);
     stub($this->builder)->getMailSender()->returnsAt(0, $this->codendi_mail);
     stub($this->builder)->getMailSender()->returnsAt(1, $codendi_mail_2);
     $this->builder->expectCallCount('getMailSender', 2);
     $this->codendi_mail->expectCallCount('send', 1);
     $codendi_mail_2->expectCallCount('send', 1);
     $sent = $this->builder->buildAndSendEmail($project, $this->notification, $this->mail_enhancer);
     $this->assertFalse($sent);
 }
 /**
  * @param Project $project
  * @param array $emails
  * @param $subject
  * @param $html_body
  * @param $text_body
  * @param $link
  * @param $truncated_service_name
  * @param MailEnhancer $mail_enhancer
  *
  * @return bool
  */
 public function buildAndSendEmail(Project $project, array $emails, $subject, $html_body, $text_body, $link, $truncated_service_name, MailEnhancer $mail_enhancer)
 {
     return $this->mail_builder->buildAndSendEmail($project, $this->getNotification($emails, $subject, $html_body, $text_body, $link, $truncated_service_name), $mail_enhancer);
 }
예제 #7
0
 /**
  * @return bool
  */
 private function sendEmail(FRSRelease $release, Notification $notification)
 {
     $builder = new MailBuilder(TemplateRendererFactory::build());
     return $builder->buildAndSendEmail($release->getProject(), $notification, new MailEnhancer());
 }
 /**
  * Notify after deleting monitoring for a user
  *
  * @param FRSPackage $package Id of th package
  * @param PFUser       $user    The deleted user
  *
  * @return Boolean
  */
 function notifyAfterDelete(FRSPackage $package, PFUser $user)
 {
     $mail_builder = new MailBuilder(TemplateRendererFactory::build());
     $htmlBody = $GLOBALS['Language']->getText('file_filemodule_monitor', 'delete_monitor_mail');
     $htmlBody .= ' <a href="' . $goto_link . '" >' . $package->getName() . '</a>';
     $htmlBody .= '<br /><br /><a href="' . get_server_url() . '/file/filemodule_monitor.php?group_id=' . $package->getGroupID() . '&filemodule_id=' . $package->getPackageID() . '" >' . $GLOBALS['Language']->getText('file_showfiles', 'start_monitoring') . '</a>';
     $txtBody = $GLOBALS['Language']->getText('file_filemodule_monitor', 'delete_monitor_mail') . ' "' . $package->getName() . '" : ';
     $txtBody .= $goto_link;
     $txtBody .= "\n\n" . $GLOBALS['Language']->getText('file_showfiles', 'start_monitoring') . ': ';
     $txtBody .= get_server_url() . '/file/filemodule_monitor.php?group_id=' . $package->getGroupID() . '&filemodule_id=' . $package->getPackageID();
     $notification = $this->getNotification($package, $user, $htmlBody, $txtBody);
     $project = ProjectManager::instance()->getProject($package->getGroupID());
     return $mail_builder->buildAndSendEmail($project, $notification, new MailEnhancer());
 }
예제 #9
0
 /**
  * @return bool
  */
 public function send()
 {
     $mail_builder = new MailBuilder(TemplateRendererFactory::build());
     return $mail_builder->buildAndSendEmail($this->project, $this->notification, $this->mail_enhancer);
 }