/** * protected функция рассылки сообщений пользователям, в соответствии с действием * * @param array $arrUsers - массив пользователей, которым необходимо отправить сообщения. Формат: array(key => email, ...) * @param string $action - действие, в соответствии с которым необходимо произвести рассылку сообщений. На данный момент есть три действия: activate - активация пользователя, состоящего на активации; delete - удаление пользователя, состоящего на модерации; moderate - активация пользователя, состоящего на модерации. * * @return void */ protected function actionSendUsersEmails($arrUsers, $action) { // проверяем действие if (!$action || 'activate' !== $action && 'moderate' !== $action && 'delete' !== $action) { return false; } $mailer = new mailer(); foreach ($arrUsers as $value) { // очищаем список адресов $mailer->ClearAddresses(); // массив для замены в шаблоне $mailer->setAddReplace(array('%AUTHORIZE_LINK%' => chpu::createChpuUrl(CONF_SCRIPT_URL . 'index.php?do=authorize'))); // выполняем рассылку в соответствии с указанным действием switch ($action) { case 'activate': $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, false, false, $value, false, MAIL_SUBJ_ADM_USER_ACTIVATE, 'user.activate.admin.txt'); break; case 'moderate': $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, false, false, $value, false, MAIL_SUBJ_ADM_USER_MODERATE, 'user.moderate.txt'); break; case 'delete': $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, false, false, $value, false, MAIL_SUBJ_ADM_USER_NO_MODERATE, 'user.not.moderate.txt'); break; } } }
// формируем запрос if (empty($_POST['uGroups']) && !empty($_POST['uTypes'])) { $strWhere = "conf_users.user_type IN (" . implode(',', secure::escQuoteData($_POST['uTypes'])) . ") AND conf_users.token IN ('active')"; } elseif (!empty($_POST['uGroups']) && empty($_POST['uTypes'])) { $strWhere = "conf_users.user_group IN (" . implode(',', secure::escQuoteData($_POST['uGroups'])) . ") AND conf_users.token IN ('active')"; } else { $strWhere = "conf_users.user_type IN (" . implode(',', secure::escQuoteData($_POST['uTypes'])) . ") AND conf_users.user_group IN (" . implode(',', secure::escQuoteData($_POST['uGroups'])) . ") AND conf_users.token IN ('active')"; } empty($_POST['noSubscr']) ? $strWhere .= " AND conf_users.mailer_subscribe>0" : null; $arrUsers = $user->getCombinedUsersData($arrFields, $strWhere, false, false); if (!empty($arrUsers) && is_array($arrUsers)) { $count = $user->cntUsers(); $mailer = new mailer(); foreach ($arrUsers as $value) { // очищаем список адресов $mailer->ClearAddresses(); $mailer->sendEmail(CONF_MAIL_ADMIN_EMAIL, false, false, $value['email'], false, $_POST['mailerSubject'], $_POST['doUserSubscription'], true); } echo ajax::sdgJSONencode(array('success' => $count)); } else { echo ajax::sdgJSONencode(array('error' => MESSAGE_WARNING_MAILER_NOT_FOUND_USERS)); } } else { echo ajax::sdgJSONencode(array('error' => ERROR_MAILER_SELECT_GROUP_OR_TYPE)); } } else { echo ajax::sdgJSONencode(array('error' => ERROR_EMPTY_SUBJECT)); } } else { echo ajax::sdgJSONencode(array('error' => ERROR_EMPTY_TEXT)); }
function sendMail($address, $name, $subject, $message) { global $config; if ($config['allowemails']) { // instantiate the class $mail = new mailer(); // Set the subject $mail->Subject = $subject; // Body $mail->Body = str_replace(array("<br", "<br />"), "\r\n", $message); // Add an address to send to. $mail->AddAddress($address, $name); $mail->Send(); $mail->ClearAddresses(); $mail->ClearAttachments(); } }