hq_id = 0 if ($constAutomailerEnabled == '1') : // Get next job(s) to send per mail to the customer $jobArray = getAutoMailerJobsGdc(1); // Loop all jobs (default one) $lenJobArray = count($jobArray); for ($i = 0; $i < $lenJobArray; $i++) : if ($i > 0) : sleep(1); endif; // Init for each job $jbMailAttachements = array(); // Current job and mail address $job_id = $jobArray[$i][0]; $f_email = trim($jobArray[$i][1]); $f_email = str_replace(" ", "", $f_email); $job_crSid = $jobArray[$i][2]; $currentHqId = $jobArray[$i][3]; $job_mode = $jobArray[$i][4]; // Define constants $logFile = getParameterValue("0", "AUTOMAILER_LOGFILE_5", $currentHqId); if ($logFile == "") : $logFile = getParameterValue("0", "AUTOMAILER_LOGFILE_5", "0"); endif; $constMailSenderAddress = getParameterValue("0", "MAIL_SENDER_ADDRESS", $currentHqId); // Set action parameters $f_act = "mailsend"; $mailResult = FALSE; // Standalone process $automailer = "1"; if ($job_id != "" && $f_email != "" && $currentHqId != "") : // The semaphore basically has to be generated by inserting a new job. // Here the existence will be checked finally, but the code should not be executed (!!!!) if (!existsEntry("phoenix_log.semaphor",array("sp_obj_type","jb","sp_obj_id",$job_id,"sp_fieldname",$semaphorKey))) : insertStmt("phoenix_log.semaphor", array("sp_obj_type", "jb", "sp_obj_id", $job_id, "sp_fieldname", $semaphorKey, "sp_content", "", "sp_context", 'FALLBACK')); die(); endif; // Try to lock semaphore $res = updateStmt("phoenix_log.semaphor", "sp_obj_id", $job_id, array("sp_content", "LOCKED", "sp_createtime", $currentTime), "sp_obj_type = 'jb' AND sp_fieldname = '" . $semaphorKey . "' AND sp_content = ''"); if ($db->affected_rows > 0) : // Initiate switch for the mail text according to the caller mode for taken jobs (= 1) $gdcContextCurr = getFieldValueFromClause("genericdatacontainer", "gdc_context", "gdc_obj_id = '" . $job_id . "' AND gdc_gen_fieldname = '" . $gdcCashpayerMailKey . "'"); if ($gdcContextCurr == "" || !is_numeric($gdcContextCurr)) : $gdcContextCurr = 1024; endif; $mailTextJobStatus = ""; $gdcContextNewValue = 1024; switch ($job_mode) { case "1": $mailTextJobStatus = "8"; $gdcContextNewValue = ($gdcContextCurr | 1025); $jbStatusText = "Erfassung"; break; case "2": $mailTextJobStatus = "1"; $gdcContextNewValue = ($gdcContextCurr | 1026); $jbStatusText = "Abholung"; break; case "3": $gdcContextNewValue = ($gdcContextCurr | 1028); $jbStatusText = "Erledigung"; break; } include ("../admin/jb_detail.php"); // Get current mail status // $jbAutomailsent = getFieldValueFromClause("genericdatacontainer", "gdc_context", "gdc_obj_type = 'jb' AND gdc_gen_fieldname = '" . $gdcCashpayerMailKey . "' AND gdc_obj_id = '" . $job_id . "'"); // if ($jbAutomailsent == "" || !is_numeric($jbAutomailsent)) : $jbAutomailsent = 0; endif; if ($mailResult) : // updateStmt("genericdatacontainer","gdc_obj_type","jb",array("gdc_context", "MAIL_SENT"),"gdc_obj_id = '" . $job_id . "' AND gdc_gen_fieldname = '" . $gdcCashpayerMailKey . "'"); updateStmt("genericdatacontainer","gdc_obj_type","jb",array("gdc_context", $gdcContextNewValue) ,"gdc_obj_id = '" . $job_id . "' AND gdc_gen_fieldname = '" . $gdcCashpayerMailKey . "'"); $statusSent = "OK"; else : $statusSent = "NOT OK"; // $jbAutomailsent++; // Check for maximum of 5 fault trials. If reached then finalize with error code // if ($jbAutomailsent > "5") : // updateStmt("genericdatacontainer","gdc_obj_type","jb",array("gdc_context", "MAIL_NOT_SENT"),"gdc_obj_id = '" . $job_id . "' AND gdc_gen_fieldname = '" . $gdcCashpayerMailKey . "'"); updateStmt("genericdatacontainer","gdc_obj_type","jb",array("gdc_context", $gdcContextNewValue) ,"gdc_obj_id = '" . $job_id . "' AND gdc_gen_fieldname = '" . $gdcCashpayerMailKey . "'"); // else : // updateStmt("genericdatacontainer","gdc_obj_type","jb",array("gdc_context", $jbAutomailsent),"gdc_obj_id = '" . $job_id . "' AND gdc_gen_fieldname = '" . $gdcCashpayerMailKey . "'"); // endif; endif; // Write logdata into log file writeToFile($logFile, "[Job: " . $job_id . "] [Time: " . $currentTime . "] [From: " . $constMailSenderAddress . "] [To: " . $f_email . "] [SID: " . $job_crSid . "] [" . $jbStatusText . "] [Status: " . $statusSent . "]"); else : // Check semaphore to be unlocked $spCreatetime = getFieldValueFromClause("phoenix_log.semaphor", "sp_createtime", "sp_obj_type = 'jb' AND sp_obj_id = '" . $job_id . "' AND sp_fieldname = '" . $semaphorKey . "'"); $spSecDiff = strtotime($currentTime) - strtotime($spCreatetime); if ($spSecDiff > $semaphorLiveTime) : updateStmt("phoenix_log.semaphor", "sp_obj_id", $job_id, array("sp_content", "", "sp_createtime", $currentTime), "sp_obj_type = 'jb' AND sp_fieldname = '" . $semaphorKey . "' AND sp_content = 'LOCKED'"); endif; endif; // $mailObj.dispose(); else : // If email address is empty then set sent status to NOT OK if ($f_email == "" && $job_id != "" && $currentHqId != "") : updateStmt("genericdatacontainer","gdc_obj_type","jb",array("gdc_context", "MAIL_NOT_SENT"),"gdc_obj_id = '" . $job_id . "' AND gdc_gen_fieldname = '" . $gdcCashpayerMailKey . "'"); // Write logdata into log file writeToFile($logFile, "[Job: " . $job_id . "] [Time: " . $currentTime . "] [From: " . $constMailSenderAddress . "] [To: " . "_EMPTY_" . "] [SID: " . $job_crSid . "] [Erledigung] [Status: NOT OK]"); endif; endif; $job_id = ""; $f_email = ""; endfor; // Loop all jobs endif; // AUTOMAILER_ENABLED // sleep(30); // endwhile; // Endless loop ?>