} $eHistory = $history = ""; $lastid = -1; $output = Thread::getInstance()->GetMessages($threadid, "text", true, $lastid); foreach ($output as $msg) { $history .= $msg; $eHistory .= $msg; } $visitSession = VisitSession::GetInstance()->GetVisitSessionById($thread['visitsessionid']); $systemInfo = "Системная информация\nимя: " . $visitSession['visitorname'] . "\nсоздан: " . date('Y-m-d', $visitSession['created']) . "\nip: {$visitSession['ip']}\nбраузер: " . get_user_agent($visitSession['useragent']) . "\n\n"; $history = $systemInfo . $history; $subject = Resources::Get("mail.visitor.history.subject"); // отправке диалогов из мессенджера ------------ if ($dept && isset($aDko[$dept]['subject'])) { $subject = $aDko[$dept]['subject']; } $visitor_name = $visitSession['visitorname']; $body = Resources::Get("mail.visitor.history.body", array($visitor_name, $history)); // отправке диалогов из мессенджера if ($dept && ($feedback = feedbackAdd($dept, $visitor_name, $email_from, $body, 0))) { $body .= "\n" . '[[UCODE::{' . $feedback['uc'] . '},FID::{' . $feedback['id'] . '}]]'; } $webim_from_email = $email_from ? $email_from : Settings::Get("from_email"); $body = Resources::Get("mail.visitor.history.body", array($visitor_name, $history)); webim_mail($email, $webim_from_email, $subject, $body, 0); // отправке диалогов из мессенджера ------------ if ($dept && isset($aDko[$dept]['option'])) { $sMsg = 'Диалог был отправлен в раздел: ' . $aDko[$dept]['option']; Thread::getInstance()->PostMessage($threadid, KIND_EVENTS, $sMsg); } $TML->display('send-history-sent.tpl');
$page['email'] = $email; if (!$email) { $errors[] = no_field("form.field.email"); } else { if (!is_valid_email($email)) { $errors[] = wrong_field("form.field.email"); } } if (count($errors) > 0) { $page['formemail'] = $email; $page['ct.chatThreadId'] = $thread['threadid']; $page['ct.token'] = $thread['ltoken']; $page['level'] = ""; setup_logo(); expand("styles", getchatstyle(), "mail.tpl"); exit; } $history = ""; $lastid = -1; $output = get_messages($threadid, "text", true, $lastid); foreach ($output as $msg) { $history .= $msg; } $subject = getstring("mail.user.history.subject"); $body = getstring2("mail.user.history.body", array($thread['userName'], $history)); $link = connect(); webim_mail($email, $webim_mailbox, $subject, $body, $link); mysql_close($link); setup_logo(); expand("styles", getchatstyle(), "mailsent.tpl"); exit;
$errors = array(); $page = array('version' => $version); $loginoremail = ""; if (isset($_POST['loginoremail'])) { $loginoremail = getparam("loginoremail"); $torestore = is_valid_email($loginoremail) ? operator_by_email($loginoremail) : operator_by_login($loginoremail); if (!$torestore) { $errors[] = getlocal("no_such_operator"); } $email = $torestore['vcemail']; if (count($errors) == 0 && !is_valid_email($email)) { $errors[] = "Operator hasn't set his e-mail"; } if (count($errors) == 0) { $token = md5(time() + microtime() . rand(0, 99999999)); $link = connect(); $query = "update {$mysqlprefix}chatoperator set dtmrestore = CURRENT_TIMESTAMP, vcrestoretoken = '{$token}' where operatorid = " . $torestore['operatorid']; perform_query($query, $link); $href = get_app_location(true, false) . "/operator/resetpwd.php?id=" . $torestore['operatorid'] . "&token={$token}"; webim_mail($email, $email, getstring("restore.mailsubj"), getstring2("restore.mailtext", array(get_operator_name($torestore), $href)), $link); mysql_close($link); $page['isdone'] = true; require '../view/restore.php'; exit; } } $page['formloginoremail'] = topage($loginoremail); $page['localeLinks'] = get_locale_links("{$webimroot}/operator/restore.php"); $page['isdone'] = false; start_html_output(); require '../view/restore.php';
public function SendRecoverPasswordMail($operatorid, $host) { $op = MapperFactory::getMapper('Operator')->getById($operatorid); $hash['recoverytoken'] = $this->generateToken(16); $hash['recoverytime'] = null; // MySQL auto update $hash['operatorid'] = $operatorid; MapperFactory::getMapper('Operator')->save($hash); $link = HTTP_PREFIX . $host . WEBIM_ROOT . '/operator/recover_password.php?act=recover&login='******'login'] . '&token=' . $hash['recoverytoken']; $subject = Resources::Get('mail.password_recover.subject', Resources::getCurrentLocale()); $body = Resources::Get('mail.password_recover.body', array($op['fullname'], $link), Resources::getCurrentLocale()); webim_mail($op['fullname'] . '<' . $op['email'] . '>', Settings::Get('from_email'), $subject, $body); // TODO send link }
function RateOperator($thread, $rate) { $crm = MapperFactory::getMapper("Rate"); $crate = array('threadid' => $thread['threadid'], 'operatorid' => $thread['operatorid'], 'rate' => $rate, 'date' => null); $crm->save($crate); // Send an email in case of negative rate if ($rate < 0) { // TODO i would send all the negative feedback was == -2 $history = ""; $lastid = -1; $output = $this->GetMessages($thread['threadid'], "text", true, $lastid); foreach ($output as $msg) { $history .= $msg; } $visitSession = VisitSession::GetInstance()->GetVisitSessionById($thread['visitsessionid']); $subject = Resources::Get("mail.visitor.negative.rate.history.subject"); $body = Resources::Get("mail.visitor.negative.rate.history.body", array($visitSession['visitorname'], $history)); webim_mail(Settings::Get('superviser_email'), Settings::Get('from_email'), $subject, $body); } }
$TML->assign('phone', getSecureText($phone)); $TML->assign('message', getSecureText($message)); $TML->assign('canChangeName', getSecureText($canChangeName)); $TML->assign('captcha_num', ''); $TML->display('leave-message.tpl'); exit; } $visitSessionId = VisitSession::GetInstance()->updateCurrentOrCreateSession(); $params = array(); $params['visitsessionid'] = $visitSessionId; $params['lastpingvisitor'] = null; $params['offline'] = 1; $threads_count = MapperFactory::getMapper('Thread')->getNonEmptyThreadsCountByVisitorId($visitorid); $thread = Thread::getInstance()->CreateThread(WEBIM_CURRENT_LOCALE, STATE_CLOSED, $params); VisitSession::GetInstance()->UpdateVisitSession($visitSessionId, array('hasthread' => 1)); Thread::getInstance()->sendFirstMessageWithVisitorInfo($thread); Thread::getInstance()->PostMessage($thread['threadid'], KIND_USER, Resources::Get('chat.window.offline_message', array($message))); MapperFactory::getMapper('Thread')->incrementVisitorMessageCount($thread['threadid']); $first_message = MapperFactory::getMapper('Message')->getFirstMessage($thread['threadid']); Visitor::getInstance()->setVisitorNameCookie($visitor_name); // отправке диалогов из мессенджера $subject = $dept && isset($aDko[$dept]['subject']) ? $subject = $aDko[$dept]['subject'] : Resources::Get('leavemail.subject', array($visitor_name), WEBIM_CURRENT_LOCALE); $body = Resources::Get('leavemail.body', array($visitor_name, $email, $message, $phone, Thread::getInstance()->formatOpenerWithTitle(), HTTP_PREFIX . $_SERVER['HTTP_HOST'] . WEBIM_ROOT . '/operator/threadprocessor.php?threadid=' . $thread['threadid'], str_replace("\n", "\n\n", $first_message['message'])), WEBIM_CURRENT_LOCALE); // отправке диалогов из мессенджера if ($dept && ($feedback = feedbackAdd($dept, $visitor_name, $email, $body, get_uid(false)))) { $body .= "\n" . '[[UCODE::{' . $feedback['uc'] . '},FID::{' . $feedback['id'] . '}]]'; } // отправке диалогов из мессенджера $inbox_mail = $dept && isset($aDko[$dept]['email']) ? $aDko[$dept]['email'] : Settings::Get('offline_email'); webim_mail($inbox_mail, $visitor_name . '<' . $email . '>', $subject, $body); $TML->display('leave-message-sent.tpl');
$original = isset($_SESSION["mibew_captcha"]) ? $_SESSION["mibew_captcha"] : ""; if (empty($original) || empty($captcha) || $captcha != $original) { $errors[] = getlocal('errors.captcha'); } unset($_SESSION['mibew_captcha']); } if (count($errors) > 0) { setup_leavemessage($visitor_name, $email, $message, $groupid, $groupname, $info, $referrer, can_show_captcha()); setup_logo(); expand("styles", getchatstyle(), "leavemessage.tpl"); exit; } $message_locale = $settings['left_messages_locale']; if (!locale_exists($message_locale)) { $message_locale = $home_locale; } store_message($visitor_name, $email, $info, $message, $groupid, $referrer); $subject = getstring2_("leavemail.subject", array($visitor_name), $message_locale); $body = getstring2_("leavemail.body", array($visitor_name, $email, $message, $info ? "{$info}\n" : ""), $message_locale); if (isset($group) && !empty($group['vcemail'])) { $inbox_mail = $group['vcemail']; } else { $inbox_mail = $settings['email']; } if ($inbox_mail) { $link = connect(); webim_mail($inbox_mail, $email, $subject, $body, $link); mysql_close($link); } setup_logo(); expand("styles", getchatstyle(), "leavemessagesent.tpl");