get('email_queue', 'enabled') != 'true') { echo "Email Queue is disabled in Default Settings\n"; exit; } //make sure the /var/run/fusionpbx directory exists if (!file_exists('/var/run/fusionpbx')) { $result = mkdir('/var/run/fusionpbx', 0777, true); if (!$result) { die('Failed to create /var/run/fusionpbx'); } } //create the process id file if the process doesn't exist if (!$pid_exists) { //remove the old pid file if (file_exists($pid_file)) { unlink($pid_file); } //show the details to the user //echo "The process id is ".getmypid()."\n"; //echo "pid_file: ".$pid_file."\n"; //save the pid file file_put_contents($pid_file, getmypid()); } //get the call center settings $interval = $settings->get('email_queue', 'interval'); //set the defaults if (!is_numeric($interval)) { $interval = 30; } //set the email queue limit if (!empty($settings->get('email_queue', 'limit'))) { $email_queue_limit = $settings->get('email_queue', 'limit'); } else { $email_queue_limit = '30'; } if (!empty($settings->get('email_queue', 'debug'))) { $debug = $settings->get('email_queue', 'debug'); } //get the messages waiting in the email queue while (true) { //get the messages that are waiting to send $sql = "select * from v_email_queue "; $sql .= "where (email_status = 'waiting' or email_status = 'trying') "; $sql .= "and hostname = :hostname "; $sql .= "order by domain_uuid, email_date desc "; $sql .= "limit :limit "; $parameters['hostname'] = $hostname; $parameters['limit'] = $email_queue_limit; $database = new database; $email_queue = $database->select($sql, $parameters, 'all'); unset($parameters); //process the messages if (is_array($email_queue) && @sizeof($email_queue) != 0) { foreach($email_queue as $row) { $command = PHP_BINARY." ".$_SERVER['DOCUMENT_ROOT']."/app/email_queue/resources/jobs/email_send.php "; $command .= "'action=send&email_queue_uuid=".$row["email_queue_uuid"]."&hostname=".$hostname."'"; if (isset($debug)) { //run process inline to see debug info echo $command."\n"; $result = system($command); echo $result."\n"; } else { //starts process rapidly doesn't wait for previous process to finish (used for production) $handle = popen($command." > /dev/null &", 'r'); echo "'$handle'; " . gettype($handle) . "\n"; $read = fread($handle, 2096); echo $read; pclose($handle); } } } //pause to prevent excessive database queries sleep($interval); } //remove the old pid file if (file_exists($pid_file)) { unlink($pid_file); } //save output to //$fp = fopen(sys_get_temp_dir()."/mailer-app.log", "a"); //prepare the output buffers //ob_end_clean(); //ob_start(); //message divider for log file //echo "\n\n=============================================================================================================================================\n\n"; //get and save the output from the buffer //$content = ob_get_contents(); //get the output from the buffer //$content = str_replace("
", "", $content); //ob_end_clean(); //clean the buffer //fwrite($fp, $content); //fclose($fp); //notes //echo __line__."\n"; // if not keeping the email then need to delete it after the voicemail is emailed //how to use this feature // cd /var/www/fusionpbx; /usr/bin/php /var/www/fusionpbx/app/email_queue/resources/send.php ?>