/**
  * the main function that is called when the page loads,
  * it decides the which action has to be taken for the page.
  *
  * @return null
  */
 function run()
 {
     $secretCode = CRM_Utils_Type::escape($_GET['mandrillSecret'], 'String');
     $mandrillSecret = CRM_Core_OptionGroup::values('mandrill_secret', TRUE);
     if ($secretCode !== $mandrillSecret['Secret Code']) {
         return FALSE;
     }
     if (CRM_Utils_Array::value('mandrill_events', $_POST)) {
         $reponse = json_decode($_POST['mandrill_events'], TRUE);
         if (is_array($reponse) && !empty($reponse)) {
             CRM_Mte_BAO_Mandrill::processMandrillCalls($reponse);
         }
     }
     CRM_Utils_System::civiExit();
 }
function mte_createQueue(&$mandrillHeader, $toEmail)
{
    $mail = new CRM_Mailing_DAO_Mailing();
    $mail->subject = "***All Transactional Emails***";
    $mail->url_tracking = TRUE;
    $mail->forward_replies = FALSE;
    $mail->auto_responder = FALSE;
    $mail->open_tracking = TRUE;
    if ($mail->find(TRUE)) {
        $emails = CRM_Mte_BAO_Mandrill::retrieveEmailContactId($toEmail);
        $jobCLassName = 'CRM_Mailing_DAO_MailingJob';
        if (version_compare('4.4alpha1', CRM_Core_Config::singleton()->civiVersion) > 0) {
            $jobCLassName = 'CRM_Mailing_DAO_Job';
        }
        $params = array('job_id' => CRM_Core_DAO::getFieldValue($jobCLassName, $mail->id, 'id', 'mailing_id'), 'contact_id' => $emails['email']['contact_id'], 'email_id' => $emails['email']['id']);
        $eventQueue = CRM_Mailing_Event_BAO_Queue::create($params);
        $mandrillHeader = implode(CRM_Core_Config::singleton()->verpSeparator, array($mandrillHeader, 'm', $params['job_id'], $eventQueue->id, $eventQueue->hash));
    }
}