public function enhanceMail(Codendi_Mail $mail) { foreach ($this->getAdditionalHeaders() as $name => $value) { $mail->addAdditionalHeader($name, $value); } foreach ($this->getAdditionalPropertiesForLookAndFeel() as $property => $value) { $mail->getLookAndFeelTemplate()->set($property, $value); } if ($this->getMessageId()) { $mail->getMail()->setMessageId($this->getMessageId()); } }
public function sendMail(PFUser $user, Project $project, $tv3_id, $tracker_name) { $mail = new Codendi_Mail(); $breadcrumbs = array(); $breadcrumbs[] = '<a href="' . get_server_url() . '/projects/' . $project->getUnixName(true) . '" />' . $project->getPublicName() . '</a>'; $mail->getLookAndFeelTemplate()->set('breadcrumbs', $breadcrumbs); $mail->addAdditionalHeader("X-Codendi-Project", $project->getUnixName()); $mail->setFrom($GLOBALS['sys_noreply']); $mail->setTo($user->getEmail()); $mail->setSubject('Output of your migration TV3 -> TV5'); $mail->setBody($this->getMailBody($tv3_id, $tracker_name)); $mail->send(); $this->purgeLogStack(); }
public function enhanceMail(Codendi_Mail $mail) { $headers = $this->getAdditionalHeaders(); $from_mail = null; if (array_key_exists('from', $headers)) { $from_mail = $headers['from']; unset($headers['from']); } if ($from_mail === null && array_key_exists('reply-to', $headers)) { $from_mail = $headers['reply-to']; } if ($from_mail !== null) { $mail->clearFrom(); $mail->setFrom($from_mail); } foreach ($headers as $name => $value) { $mail->addAdditionalHeader($name, $value); } foreach ($this->getAdditionalPropertiesForLookAndFeel() as $property => $value) { $mail->getLookAndFeelTemplate()->set($property, $value); } if ($this->getMessageId()) { $mail->getMail()->setMessageId($this->getMessageId()); } }
/** * Send a notification * * @param array $recipients the list of recipients * @param array $headers the additional headers * @param string $subject the subject of the message * @param string $htmlBody the html content of the message * @param string $txtBody the text content of the message * * @return void */ protected function sendNotification($recipients, $headers, $subject, $htmlBody, $txtBody) { $mail = new Codendi_Mail(); $hp = Codendi_HTMLPurifier::instance(); $breadcrumbs = array(); $groupId = $this->getTracker()->getGroupId(); $project = $this->getTracker()->getProject(); $trackerId = $this->getTracker()->getID(); $artifactId = $this->getArtifact()->getID(); $breadcrumbs[] = '<a href="' . get_server_url() . '/projects/' . $project->getUnixName(true) . '" />' . $project->getPublicName() . '</a>'; $breadcrumbs[] = '<a href="' . get_server_url() . '/plugins/tracker/?tracker=' . (int) $trackerId . '" />' . $hp->purify(SimpleSanitizer::unsanitize($this->getTracker()->getName())) . '</a>'; $breadcrumbs[] = '<a href="' . get_server_url() . '/plugins/tracker/?aid=' . (int) $artifactId . '" />' . $hp->purify($this->getTracker()->getName() . ' #' . $artifactId) . '</a>'; $mail->getLookAndFeelTemplate()->set('breadcrumbs', $breadcrumbs); $mail->getLookAndFeelTemplate()->set('title', $hp->purify($subject)); $mail->setFrom($GLOBALS['sys_noreply']); $mail->addAdditionalHeader("X-Codendi-Project", $this->getArtifact()->getTracker()->getProject()->getUnixName()); $mail->addAdditionalHeader("X-Codendi-Tracker", $this->getArtifact()->getTracker()->getItemName()); $mail->addAdditionalHeader("X-Codendi-Artifact-ID", $this->getId()); foreach ($headers as $header) { $mail->addAdditionalHeader($header['name'], $header['value']); } $mail->setTo(implode(', ', $recipients)); $mail->setSubject($subject); if ($htmlBody) { $mail->setBodyHTML($htmlBody); } $mail->setBodyText($txtBody); $mail->send(); }
/** * Send a notification * * @param array $recipients the list of recipients * @param array $headers the additional headers * @param string $subject the subject of the message * @param string $htmlBody the html content of the message * @param string $txtBody the text content of the message * @param string $message_id the id of the message * @param string $from the from email address * * @return void */ protected function sendNotification($recipients, $headers, $subject, $htmlBody, $txtBody, $message_id, $from) { $mail = new Codendi_Mail(); if ($message_id) { $mail->getMail()->setMessageId($message_id); } $hp = Codendi_HTMLPurifier::instance(); $breadcrumbs = array(); $tracker = $this->getTracker(); $project = $tracker->getProject(); $artifactId = $this->getArtifact()->getID(); $project_unix_name = $project->getUnixName(true); $tracker_name = $tracker->getItemName(); $breadcrumbs[] = '<a href="' . get_server_url() . '/projects/' . $project_unix_name . '" />' . $project->getPublicName() . '</a>'; $breadcrumbs[] = '<a href="' . get_server_url() . '/plugins/tracker/?tracker=' . (int) $tracker->getId() . '" />' . $hp->purify($this->getTracker()->getName()) . '</a>'; $breadcrumbs[] = '<a href="' . get_server_url() . '/plugins/tracker/?aid=' . (int) $artifactId . '" />' . $hp->purify($this->getTracker()->getName() . ' #' . $artifactId) . '</a>'; $mail->getLookAndFeelTemplate()->set('breadcrumbs', $breadcrumbs); $mail->getLookAndFeelTemplate()->set('unsubscribe_link', $this->getUnsubscribeLink()); $mail->getLookAndFeelTemplate()->set('title', $hp->purify($subject)); $mail->setFrom($from); $mail->addAdditionalHeader("X-Codendi-Project", $project->getUnixName()); $mail->addAdditionalHeader("X-Codendi-Tracker", $tracker_name); $mail->addAdditionalHeader("X-Codendi-Artifact-ID", $this->getId()); foreach ($headers as $header) { $mail->addAdditionalHeader($header['name'], $header['value']); } $mail->setTo(implode(', ', $recipients)); $mail->setSubject($subject); if ($htmlBody) { $htmlBody .= $this->getHTMLBodyFilter($project_unix_name, $tracker_name); $mail->setBodyHTML($htmlBody); } $txtBody .= $this->getTextBodyFilter($project_unix_name, $tracker_name); $mail->setBodyText($txtBody); $mail->send(); }
function plugin_forumml_process_mail($plug, $reply = false) { $request =& HTTPRequest::instance(); $hp =& ForumML_HTMLPurifier::instance(); // Instantiate a new Mail class $mail = new Codendi_Mail(); // Build mail headers $to = mail_get_listname_from_list_id($request->get('list')) . "@" . $GLOBALS['sys_lists_host']; $mail->setTo($to); $from = user_getrealname(user_getid()) . " <" . user_getemail(user_getid()) . ">"; $mail->setFrom($from); $vMsg = new Valid_Text('message'); if ($request->valid($vMsg)) { $message = $request->get('message'); } $subject = $request->get('subject'); $mail->setSubject($subject); if ($reply) { // set In-Reply-To header $hres = plugin_forumml_get_message_headers($request->get('reply_to')); $reply_to = db_result($hres, 0, 'value'); $mail->addAdditionalHeader("In-Reply-To", $reply_to); } $continue = true; if ($request->validArray(new Valid_Email('ccs')) && $request->exist('ccs')) { $cc_array = array(); $idx = 0; foreach ($request->get('ccs') as $cc) { if (trim($cc) != "") { $cc_array[$idx] = $hp->purify($cc, CODENDI_PURIFIER_FULL); $idx++; } } // Checks sanity of CC List $err = ''; if (!util_validateCCList($cc_array, $err)) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_forumml', 'invalid_mail', $err)); $continue = false; } else { // add list of cc users to mail mime if (count($cc_array) > 0) { $cc_list = util_normalize_emails(implode(',', $cc_array)); $mail->setCc($cc_list, true); } } } if ($continue) { // Process attachments if (isset($_FILES["files"]) && count($_FILES["files"]['name']) > 0) { foreach ($_FILES["files"]['name'] as $i => $fileName) { $data = file_get_contents($_FILES["files"]["tmp_name"][$i]); $mime_type = $_FILES["files"]["type"][$i]; $mail->addAttachment($data, $mime_type, $fileName); } } $mail->setBodyText($message); if ($mail->send()) { $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('plugin_forumml', 'mail_succeed')); } else { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_forumml', 'mail_fail')); $continue = false; } } return $continue; }