public function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $url = OSSMail_Record_Model::GetSite_URL() . 'modules/OSSMail/roundcube/'; $config = Settings_Mail_Config_Model::getConfig('autologin'); if ($config['autologinActive'] == 'true') { $account = OSSMail_Autologin_Model::getAutologinUsers(); if ($account) { $rcUser = isset($_SESSION['AutoLoginUser']) && array_key_exists($_SESSION['AutoLoginUser'], $account) ? $account[$_SESSION['AutoLoginUser']] : reset($account); require_once 'modules/OSSMail/RoundcubeLogin.class.php'; $rcl = new RoundcubeLogin($url, false); //$rcl->setHostname('fdc.org.pl'); //$rcl->setPort(143); //$rcl->setSSL(false); try { if ($rcl->isLoggedIn()) { if ($rcl->getUsername() != $rcUser['username']) { $rcl->logout(); $rcl->login($rcUser['username'], $rcUser['password']); } } else { $rcl->login($rcUser['username'], $rcUser['password']); } } catch (RoundcubeLoginException $ex) { $log = vglobal('log'); $log->error('OSSMail_index_View|RoundcubeLoginException: ' . $ex->getMessage()); } } } $viewer = $this->getViewer($request); $viewer->assign('URL', $url); $viewer->view('index.tpl', $moduleName); }
public function process(Vtiger_Request $request) { $adb = PearDatabase::getInstance(); $metod = $request->get('metod'); $params = $request->get('params'); $params['folder'] = urldecode($params['folder']); $return = false; if (Vtiger_Functions::getModuleId('OSSMailView') && Vtiger_Functions::getModuleId('OSSMailScanner')) { $return = 0; $account = OSSMail_Record_Model::get_account_detail_by_name($params['username']); $result = $adb->pquery("SELECT ossmailviewid FROM vtiger_ossmailview WHERE id = ? AND mbox = ? AND rc_user = ?", array($params['uid'], $params['folder'], $account[0]['user_id']), true); if ($adb->num_rows($result) > 0) { $return = $adb->query_result($result, 0, 'ossmailviewid'); } else { $scannerModel = Vtiger_Record_Model::getCleanInstance('OSSMailScanner'); $params['actions'] = '0_created_Email'; $mail_Scan_mail = $scannerModel->manualScanMail($params); if ($mail_Scan_mail['0_created_Email']) { $return = $mail_Scan_mail['0_created_Email']['created_Email']; } } } $response = new Vtiger_Response(); $response->setResult($return); $response->emit(); }
function _0_created_Email($user_id, $mail_detail, $folder, $return) { $folder_group = OSSMailScanner_Record_Model::getConfigFolderList($folder); $adb = PearDatabase::getInstance(); $result_user_id = $adb->pquery("SELECT crm_user_id FROM roundcube_users where user_id = ? ", [$user_id]); $assigned_user_id = $adb->query_result($result_user_id, 0, 'crm_user_id'); $result = $adb->pquery("SELECT ossmailviewid FROM vtiger_ossmailview where uid = ? AND rc_user = ? ", [$mail_detail['message_id'], $user_id]); if ($adb->num_rows($result) == 0 && $mail_detail['message_id'] != '') { $OSSMailViewInstance = CRMEntity::getInstance('OSSMailView'); $OSSMailViewInstance->column_fields['assigned_user_id'] = $assigned_user_id; $OSSMailViewInstance->column_fields['subject'] = $mail_detail['subject']; $OSSMailViewInstance->column_fields['to_email'] = $mail_detail['toaddress']; $OSSMailViewInstance->column_fields['from_email'] = $mail_detail['fromaddress']; $OSSMailViewInstance->column_fields['reply_to_email'] = $mail_detail['reply_toaddress']; $OSSMailViewInstance->column_fields['ossmailview_sendtype'] = OSSMailScanner_Record_Model::getTypeEmail($mail_detail, true); $OSSMailViewInstance->column_fields['content'] = $mail_detail['body']; $OSSMailViewInstance->column_fields['orginal_mail'] = $mail_detail['clean']; $OSSMailViewInstance->column_fields['cc_email'] = $mail_detail['ccaddress']; $OSSMailViewInstance->column_fields['bcc_email'] = $mail_detail['bccaddress']; $OSSMailViewInstance->column_fields['fromaddress'] = $mail_detail['from']; $OSSMailViewInstance->column_fields['uid'] = $mail_detail['message_id']; $OSSMailViewInstance->column_fields['id'] = $mail_detail['id']; $OSSMailViewInstance->column_fields['mbox'] = $folder; $OSSMailViewInstance->column_fields['type'] = OSSMailScanner_Record_Model::getTypeEmail($mail_detail); $OSSMailViewInstance->column_fields['rc_user'] = $user_id; $OSSMailViewInstance->column_fields['from_id'] = OSSMailScanner_Record_Model::findEmail($mail_detail['fromaddress'], false, false); if ($mail_detail['toaddress']) { $adress = $mail_detail['toaddress']; } if ($mail_detail['ccaddress']) { if ($adress != '') { $adress .= ','; } $adress .= $mail_detail['ccaddress']; } if ($mail_detail['bccaddress']) { if ($adress != '') { $adress .= ','; } $adress .= $mail_detail['bccaddress']; } $OSSMailViewInstance->column_fields['to_id'] = OSSMailScanner_Record_Model::findEmail($adress, false, false); if (count($mail_detail['attachments']) > 0) { $OSSMailViewInstance->column_fields['attachments_exist'] = 1; } $OSSMailViewInstance->save('OSSMailView'); $id = $OSSMailViewInstance->id; $DocumentsIDs = OSSMail_Record_Model::_SaveAttachements($mail_detail['attachments'], $assigned_user_id, $mail_detail['udate_formated'], $id); $adb->pquery('UPDATE vtiger_crmentity SET smcreatorid = ?,modifiedby = ? WHERE crmid = ? ', array($assigned_user_id, $assigned_user_id, $id)); $adb->pquery('UPDATE vtiger_ossmailview SET date = ? WHERE ossmailviewid = ?;', array($mail_detail['udate_formated'], $id)); } return ['created_Email' => $id]; }
public function process(Vtiger_Request $request) { $users = $request->get('users'); $output = []; if (count($users) > 0) { OSSMail_Record_Model::updateMailBoxmsgInfo($users); $output = OSSMail_Record_Model::getMailBoxmsgInfo($users); } $response = new Vtiger_Response(); $response->setResult($output); $response->emit(); }
function handleEvent($eventName, $entityData) { $adb = PearDatabase::getInstance(); $log = vglobal('log'); if ($eventName == 'user.logout.before') { $log->debug("Start LogoutHandler: user.logout.before"); $mainUrl = OSSMail_Record_Model::GetSite_URL() . 'modules/OSSMail/roundcube/'; vimport('~modules/OSSMail/RoundcubeLogin.class.php'); $rcl = new RoundcubeLogin($mainUrl); if ($rcl->isLoggedIn()) { $rcl->logout(); } $log->debug("End LogoutHandler: user.logout.before"); } }
public function process(Vtiger_Request $request) { $metod = $request->get('metod'); $params = $request->get('params'); $result = false; if (Vtiger_Functions::getModuleId('OSSMailView')) { $params['folder'] = urldecode($params['folder']); $account = OSSMail_Record_Model::get_account_detail_by_name($params['username']); $params['user_id'] = $account['user_id']; $OSSMailModel = Vtiger_Record_Model::getCleanInstance('OSSMail'); $result = $OSSMailModel->findCrmDetail($params, $metod); } $response = new Vtiger_Response(); $response->setResult($result); $response->emit(); }
function handleEvent($eventName, $entityData) { $adb = PearDatabase::getInstance(); $log = vglobal('log'); if ($eventName == 'user.logout.before') { $log->debug("Start LogoutHandler: user.logout.before"); $mainUrl = OSSMail_Record_Model::GetSite_URL() . 'modules/OSSMail/roundcube/'; vimport('~modules/OSSMail/RoundcubeLogin.class.php'); $rcl = new RoundcubeLogin($mainUrl); try { $rcl->logout(); } catch (RoundcubeLoginException $ex) { $log->error('OSSMail_index_View|RoundcubeLoginException: ' . $ex->getMessage()); } $log->debug("End LogoutHandler: user.logout.before"); } }
public function process(Vtiger_Request $request, $widget = NULL) { $viewer = $this->getViewer($request); $moduleName = $request->getModule(); $currentUser = Users_Record_Model::getCurrentUserModel(); $user = $request->get('user'); $linkId = $request->get('linkid'); $widget = Vtiger_Widget_Model::getInstance($linkId, $currentUser->getId()); $viewer->assign('MODULE_NAME', $moduleName); $viewer->assign('WIDGET', $widget); $viewer->assign('USER', $user); $viewer->assign('ACCOUNTSLIST', OSSMail_Record_Model::getAccountsList(false, true)); $content = $request->get('content'); if (!empty($content)) { $viewer->view('dashboards/MailsListContents.tpl', $moduleName); } else { $viewer->view('dashboards/MailsList.tpl', $moduleName); } }
public function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $uid = $request->get('uid'); $folder = $request->get('folder'); $rcId = $request->get('rcId'); $account = OSSMail_Record_Model::getAccountByHash($rcId); if (!$account) { throw new NoPermittedException('LBL_PERMISSION_DENIED'); } $rcId = $account['user_id']; $mailViewModel = OSSMailView_Record_Model::getCleanInstance('OSSMailView'); $record = $mailViewModel->checkMailExist($uid, $folder, $rcId); $viewer = $this->getViewer($request); $viewer->assign('RECORD', $record); if ($record) { $reletedRecords = $mailViewModel->getReletedRecords($record); $viewer->assign('RELETED_RECORDS', $reletedRecords); } Vtiger_Module_Model::getModulesByLevel(); $viewer->assign('MODULE_NAME', $moduleName); $viewer->assign('URL', AppConfig::main('site_URL')); $viewer->view('MailActionBar.tpl', $moduleName); }
function _0_created_Email($user_id, $mailDetail, $folder, $return) { $type = OSSMailScanner_Record_Model::getTypeEmail($mailDetail); $folder_group = OSSMailScanner_Record_Model::getConfigFolderList($folder); $exceptionsAll = OSSMailScanner_Record_Model::getConfig('exceptions'); $adb = PearDatabase::getInstance(); $result_user_id = $adb->pquery('SELECT crm_user_id FROM roundcube_users where user_id = ? ', [$user_id]); $assigned_user_id = $adb->query_result($result_user_id, 0, 'crm_user_id'); $result = $adb->pquery('SELECT ossmailviewid FROM vtiger_ossmailview where uid = ? AND rc_user = ? ', [$mailDetail['message_id'], $user_id]); if ($type == 0) { $mailForExceptions = $mailDetail['toaddress']; } else { $mailForExceptions = $mailDetail['fromaddress']; } if (!empty($exceptionsAll['crating_mails'])) { $exceptions = explode(',', $exceptionsAll['crating_mails']); foreach ($exceptions as $exception) { if (strpos($mailForExceptions, $exception) !== FALSE) { return ['created_Email' => '']; } } } if ($adb->num_rows($result) == 0 && $mailDetail['message_id'] != '') { $OSSMailViewInstance = CRMEntity::getInstance('OSSMailView'); $OSSMailViewInstance->column_fields['assigned_user_id'] = $assigned_user_id; $OSSMailViewInstance->column_fields['subject'] = $mailDetail['subject']; $OSSMailViewInstance->column_fields['to_email'] = $mailDetail['toaddress']; $OSSMailViewInstance->column_fields['from_email'] = $mailDetail['fromaddress']; $OSSMailViewInstance->column_fields['reply_to_email'] = $mailDetail['reply_toaddress']; $OSSMailViewInstance->column_fields['ossmailview_sendtype'] = OSSMailScanner_Record_Model::getTypeEmail($mailDetail, true); $OSSMailViewInstance->column_fields['content'] = $mailDetail['body']; $OSSMailViewInstance->column_fields['orginal_mail'] = $mailDetail['clean']; $OSSMailViewInstance->column_fields['cc_email'] = $mailDetail['ccaddress']; $OSSMailViewInstance->column_fields['bcc_email'] = $mailDetail['bccaddress']; $OSSMailViewInstance->column_fields['fromaddress'] = $mailDetail['from']; $OSSMailViewInstance->column_fields['uid'] = $mailDetail['message_id']; $OSSMailViewInstance->column_fields['id'] = $mailDetail['id']; $OSSMailViewInstance->column_fields['mbox'] = $folder; $OSSMailViewInstance->column_fields['type'] = $type; $OSSMailViewInstance->column_fields['rc_user'] = $user_id; $adress = []; if ($mailDetail['fromaddress']) { $adress[] = $mailDetail['fromaddress']; } if ($mailDetail['reply_toaddress']) { $adress[] = $mailDetail['reply_toaddress']; } $OSSMailViewInstance->column_fields['from_id'] = OSSMailScanner_Record_Model::findEmail(implode(',', $adress), false, false); $adress = []; if ($mailDetail['toaddress']) { $adress[] = $mailDetail['toaddress']; } if ($mailDetail['ccaddress']) { $adress[] = $mailDetail['ccaddress']; } if ($mailDetail['bccaddress']) { $adress[] = $mailDetail['bccaddress']; } $OSSMailViewInstance->column_fields['to_id'] = OSSMailScanner_Record_Model::findEmail(implode(',', $adress), false, false); if (count($mailDetail['attachments']) > 0) { $OSSMailViewInstance->column_fields['attachments_exist'] = 1; } $OSSMailViewInstance->save('OSSMailView'); $id = $OSSMailViewInstance->id; $DocumentsIDs = OSSMail_Record_Model::_SaveAttachements($mailDetail['attachments'], $assigned_user_id, $mailDetail['udate_formated'], $id); $adb->pquery('UPDATE vtiger_crmentity SET smcreatorid = ?,modifiedby = ? WHERE crmid = ? ', [$assigned_user_id, $assigned_user_id, $id]); $adb->pquery('UPDATE vtiger_ossmailview SET date = ? WHERE ossmailviewid = ?;', [$mailDetail['udate_formated'], $id]); } return ['created_Email' => $id]; }
function createConfigFile() { /* open template configuration file read only */ $templateFilename = 'config/config.template.php'; $templateHandle = fopen($templateFilename, "r"); if ($templateHandle) { /* open include configuration file write only */ $includeFilename = 'config/config.inc.php'; $includeHandle = fopen($includeFilename, "w"); if ($includeHandle) { while (!feof($templateHandle)) { $buffer = fgets($templateHandle); /* replace _DBC_ variable */ $buffer = str_replace("_DBC_SERVER_", $this->dbHostname, $buffer); $buffer = str_replace("_DBC_PORT_", $this->dbPort, $buffer); $buffer = str_replace("_DBC_USER_", $this->dbUsername, $buffer); $buffer = str_replace("_DBC_PASS_", $this->dbPassword, $buffer); $buffer = str_replace("_DBC_NAME_", $this->dbName, $buffer); $buffer = str_replace("_DBC_TYPE_", $this->dbType, $buffer); $buffer = str_replace("_SITE_URL_", $this->siteUrl, $buffer); /* replace dir variable */ $buffer = str_replace("_VT_ROOTDIR_", $this->rootDirectory, $buffer); $buffer = str_replace("_VT_CACHEDIR_", $this->cacheDir, $buffer); $buffer = str_replace("_VT_TMPDIR_", $this->cacheDir . "images/", $buffer); $buffer = str_replace("_DB_STAT_", "true", $buffer); /* replace charset variable */ $buffer = str_replace("_VT_CHARSET_", $this->vtCharset, $buffer); /* replace master currency variable */ $buffer = str_replace("_MASTER_CURRENCY_", $this->currencyName, $buffer); /* replace the application unique key variable */ $buffer = str_replace("_VT_APP_UNIQKEY_", md5(time() + rand(1, 9999999) + md5($this->rootDirectory)), $buffer); /* replace support email variable */ $buffer = str_replace("_USER_SUPPORT_EMAIL_", $this->adminEmail, $buffer); $buffer = str_replace("_LANG_", $this->default_language, $buffer); $buffer = str_replace("_TIMEZONE_", $this->timezone, $buffer); fwrite($includeHandle, $buffer); } fclose($includeHandle); } fclose($templateHandle); } $language = explode("_", $this->default_language); OSSMail_Record_Model::setConfigData(array('language' => $language[0] . '_' . strtoupper($language[1])), false); if ($templateHandle && $includeHandle) { return true; } return false; }
function manualScanMail($params) { $account = OSSMail_Record_Model::getAccountByHash($params['rcId']); if (!$account) { throw new NoPermittedException('LBL_PERMISSION_DENIED'); } $params['folder'] = urldecode($params['folder']); $mailModel = Vtiger_Record_Model::getCleanInstance('OSSMail'); $mbox = $mailModel->imapConnect($account['username'], $account['password'], $account['mail_host'], $params['folder']); $mailDetail = $mailModel->get_mail_detail($mbox, $params['uid']); $return = self::executeActions($account, $mailDetail, $params['folder'], $params); return $return; }
function __construct() { parent::__construct(); $this->mainUrl = OSSMail_Record_Model::GetSite_URL() . 'modules/OSSMail/roundcube/?_task=mail&_action=compose'; }
function roundcubeConfig() { global $log, $root_directory; $log->debug("Entering YetiForceUpdate::roundcubeConfig() method ..."); if (!$root_directory) { $root_directory = getcwd(); } $fileName = $root_directory . '/modules/OSSMail/roundcube/config/config.inc.php'; if (file_exists($fileName)) { $config = OSSMail_Record_Model::getViewableData(); if (!is_array($config['default_host'])) { $fileContent = file_get_contents($fileName); $value = $config['default_host']; if ($value == 'ssl://imap.gmail.com') { $value = 'ssl://smtp.gmail.com'; } $saveValue = "['{$value}' => '{$value}',]"; $patternString = "\$config['default_host'] = %s;"; $pattern = '/(\\$config\\[\'default_host\'\\])[\\s]+=([^;]+);/'; $replacement = sprintf($patternString, $saveValue); $fileContent = preg_replace($pattern, $replacement, $fileContent); $filePointer = fopen($fileName, 'w'); fwrite($filePointer, $fileContent); fclose($filePointer); } } $log->debug("Exiting YetiForceUpdate::roundcubeConfig() method ... "); }
public function process(Vtiger_Request $request) { $url = ''; if ($request->get('to') != '') { $to = $request->get('to'); } if ($request->get('subject') != '') { $subject = $request->get('subject'); } if (!empty($_SESSION['POST']['to'])) { $to = implode(",", $_SESSION['POST']['to']); } if (!empty($_SESSION['POST']['cc'])) { $cc = implode(",", $_SESSION['POST']['cc']); } if (!empty($_SESSION['POST']['bcc'])) { $bcc = implode(",", $_SESSION['POST']['bcc']); } if (!empty($_SESSION['POST']['subject'])) { $subject = implode(",", $_SESSION['POST']['subject']); } $mod = $_SESSION['POST']['sourceModule']; if ($mod == 'Campaigns') { if ($to != '') { $url .= '&bcc=' . $to; } if ($_SESSION['POST']['sourceRecord'] != '') { $Record_Model = Vtiger_Record_Model::getInstanceById($_SESSION['POST']['sourceRecord'], $mod); $campaign_no = $Record_Model->get('campaign_no'); $url .= '&subject=' . $campaign_no . ': ' . $Record_Model->get('campaignname'); } } else { if ($to != '') { $url .= '&to=' . $to; } if ($cc != '') { $url .= '&cc=' . $cc; } if ($bcc != '') { $url .= '&bcc=' . $bcc; } } if ($subject != '') { $url .= '&subject=' . $subject; } $pdfPath = $request->get('pdf_path'); if ($pdfPath) { $url .= '&pdf_path=' . $pdfPath; } if ($url == '' && $request->get('record') != '' && $request->get('mod') != '') { $UrlToCompose = OSSMail_Record_Model::getUrlToCompose($request->get('mod'), $request->get('record')); $url .= $UrlToCompose; } if ($url == '' && $request->get('id') != '' && $request->get('type') != '') { $url .= '&crmid=' . (int) $request->get('id') . '&type=' . $request->get('type'); } $mainUrl = OSSMail_Record_Model::GetSite_URL() . 'modules/OSSMail/roundcube/?_task=mail&_action=compose'; $url = $mainUrl . $url; $config = Settings_Mail_Config_Model::getConfig('autologin'); if ($config['autologinActive'] == 'true') { $account = OSSMail_Autologin_Model::getAutologinUsers(); if ($account) { $rcUser = isset($_SESSION['AutoLoginUser']) && array_key_exists($_SESSION['AutoLoginUser'], $account) ? $account[$_SESSION['AutoLoginUser']] : reset($account); require_once 'modules/OSSMail/RoundcubeLogin.class.php'; $rcl = new RoundcubeLogin($mainUrl, false); try { if ($rcl->isLoggedIn()) { if ($rcl->getUsername() != $rcUser['username']) { $rcl->logout(); $rcl->login($rcUser['username'], $rcUser['password']); } } else { $rcl->login($rcUser['username'], $rcUser['password']); } } catch (RoundcubeLoginException $ex) { $log = vglobal('log'); $log->error('OSSMail_index_View|RoundcubeLoginException: ' . $ex->getMessage()); } } } $viewer = $this->getViewer($request); $viewer->assign("URL", $url); $viewer->view('index.tpl', 'OSSMail'); }