GetSessionKey()."_sendmail"; $MessagesPerPage =2; $SendQueue = new clsEmailQueue($table,$MessagesPerPage); $FromUser = $objUsers->GetItem($objSession->Get("PortalUserId")); $FromAddr = $FromUser->Get("Email"); $FromName = $FromUser->Get("FirstName")." ".$FromUser->Get("LastName"); if(!strlen(trim($FromAddr))) { $FromAddr = $objConfig->Get("Smtp_AdminMailFrom"); } if(!strlen(trim($FromName))) { $FromName = strip_tags( $objConfig->Get('Site_Name') ); } $TargetURL = $_SERVER["PHP_SELF"]."?".$envar.'&destform=popup'; $CancelURL = $TargetURL."&EmailState=email_user_cancel"; function getEmailFooter($is_html = true) { static $footer = Array('html' => null, 'plain' => null); $footer_body =& $footer[$is_html ? 'html' : 'plain']; if (is_null($footer_body)) { $application =& kApplication::Instance(); $esender =& $application->recallObject('EmailSender'); /* @var $esender kEmailSendingHelper */ $sql = 'SELECT em.Template FROM '.TABLE_PREFIX.'EmailMessage em LEFT JOIN '.TABLE_PREFIX.'Events e ON e.EventId = em.EventId WHERE em.LanguageId = '.$application->GetVar('m_lang').' AND e.Event = "COMMON.FOOTER"'; $footer_body = explode("\n\n", $application->Conn->GetOne($sql)); $footer_body = "\r\n".($is_html ? '
'.$footer_body[1] : $esender->ConvertToText($footer_body[1])); } return $footer_body; } /*Initialize page*/ switch($State) { case "email_single_send": /*single user send */ $PageTitle = admin_language("la_Title_SendInit"); $Subject = $_POST["subject"]; $Html = $_POST["messageHTML"]; $Text = strip_tags($_POST["messageTEXT"]); if(is_array($_FILES)) { $attatch = $_FILES["attatchment"]; if(strlen($attatch["name"]) >0 && $attatch["size"]>0) { $FileName = $attatch["name"]; $FileLoc = $attatch["tmp_name"]; } else { $FileName = NULL; $FileLoc = NULL; } } else { $FileName = NULL; $FileLoc = NULL; } $charset = ""; $TargetURL .= "&EmailState=email_send_complete"; break; case "email_multi_send": /*Init multiuser send*/ $UserList = explode(",",$_POST["sendaddrs"]); //echo $_POST["sendaddrs"]."
\n"; $Subject = $_POST["subject"]; $Html = $_POST["messageHTML"]; $Text = strip_tags($_POST["messageTEXT"]); if(is_array($_FILES)) { $attatch = $_FILES["attatchment"]; if(strlen($attatch["name"]) >0 && $attatch["size"]>0) { $FileName = $attatch["name"]; $FileLoc = $attatch["tmp_name"]; } else { $FileName = NULL; $FileLoc = NULL; } } else { $FileName = NULL; $FileLoc = NULL; } $charset = ""; $PageTitle = admin_language("la_Title_SendMailInit"); $TargetURL .="&EmailState=email_send_progress&Start=0&Total=".count($UserList); break; case "email_send_progress": $total = $_GET["Total"]; $start = $_GET["Start"]; if($start < $total) { $pct = (int)(($start/$total)*100); $NewStart = $start+$MessagesPerPage; $TargetURL .= "&EmailState=email_send_progress&Start=$NewStart&Total=$total"; $PageTitle = admin_language("la_Title_SendMailProgress")." - ".$pct."% ".admin_language("la_Text_Complete"); } else { $PageTitle = admin_language("la_Title_SendMailProgress"); $TargetURL .= "&EmailState=email_send_complete"; } break; case "email_send_complete": $PageTitle = admin_language("la_Title_SendMailComplete"); $TargetURL=""; break; case "email_user_cancel": $PageTitle = admin_language("la_Title_SendMailCancel"); $TargetURL = ""; break; } int_header(NULL,NULL,admin_language("la_Title_PleaseWait")); echo "\n"; /*do page functions */ // echo "Current State:". $State."
\n"; if ($Html) $Html .= getEmailFooter(true); if ($Text) $Text .= getEmailFooter(false); echo "
"; switch($State) { case "email_single_send": /*single user send */ $PageTitle = admin_language($Pagetitle); $ToAddr = $_POST["sendaddrs"]; $SendQueue->SendMail($FromAddr,$FromName,$ToAddr,"",$Subject,$Text,$Html,$charset, "",$FileName,$FileLoc,0, NULL); $o = ""; $o .= int_subsection_title_ret($PageTitle); $o .= ""; $o .= ""; $o .= "
".admin_language("la_prompt_EmailInitMessage")."
"; echo $o."\n"; break; case "email_multi_send": /*Init multiuser send*/ /*Create storage Table for Queue */ $o = ""; $o .= int_subsection_title_ret($PageTitle); $o .= ""; $o .= ""; $o .= "
".admin_language("la_prompt_EmailInitMessage")."
"; echo $o."\n"; $sql = "CREATE TABLE $table SELECT * FROM ".$objEmailQueue->SourceTable." WHERE queued=99"; $ado->Execute($sql); //echo $sql."
\n"; for($i=0;$iSendMail($FromAddr,$FromName,$ToAddr,"",$Subject,$Text,$Html,$charset, "",$FileName,$FileLoc,1, NULL); } break; case "email_send_progress": $sql = "SELECT * FROM $table LIMIT $start,".$MessagesPerPage; // echo $sql."
\n"; $rs = $ado->Execute($sql); while($rs && !$rs->EOF) { $data = $rs->fields; $SendQueue->DeliverMail($data["toaddr"],$data["fromaddr"],$data["Subject"],$data["message"],$data["headers"],1); $rs->MoveNext(); } $o = ""; $o .= int_subsection_title_ret($PageTitle); $o .=""; $comp_pct = 100-$pct; $o .= ""; $o .= "
 
"; $o .= ""; echo $o."\n"; break; case "email_send_complete": $sql = "DROP TABLE IF EXISTS $table"; $ado->Execute($sql); $o = ""; $o .= int_subsection_title_ret($PageTitle); $o .= ""; $o .= ""; $o .= "
".admin_language("la_prompt_EmailCompleteMessage")."
"; echo $o."\n"; break; case "email_user_cancel": $o = ""; $o .= int_subsection_title_ret($PageTitle); $o .= ""; $o .= "
".admin_language("la_prompt_EmailCancelMessage")."
"; echo $o."\n"; break; } echo "
"; if(strlen($TargetURL)) { ?>