Example #1
0
 function run(Model_Alert $alert, $sensors)
 {
     @($to = DevblocksPlatform::parseCsvString($alert->actions[self::EXTENSION_ID]['to']));
     @($template_subject = $alert->actions[self::EXTENSION_ID]['template_subject']);
     @($template_body = $alert->actions[self::EXTENSION_ID]['template_body']);
     $logger = DevblocksPlatform::getConsoleLog();
     // Assign template variables
     $tpl = DevblocksPlatform::getTemplateService();
     $tpl->clear_all_assign();
     $tpl->assign('alert', $alert);
     $tpl->assign('sensors', $sensors);
     $tpl->assign('num_sensors', count($sensors));
     // Build template
     $tpl_builder = DevblocksPlatform::getTemplateBuilder();
     $errors = array();
     // Subject
     if (false == ($subject = $tpl_builder->build($template_subject))) {
         $errors += $tpl_builder->getErrors();
     }
     // Body
     if (false == ($body = $tpl_builder->build($template_body))) {
         $errors += $tpl_builder->getErrors();
     }
     if (!empty($errors)) {
         $logger->err(sprintf("Errors in mail template (skipping): %s", implode("<br>\r\n", $errors)));
         return false;
     }
     if (is_array($to)) {
         foreach ($to as $address) {
             $logger->info(sprintf("Sending mail to %s about %d sensors", $address, count($sensors)));
             PortSensorMail::quickSend($address, $subject, $body);
         }
     }
 }
Example #2
0
             @($contact_phone = stripslashes($_REQUEST['contact_phone']));
             @($contact_refer = stripslashes($_REQUEST['contact_refer']));
             @($q1 = stripslashes($_REQUEST['q1']));
             @($q2 = stripslashes($_REQUEST['q2']));
             @($q3 = stripslashes($_REQUEST['q3']));
             @($q4 = stripslashes($_REQUEST['q4']));
             @($q5_support = stripslashes($_REQUEST['q5_support']));
             @($q5_opensource = stripslashes($_REQUEST['q5_opensource']));
             @($q5_price = stripslashes($_REQUEST['q5_price']));
             @($q5_updates = stripslashes($_REQUEST['q5_updates']));
             @($q5_developers = stripslashes($_REQUEST['q5_developers']));
             @($q5_community = stripslashes($_REQUEST['q5_community']));
             @($comments = stripslashes($_REQUEST['comments']));
             if (isset($_REQUEST['form_submit'])) {
                 $msg = sprintf("Contact Name: %s\r\n" . "Organization: %s\r\n" . "Referred by: %s\r\n" . "Phone: %s\r\n" . "\r\n" . "#1: Briefly, what does your organization do?\r\n%s\r\n\r\n" . "#2: How is your team currently handling service monitoring?\r\n%s\r\n\r\n" . "#3: Are you considering both free and commercial solutions?\r\n%s\r\n\r\n" . "#4: What will be your first important milestone?\r\n%s\r\n\r\n" . "#5: How important are the following benefits in making your decision?\r\n" . "Near-Instant Support: %d\r\nAvailable Source Code: %d\r\nCompetitive Purchase Price: %d\r\n" . "Frequent Product Updates: %d\r\nAccess to Developers: %d\r\nLarge User Community: %d\r\n" . "\r\n" . "Additional Comments: \r\n%s\r\n\r\n", $contact_name, $contact_company, $contact_refer, $contact_phone, $q1, $q2, $q3, $q4, $q5_support, $q5_opensource, $q5_price, $q5_updates, $q5_developers, $q5_community, $comments);
                 PortSensorMail::quickSend('*****@*****.**', "About: {$contact_name} of {$contact_company}", $msg, $contact_email, $contact_name);
             }
         }
         $tpl->assign('step', STEP_FINISHED);
         $tpl->display('steps/redirect.tpl');
         exit;
     }
     $tpl->assign('template', 'steps/step_register.tpl');
     break;
 case STEP_UPGRADE:
     $tpl->assign('template', 'steps/step_upgrade.tpl');
     break;
     // [TODO] Delete the /install/ directory (security)
 // [TODO] Delete the /install/ directory (security)
 case STEP_FINISHED:
     // Set up the default cron jobs
Example #3
0
 function doRecoverStep1Action()
 {
     $translate = DevblocksPlatform::getTranslationService();
     @($email = DevblocksPlatform::importGPC($_REQUEST['email'], 'string'));
     $worker = null;
     $results = DAO_Worker::getWhere(sprintf("%s = %s", DAO_Worker::EMAIL, Ps_ORMHelper::qstr($email)));
     if (!empty($results)) {
         $worker = array_shift($results);
     }
     if (empty($email) || empty($worker)) {
         return;
     }
     $_SESSION[self::KEY_FORGOT_EMAIL] = $email;
     try {
         $code = PortSensorApplication::generatePassword(10);
         $_SESSION[self::KEY_FORGOT_SENTCODE] = $code;
         $to = $email;
         $subject = $translate->_('login.forgot.mail.subject');
         $body = vsprintf($translate->_('login.forgot.mail.body'), $code);
         PortSensorMail::quickSend($to, $subject, $body);
     } catch (Exception $e) {
         DevblocksPlatform::redirect(new DevblocksHttpResponse(array('login', 'forgot', 'step1', 'failed')));
     }
     DevblocksPlatform::redirect(new DevblocksHttpResponse(array('login', 'forgot', 'step2')));
 }
 static function quickSend($to, $subject, $body, $from_addy = null, $from_personal = null)
 {
     try {
         $mail_service = DevblocksPlatform::getMailService();
         $mailer = $mail_service->getMailer(PortSensorMail::getMailerDefaults());
         $mail = $mail_service->createMessage();
         $settings = DevblocksPlatform::getPluginSettingsService();
         if (empty($from_addy)) {
             @($from_addy = $settings->get('portsensor.core', PortSensorSettings::DEFAULT_REPLY_FROM, $_SERVER['SERVER_ADMIN']));
         }
         if (empty($from_personal)) {
             @($from_personal = $settings->get('portsensor.core', PortSensorSettings::DEFAULT_REPLY_PERSONAL, ''));
         }
         $mail->setTo(array($to));
         $mail->setFrom(array($from_addy => $from_personal));
         $mail->setSubject($subject);
         $mail->generateId();
         $headers = $mail->getHeaders();
         $headers->addTextHeader('X-Mailer', 'PortSensor (Build ' . APP_BUILD . ')');
         $mail->setBody($body);
         // [TODO] Report when the message wasn't sent.
         if (!$mailer->send($mail)) {
             return false;
         }
     } catch (Exception $e) {
         return false;
     }
     return true;
 }