#!/usr/bin/php -q time() ) { $message = $hesk_settings['debug_mode'] ? $hesklang['ifr'] : ''; die($message); } else { // Start the process (force) file_put_contents($job_file, time() ); } } else { // No job in progress, log when this one started file_put_contents($job_file, time() ); } } // Get other required includes require(HESK_PATH . 'inc/pipe_functions.inc.php'); // Tell Hesk we are in IMAP mode define('HESK_IMAP', true); // IMAP mailbox based on required encryption switch ($hesk_settings['imap_enc']) { case 'ssl': $hesk_settings['imap_mailbox'] = '{'.$hesk_settings['imap_host_name'].':'.$hesk_settings['imap_host_port'].'/imap/ssl/novalidate-cert}'; break; case 'tls': $hesk_settings['imap_mailbox'] = '{'.$hesk_settings['imap_host_name'].':'.$hesk_settings['imap_host_port'].'/imap/tls/novalidate-cert}'; break; default: $hesk_settings['imap_mailbox'] = '{'.$hesk_settings['imap_host_name'].':'.$hesk_settings['imap_host_port'].'}'; } // Connect to IMAP $imap = @imap_open($hesk_settings['imap_mailbox'], $hesk_settings['imap_user'], $hesk_settings['imap_password']); // Connection successful? if ($imap !== false) { echo $hesk_settings['debug_mode'] ? "
Connected to the IMAP server "" . $hesk_settings['imap_mailbox'] . "".\n" : ''; if($emails = imap_search($imap, 'UNSEEN')) { echo $hesk_settings['debug_mode'] ? "
Unread messages found: " . count($emails) . "\n" : ''; // Connect to the database hesk_dbConnect(); // Download and parse each email foreach($emails as $email_number) { // Parse email from the stream $results = parser(); // Convert email into a ticket (or new reply) if ( $id = hesk_email2ticket($results, 2, $set_category, $set_priority) ) { echo $hesk_settings['debug_mode'] ? "
Ticket $id created/updated.\n" : ''; } else { echo $hesk_settings['debug_mode'] ? "
Ticket NOT inserted - may be duplicate, blocked or an error.\n" : ''; } // Queue message to be deleted on connection close if ( ! $hesk_settings['imap_keep']) { imap_delete($imap, $email_number); } echo $hesk_settings['debug_mode'] ? "
No unread messages found.\n" : ''; } // Close IMAP connection imap_close($imap); echo $hesk_settings['debug_mode'] ? "
Disconnected from the IMAP server.\n" : ''; } // Any error messages? if($errors = imap_errors()) { if ($hesk_settings['debug_mode']) { foreach ($errors as $error) { echo "
" . hesk_htmlspecialchars($error) . "\n"; } } else { echo "
For details turn Debug mode ON in settings and run this script again.
\n"; } } // Remove active IMAP fetching log file if ($hesk_settings['imap_job_wait']) { unlink($job_file); } return NULL;