0) :
for ($i = 0; $i < $f_allCustomersLen; $i++) :
$whereClauseCs .= " cmp.cmp_type = '" . $f_allCustomers[$i] . "' ";
if ($i < ($f_allCustomersLen - 1)) : $whereClauseCs .= " OR "; endif;
endfor;
$whereClauseCs = "(" . $whereClauseCs . ") AND ";
// Filter branch
$whereClauseBr = "";
$f_branch_len = 0;
if (is_array($f_branch)) : $f_branch_len = count($f_branch); endif;
if ($f_branch_len > 0) :
// $whereClauseBr = " cmp.br_id = '" . $f_branch . "' AND ";
$whereClauseBr = " cmp.br_id IN ('" . implode("','", $f_branch) . "') AND ";
endif;
if ($f_hq_id != "" && count($f_hq_id) >= 1) :
$whereClauseCs .= " cs.hq_id IN " . getSQLMandatorArray($f_hq_id) . " AND ";
else :
$whereClauseCs .= " cs.hq_id = '" . $hq_id . "' AND ";
endif;
$sqlquery1 = "SELECT usr.usr_email AS email, cs.cs_id"
. " FROM customer AS cs, company AS cmp, employee AS emp, user AS usr"
. " WHERE " . $whereClauseCs . $whereClauseBr . " cs.cmp_id = cmp.cmp_id AND cs.cs_jbstatusmail2csc = '0' AND cmp.cmp_newsletter = '1' " . $dsgvoClause . " AND"
. " cs.cs_admin = emp.emp_id AND emp.usr_id = usr.usr_id AND usr.usr_email != ''";
$sqlquery2 = "SELECT cscad.cscad_email AS email, cs.cs_id"
. " FROM customer AS cs, company AS cmp, costcenter AS csc, costcenteraddress AS cscad"
. " WHERE " . $whereClauseCs . $whereClauseBr . " cs.cmp_id = cmp.cmp_id AND cs.cs_jbstatusmail2csc = '1' AND cmp.cmp_newsletter = '1' " . $dsgvoClause . " AND"
. " csc.cs_id = cs.cs_id AND csc.csc_id = cscad.csc_id AND cscad.adt_id = '2' AND cscad.cscad_email != ''";
$result = $db->query("(" . $sqlquery1 . ") UNION (" . $sqlquery2 . ")");
if (DB::isError($result)) die ("$PHP_SELF: " . $result->getMessage());
$count = 0;
while ($row = $result->fetch_assoc()):
$f_emailAddresses[$count] = $row["email"];
$f_Ids[$count] = $row["cs_id"];
$f_Type[$count] = "cs";
$count++;
endwhile;
$result->free();
else :
// Check for selected groups
if ($f_groupLen > 0) :
$tmpEmailaddresses = getGroupMemberEmailaddresses($f_group, "cs", $f_hq_id, "cmp.cmp_newsletter = '1'" . $dsgvoClause);
$tmpEmailaddresses1 = $tmpEmailaddresses[0];
$tmpIds1 = $tmpEmailaddresses[1];
$tmpType1 = $tmpEmailaddresses[2];
$tmpEmailaddresses = getGroupMemberEmailaddresses($f_group, "cr", $f_hq_id, "cmp.cmp_newsletter = '1'" . $dsgvoClause);
$tmpEmailaddresses2 = $tmpEmailaddresses[0];
$tmpIds2 = $tmpEmailaddresses[1];
$tmpType2 = $tmpEmailaddresses[2];
$tmpEmailaddresses = getGroupMemberEmailaddresses($f_group, "emp", $f_hq_id, "cmp.cmp_newsletter = '1'" . $dsgvoClause);
$tmpEmailaddresses3 = $tmpEmailaddresses[0];
$tmpIds3 = $tmpEmailaddresses[1];
$tmpType3 = $tmpEmailaddresses[2];
// Merge all arrays
$tmpEmailaddresses1Len = count($tmpEmailaddresses1);
$tmpEmailaddresses2Len = count($tmpEmailaddresses2);
for ($m = 0; $m < $tmpEmailaddresses2Len; $m++) :
$tmpEmailaddresses1[($tmpEmailaddresses1Len + $m)] = $tmpEmailaddresses2[$m];
$tmpIds1[($tmpEmailaddresses1Len + $m)] = $tmpIds2[$m];
$tmpType1[($tmpEmailaddresses1Len + $m)] = $tmpType2[$m];
endfor;
$tmpEmailaddresses1Len = count($tmpEmailaddresses1);
$tmpEmailaddresses3Len = count($tmpEmailaddresses3);
for ($m = 0; $m < $tmpEmailaddresses3Len; $m++) :
$tmpEmailaddresses1[($tmpEmailaddresses1Len + $m)] = $tmpEmailaddresses3[$m];
$tmpIds1[($tmpEmailaddresses1Len + $m)] = $tmpIds3[$m];
$tmpType1[($tmpEmailaddresses1Len + $m)] = $tmpType3[$m];
endfor;
$f_emailAddresses = $tmpEmailaddresses1; $tmpEmailaddresses1 = ""; $tmpEmailaddresses2 = ""; $tmpEmailaddresses3 = "";
$f_Ids = $tmpIds1; $tmpIds1 = ""; $tmpIds2 = ""; $tmpIds3 = "";
$f_Type = $tmpType1; $tmpType1 = ""; $tmpType2 = ""; $tmpType3 = "";
// $f_emailAddresses = array_merge($f_emailAddresses, getGroupMemberEmailaddresses($f_group, "cs", $f_hq_id, "cmp.cmp_newsletter = '1'" . $dsgvoClause));
// $f_emailAddresses = array_merge($f_emailAddresses, getGroupMemberEmailaddresses($f_group, "cr", $f_hq_id, "cmp.cmp_newsletter = '1'" . $dsgvoClause));
// $f_emailAddresses = array_merge($f_emailAddresses, getGroupMemberEmailaddresses($f_group, "emp", $f_hq_id, "cmp.cmp_newsletter = '1'" . $dsgvoClause));
endif;
endif;
endif;
$f_emailAddressesLen = count($f_emailAddresses);
// ********************************************************
// * Prepare to send the mail and check all preconditions *
// ********************************************************
$mailSenderAddress = getParameterValue("0", "MAIL_NEWSLETTER_SENDER_ADDRESS", $hq_id);
if ($mailSenderAddress == "") :
$mailSenderAddress = getParameterValue("0", "MAIL_SENDER_ADDRESS", $hq_id);
endif;
$statusMessage = getLngt("Es wurde keine Nachricht versendet!");
if ($f_attachment == "" && $f_content == "") :
$statusMessage = getLngt("Entweder fehlt der Mailtext oder ein Anhang!");
elseif ($f_emailAddressesLen == 0) :
$statusMessage = getLngt("Selektieren Sie bitte die Mailadressen oder tragen Sie bitte mindestens eine Mailadresse ein! Manuelle Adresseinträge werden durch Kommata getrennt!");
elseif ($f_subject == "") :
$statusMessage = getLngt("Bitte tragen Sie in der Betreffzeile etwas ein!");
elseif ($f_mimetype == "") :
$statusMessage = getLngt("Der Mimetype fehlt!");
elseif ($f_fileName == "" && $f_attachment != "") :
$statusMessage = getLngt("Der Dateiname für den Anhang fehlt!");
elseif ($f_extension == "" && $f_attachment != "") :
$statusMessage = getLngt("Der Dateityp für den Anhang fehlt (Extension)!");
elseif ($f_contentFileName == "" && $f_content == "_file_") :
$statusMessage = getLngt("Der Dateiname zum Laden des Mailtextes fehlt!");
elseif ($f_contentFileExtension == "" && $f_content == "_file_") :
$statusMessage = getLngt("Der Dateityp zum Laden des Mailtextes fehlt (Extension)!");
elseif ($mailSenderAddress == "") :
$statusMessage = getLngt("Die Absenderadresse ist nicht definiert!");
else :
if ($f_act == "mailsend") :
$mailtext = "";
if ($f_content != "") :
if ($f_content == "_file_") :
$tmpFile = "../temp/download/" . $f_contentFileName . "." . $f_contentFileExtension;
if (file_exists($tmpFile)) :
$mailtext = file_get_contents($tmpFile);
endif;
else :
$mailtext = $f_content;
endif;
else :
$mailtext .= "
";
$mailtext .= "";
$mailtext .= "";
if ($f_salutationText == "") :
$f_salutationText = "
" . getLngt("Sehr geehrte Damen und Herren,") . "
";
$f_salutationText .= "" . getLngt("hiermit übersenden wir Ihnen die folgenden Informationen.") . "
";
$f_salutationText .= "" . getLngt("Mit freundlichem Gruß,") . "
";
endif;
$mailtext .= $f_salutationText;
/*
$mailSalutationText = getParameterValue("0", "MAIL_SALUTATION_TEXT", $currentHqId);
$mailtext .= "" . getLngt($mailSalutationText) . "
";
*/
// LOGO
/*
$logoName = getParameterValue("0", "IMG_LOGO_NAME", $currentHqId);
$logoHeight = getParameterValue("0", "IMG_LOGO_HEIGHT", $currentHqId);
$logoWidth = getParameterValue("0", "IMG_LOGO_WIDTH", $currentHqId);
if ($logoName != "" && $logoHeight != "" && $logoWidth != "") :
$mailtext .= "

";
endif;
*/
/*
$mailFooterEnabled = getParameterValue("0", "MAIL_FOOTER_ENABLED", $currentHqId);
if ($mailFooterEnabled == "1") :
$mailFooterAddress = getParameterValue("0", "MAIL_FOOTER_ADDRESS", $currentHqId);
if ($mailFooterAddress != "") :
$mailtext .= $mailFooterAddress;
endif;
$mailFooterContact = getParameterValue("0", "MAIL_FOOTER_CONTACT", $currentHqId);
if ($mailFooterContact != "") :
$mailtext .= $mailFooterContact;
endif;
$mailFooterImpressum = getParameterValue("0", "MAIL_FOOTER_IMPRESSUM", $currentHqId);
if ($mailFooterImpressum != "") :
$mailtext .= $mailFooterImpressum;
endif;
$mailFooterThinkGreen = getParameterValue("0", "MAIL_FOOTER_THINK_GREEN", $currentHqId);
if ($mailFooterThinkGreen != "") :
$mailtext .= $mailFooterThinkGreen;
endif;
endif;
*/
$mailtext .= "";
endif;
// Remove old attachement
if ($f_extension != "" && substr($f_extension,0,1) != ".") :
foreach (glob("../temp/download/*." . $f_extension) as $fileNameToBeRemoved) {
if ((time() - filemtime($fileNameToBeRemoved)) > 60) :
if (file_exists($fileNameToBeRemoved)) :
unlink($fileNameToBeRemoved);
endif;
endif;
}
endif;
$f_secretFileName = "";
if ($f_fileName != "" && $f_extension != "") :
$f_secretFileName = $f_fileName . "." . $f_extension;
writeToFile("../temp/download/" . $f_secretFileName, $f_attachment); // write attachement data into file
endif;
// Check for post parsing necessity
$remMailtext = "";
$postParsing = false;
if (!(strpos($mailtext, "") === FALSE)) :
$postParsing = true;
$remMailtext = $mailtext;
$f_emailChunks = $f_emailAddresses;
else :
$f_emailAddresses = array_unique($f_emailAddresses); // Unique addresses
$f_emailChunks = array_chunk($f_emailAddresses, $chunkSize); // Chunk addresses
endif;
// Loop if too much addresses
$logMailAddressArray = array();
$f_emailChunksLen = count($f_emailChunks);
for ($i = 0; $i < $f_emailChunksLen; $i++) :
if ($postParsing) :
$mailtext = postParseMailtext($mailtext, $f_Type[$i], $f_Ids[$i], $constGlobalDbInstNo);
endif;
if ($mailtext != "ERR") :
$mailObj = new htmlMimeMail();
$mailObj->setHtml($mailtext, null, "./");
// $mailObj->setHtml($mailtext);
// Set From address
$mailObj->setFrom($mailSenderAddress);
// Set Cc address
/*
$mailCcAddress = getParameterValue("0", "MAIL_CC_ADDRESS", $currentHqId);
if ($mailCcAddress == "" || !checkEmailFormat($mailCcAddress)) :
$mailCcAddress = MAIL_CC_ADDRESS;
endif;
if ($mailCcAddress != "" && checkEmailFormat($mailCcAddress)) :
$mailObj->setCc($mailCcAddress);
endif;
*/
// Add Cc addresses
if ($f_email_cc != "" && $f_email_sendToCcAndBcc == "1") :
$mailObj->setCc($f_email_cc);
endif;
// Subject of the mail
$mailObj->setSubject(getLngt($f_subject));
if ($f_secretFileName != "") :
if (file_exists("../temp/download/" . $f_secretFileName)) :
$attachment = $mailObj->getFile("../temp/download/" . $f_secretFileName);
$mailObj->addAttachment($attachment, $f_secretFileName, $f_mimetype . $f_charset);
endif;
endif;
// Log (only for output)
if (count($logMailAddressArray) > 0) : $logMailAddressArray = array_merge($logMailAddressArray, array("-------")); endif;
// Set all addresses
if ($postParsing) :
// Log: $f_emailChunks[$i] IS NOT an array
$logMailAddressArray = array_merge($logMailAddressArray, array("[" . $i . ".] " . $f_emailChunks[$i]));
// Add Bcc addresses
if ($f_email_bcc != "" && $f_email_sendToCcAndBcc == "1") :
$mailObj->setBcc($f_email_bcc);
endif;
$f_emailString = $f_emailChunks[$i];
$mailReceiverAddress = $f_emailString;
else :
// Log: $f_emailChunks[$i] IS an array
$logMailAddressArray = array_merge($logMailAddressArray, array("[" . $i . ".]"), $f_emailChunks[$i]); // Log
$f_emailString = implode(",", $f_emailChunks[$i]);
// Add Bcc addresses
if ($f_email_bcc != "" && $f_email_sendToCcAndBcc == "1") :
$f_emailString .= "," . $f_email_bcc;
endif;
$f_emailString = str_replace(",,", ',', $f_emailString);
if (substr($f_emailString, 0, 1) == ",") : $f_emailString = substr($f_emailString, 1); endif;
if (substr($f_emailString, -1) == ",") : $f_emailString = substr($f_emailString, 0, strlen($f_emailString) - 1); endif;
// Only send to Bcc if chunks are ok. The receiver address is the same as the sender address!
$mailObj->setBcc($f_emailString);
$mailReceiverAddress = $mailSenderAddress;
endif;
// Check existence in log
$mailResult = false;
$sentToReceiverSameDay = "";
if ($f_emailChunksLen > 3) :
$sentToReceiverSameDay = getOneStmt("SELECT log_createtime FROM phoenix_log.log WHERE logo_id = '93' AND LEFT(log_createtime,10) = '" . $currentDate . "' AND logo_description = 'SENT=Y|EMAIL=" . $f_emailString . "' LIMIT 0,1", "log_createtime");
endif;
if ($sentToReceiverSameDay == "") :
$mailResult = $mailObj->send(array($mailReceiverAddress), 'smtp');
endif;
if ($mailResult) :
$statusMessage = getLngt("Die Nachricht(en) wurde versandt!");
// Write logdata into log database
writeToLogDB("93",$hq_id,"",$usr_id,"","",($f_Type[$i] == "cs" ? $f_Ids[$i] : ""),"SENT=Y|EMAIL=" . $f_emailString);
// Generate report entry
$tmpReportText = getLngt("Newsletterversand erfolgreich");
insertStmt("phoenix_group.report_process", array("usr_id", $usr_id, "hq_id", $hq_id, "rp_reporttype", "15", "rp_text", $tmpReportText,
"rp_createtime", $currentTime, "rp_objId", $f_Ids[$i], "rp_objtype", "cs"));
else :
$statusMessage = getLngt("Die Nachricht(en) konnte nicht gesendet werden!");
// Write logdata into log database
writeToLogDB("93",$hq_id,"",$usr_id,"","",($f_Type[$i] == "cs" ? $f_Ids[$i] : ""),"SENT=N|EMAIL=" . $f_emailString . ($sentToReceiverSameDay != "" ? "|TS=" . $sentToReceiverSameDay : ""));
endif;
// $mailObj->free();
$mailObj = NULL;
else :
// Write logdata into log database
writeToLogDB("93",$hq_id,"",$usr_id,"",($f_Type[$i] == "cs" ? $f_Ids[$i] : ""),$f_Ids[$i],"SENT=N|EMAIL=POSTPARSER_ERR");
endif;
if ($postParsing) :
$mailtext = $remMailtext;
endif;
endfor;
// Remove old file(s)
if ($f_secretFileName != "") :
foreach (glob("../temp/download/" . $f_secretFileName) as $fileNameToBeRemoved) {
if (file_exists($fileNameToBeRemoved)) :
unlink($fileNameToBeRemoved);
endif;
}
endif;
else :
$statusMessage = getLngt("Die eingegebene Emailadresse ist syntaktisch nicht korrekt!");
endif;
endif;
// ONLY for output
if ($f_groupLen > 0) :
$onLoadCall .= "groupList('on');";
else :
$onLoadCall .= "groupList('off');";
endif;
?>