Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php if( !defined("IEM_ADDONS_PATH") ) { $l = "[\$Id: mta.php 3185 2017-11-17 07..
Decoded Output download
<?php
if( !defined("IEM_ADDONS_PATH") )
{
$l = "[\$Id: mta.php 3185 2017-11-17 07:46:19Z maborak \$]";
exit( "denied: " . $l );
}
require_once(IEM_ADDONS_PATH . "/installer/api/installer.php");
require_once(IEM_ADDONS_PATH . "/mta/config/config.php");
if( MT::S()->addon_enabled("mta") )
{
$installer = Installer_API::Singleton()->apply_patches("mta");
}
class _obfuscated_7F99BF81BAB4B1C0A781B9B88D9CAA9AAFA0908C878AB1_
{
/**
* Create the data output array for the DataTables rows
*
* @param array $columns
* Column information array
* @param array $data
* Data from the SQL get
* @return array Formatted data in a row based format
*/
public static function _obfuscated_7FB2BBA6B3B09894AA88C08D9C91B7ABAAB098B5AE9EB1_($columns, $data)
{
$out = array( );
$i = 0;
for( $ien = count($data); $i < $ien; $i++ )
{
$row = array( );
$j = 0;
for( $jen = count($columns); $j < $jen; $j++ )
{
$column = $columns[$j];
if( isset($column["formatter"]) )
{
$row[$column["dt"]] = $column["formatter"]($data[$i][$column["db"]], $data[$i]);
}
else
{
$row[$column["dt"]] = $data[$i][$columns[$j]["db"]];
}
}
$out[] = $row;
}
return $out;
}
/**
* Database connection
*
* Obtain an PHP PDO connection from a connection details array
*
* @param array $conn
* SQL connection details. The array should have
* the following properties
* * host - host name
* * db - database name
* * user - user name
* * pass - user password
* @return resource PDO connection
*/
public static function db($conn)
{
if( is_array($conn) )
{
return self::_obfuscated_7FAF8E85A2C098ABB686AE9DB69194B7A8B4A198B8A581_($conn);
}
return $conn;
}
/**
* Paging
*
* Construct the LIMIT clause for server-side processing SQL query
*
* @param array $request
* Data sent to server by DataTables
* @param array $columns
* Column information array
* @return string SQL limit clause
*/
public static function _obfuscated_7FA69FB1A39AB493BB9CBF9384AEC08B8886B288BF9F81_($request, $columns)
{
$limit = "";
if( isset($request["start"]) && $request["length"] != -1 )
{
$limit = "LIMIT " . intval($request["start"]) . ", " . intval($request["length"]);
}
return $limit;
}
/**
* Ordering
*
* Construct the ORDER BY clause for server-side processing SQL query
*
* @param array $request
* Data sent to server by DataTables
* @param array $columns
* Column information array
* @return string SQL order by clause
*/
public static function _obfuscated_7FBA8893ADBA9E94A59AA4AE95A1BEB4888A868CB689B1_($request, $columns)
{
$order = "";
if( isset($request["order"]) && count($request["order"]) )
{
$orderBy = array( );
$dtColumns = self::_obfuscated_7FA889B9A592AE88B8949282A494B69BB8A18A92C0B281_($columns, "dt");
$i = 0;
for( $ien = count($request["order"]); $i < $ien; $i++ )
{
$columnIdx = intval($request["order"][$i]["column"]);
$requestColumn = $request["columns"][$columnIdx];
$columnIdx = array_search($requestColumn["data"], $dtColumns);
$column = $columns[$columnIdx];
if( $requestColumn["orderable"] == "true" )
{
$dir = ($request["order"][$i]["dir"] === "asc" ? "ASC" : "DESC");
$orderBy[] = "`" . $column["db"] . "` " . $dir;
}
}
$order = "ORDER BY " . implode(", ", $orderBy);
}
return $order;
}
/**
* Searching / Filtering
*
* Construct the WHERE clause for server-side processing SQL query.
*
* NOTE this does not match the built-in DataTables filtering which does it
* word by word on any field. It's possible to do here performance on large
* databases would be very poor
*
* @param array $request
* Data sent to server by DataTables
* @param array $columns
* Column information array
* @param array $bindings
* Array of values for PDO bindings, used in the
* sql_exec() function
* @return string SQL where clause
*/
public static function _obfuscated_7FB7B4B189B98EAAAEAB939FAA829587B48D879A9A8581_($request, $columns, &$bindings)
{
$globalSearch = array( );
$columnSearch = array( );
$dtColumns = self::_obfuscated_7FA889B9A592AE88B8949282A494B69BB8A18A92C0B281_($columns, "dt");
if( isset($request["search"]) && $request["search"]["value"] != "" )
{
$str = $request["search"]["value"];
$i = 0;
for( $ien = count($request["columns"]); $i < $ien; $i++ )
{
$requestColumn = $request["columns"][$i];
$columnIdx = array_search($requestColumn["data"], $dtColumns);
$column = $columns[$columnIdx];
if( $requestColumn["searchable"] == "true" )
{
$binding = self::_obfuscated_7F86A0BB818CBEA188ABB486B5C09A9497AB9DA18AAA81_($bindings, "%" . $str . "%", PDO::PARAM_STR);
$globalSearch[] = "`" . $column["db"] . "` LIKE " . $binding;
}
}
}
if( isset($request["columns"]) )
{
$i = 0;
for( $ien = count($request["columns"]); $i < $ien; $i++ )
{
$requestColumn = $request["columns"][$i];
$columnIdx = array_search($requestColumn["data"], $dtColumns);
$column = $columns[$columnIdx];
$str = $requestColumn["search"]["value"];
if( $requestColumn["searchable"] == "true" && $str != "" )
{
$binding = self::_obfuscated_7F86A0BB818CBEA188ABB486B5C09A9497AB9DA18AAA81_($bindings, "%" . $str . "%", PDO::PARAM_STR);
$columnSearch[] = "`" . $column["db"] . "` LIKE " . $binding;
}
}
}
$where = "";
if( count($globalSearch) )
{
$where = "(" . implode(" OR ", $globalSearch) . ")";
}
if( count($columnSearch) )
{
$where = ($where === "" ? implode(" AND ", $columnSearch) : $where . " AND " . implode(" AND ", $columnSearch));
}
if( $where !== "" )
{
$where = "HAVING " . $where;
}
return $where;
}
/**
* Perform the SQL queries needed for an server-side processing requested,
* utilising the helper functions of this class, limit(), order() and
* filter() among others.
* The returned array is ready to be encoded as JSON
* in response to an SSP request, or can be modified if needed before
* sending back to the client.
*
* @param array $request
* Data sent to server by DataTables
* @param array|PDO $conn
* PDO connection resource or connection parameters array
* @param string $table
* SQL table to query
* @param string $primaryKey
* Primary key of the table
* @param array $columns
* Column information array
* @return array Server-side processing response array
*/
public static function _obfuscated_7F8D999B908AA58EC0B9B8AAB188AA999790ACA5A28EB1_($request, $conn, $table, $primaryKey, $columns)
{
$bindings = array( );
$db = self::db($conn);
$limit = self::limit($request, $columns);
$order = self::order($request, $columns);
$where = self::_obfuscated_7FB7B4B189B98EAAAEAB939FAA829587B48D879A9A8581_($request, $columns, $bindings);
$data = self::_obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, $bindings, "SELECT SQL_CALC_FOUND_ROWS `" . implode("`, `", self::_obfuscated_7FA889B9A592AE88B8949282A494B69BB8A18A92C0B281_($columns, "db")) . "`
FROM `" . $table . "`
" . $where . "
" . $order . "
" . $limit);
$resFilterLength = self::_obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, "SELECT FOUND_ROWS()");
$recordsFiltered = $resFilterLength[0][0];
$resTotalLength = self::_obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, "SELECT COUNT(`" . $primaryKey . "`)
FROM `" . $table . "`");
$recordsTotal = $resTotalLength[0][0];
return array( "draw" => (isset($request["draw"]) ? intval($request["draw"]) : 0), "recordsTotal" => intval($recordsTotal), "recordsFiltered" => intval($recordsFiltered), "data" => self::_obfuscated_7FB2BBA6B3B09894AA88C08D9C91B7ABAAB098B5AE9EB1_($columns, $data) );
}
/**
* The difference between this method and the `simple` one, is that you can
* apply additional `where` conditions to the SQL queries.
* These can be in
* one of two forms:
*
* * 'Result condition' - This is applied to the result set, but not the
* overall paging information query - i.e. it will not effect the number
* of records that a user sees they can have access to. This should be
* used when you want apply a filtering condition that the user has sent.
* * 'All condition' - This is applied to all queries that are made and
* reduces the number of records that the user can access. This should be
* used in conditions where you don't want the user to ever have access to
* particular records (for example, restricting by a login id).
*
* @param array $request
* Data sent to server by DataTables
* @param array|PDO $conn
* PDO connection resource or connection parameters array
* @param string $table
* SQL table to query
* @param string $primaryKey
* Primary key of the table
* @param array $columns
* Column information array
* @param string $whereResult
* WHERE condition to apply to the result set
* @param string $whereAll
* WHERE condition to apply to all queries
* @return array Server-side processing response array
*/
public static function _obfuscated_7F8DC0B4AEBFA081A099938A9BABA88BAC879285BB8C91_($request, $conn, $table, $primaryKey, $columns, $whereResult = NULL, $whereAll = NULL)
{
$bindings = array( );
$db = self::db($conn);
$localWhereResult = array( );
$localWhereAll = array( );
$whereAllSql = "";
$limit = self::limit($request, $columns);
$order = self::order($request, $columns);
$where = self::_obfuscated_7FB7B4B189B98EAAAEAB939FAA829587B48D879A9A8581_($request, $columns, $bindings);
$whereResult = self::_obfuscated_7F8990B1B382B381819C939788ACACA5BDC0868A8EA691_($whereResult);
$whereAll = self::_obfuscated_7F8990B1B382B381819C939788ACACA5BDC0868A8EA691_($whereAll);
if( $whereResult )
{
$where = ($where ? $where . " AND " . $whereResult : "WHERE " . $whereResult);
}
if( $whereAll )
{
$where = ($where ? $where . " AND " . $whereAll : "WHERE " . $whereAll);
$whereAllSql = "WHERE " . $whereAll;
}
$pp = self::_obfuscated_7FA889B9A592AE88B8949282A494B69BB8A18A92C0B281_($columns, "process");
$process = (0 < count($pp) ? " , " . implode(" , ", $pp) : "");
$data = self::_obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, $bindings, "SELECT SQL_CALC_FOUND_ROWS `" . implode("`, `", self::_obfuscated_7FA889B9A592AE88B8949282A494B69BB8A18A92C0B281_($columns, "db", "process")) . "` " . $process . "
FROM `" . $table . "`
" . $where . "
" . $order . "
" . $limit);
$resFilterLength = self::_obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, "SELECT FOUND_ROWS()");
$recordsFiltered = $resFilterLength[0][0];
$resTotalLength = self::_obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, $bindings, "SELECT COUNT(`" . $primaryKey . "`)
FROM `" . $table . "` " . $whereAllSql);
$recordsTotal = $resTotalLength[0][0];
return array( "draw" => (isset($request["draw"]) ? intval($request["draw"]) : 0), "recordsTotal" => intval($recordsTotal), "recordsFiltered" => intval($recordsFiltered), "data" => self::_obfuscated_7FB2BBA6B3B09894AA88C08D9C91B7ABAAB098B5AE9EB1_($columns, $data) );
}
/**
* Connect to the database
*
* @param array $sql_details
* SQL server connection details array, with the
* properties:
* * host - host name
* * db - database name
* * user - user name
* * pass - user password
* @return resource Database connection handle
*/
public static function _obfuscated_7FAF8E85A2C098ABB686AE9DB69194B7A8B4A198B8A581_($sql_details)
{
try
{
$db = @new PDO("mysql:host=" . $sql_details["host"] . ";dbname=" . $sql_details["db"], $sql_details["user"], $sql_details["pass"], array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ));
}
catch( _obfuscated_7FBE87A2BCB8B2A7A5A1B596BF85869A838B898B9FA681_ $e )
{
self::fatal("An error occurred while connecting to the database. " . "The error reported by the server was: " . $e->_obfuscated_7FB9B397B884B5ADA0BF8DA0B08292C084B59CAFAFAB81_());
}
return $db;
}
/**
* Execute an SQL query on the database
*
* @param resource $db
* Database handler
* @param array $bindings
* Array of PDO binding values from bind() to be
* used for safely escaping strings. Note that this can be given as the
* SQL query string if no bindings are required.
* @param string $sql
* SQL query to execute.
* @return array Result from the query (all rows)
*/
public static function _obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, $bindings, $sql = NULL)
{
if( $sql === NULL )
{
$sql = $bindings;
}
$stmt = $db->prepare($sql);
if( is_array($bindings) )
{
$i = 0;
for( $ien = count($bindings); $i < $ien; $i++ )
{
$binding = $bindings[$i];
$stmt->bindValue($binding["key"], $binding["val"], $binding["type"]);
}
}
try
{
$stmt->execute();
}
catch( _obfuscated_7FBE87A2BCB8B2A7A5A1B596BF85869A838B898B9FA681_ $e )
{
self::fatal("An SQL error occurred: " . $e->_obfuscated_7FB9B397B884B5ADA0BF8DA0B08292C084B59CAFAFAB81_());
}
return $stmt->fetchAll(PDO::FETCH_BOTH);
}
/**
* Throw a fatal error.
*
* This writes out an error message in a JSON string which DataTables will
* see and show to the user in the browser.
*
* @param string $msg
* Message to send to the client
*/
public static function fatal($msg)
{
echo json_encode(array( "error" => $msg ));
exit( 0 );
}
/**
* Create a PDO binding key which can be used for escaping variables safely
* when executing a query with sql_exec()
*
* @param
* array &$a Array of bindings
* @param * $val
* Value to bind
* @param int $type
* PDO field type
* @return string Bound key to be used in the SQL where this parameter
* would be used.
*/
public static function _obfuscated_7F86A0BB818CBEA188ABB486B5C09A9497AB9DA18AAA81_(&$a, $val, $type)
{
$key = ":binding_" . count($a);
$a[] = array( "key" => $key, "val" => $val, "type" => $type );
return $key;
}
/**
* Pull a particular property from each assoc.
* array in a numeric array,
* returning and array of the property values from each item.
*
* @param array $a
* Array to get data from
* @param string $prop
* Property to read
* @return array Array of property values
*/
public static function _obfuscated_7FA889B9A592AE88B8949282A494B69BB8A18A92C0B281_($a, $prop, $ignore = "none")
{
$out = array( );
$i = 0;
for( $len = count($a); $i < $len; $i++ )
{
if( isset($a[$i][$ignore]) )
{
continue;
}
if( isset($a[$i][$prop]) )
{
$out[] = $a[$i][$prop];
}
}
return $out;
}
/**
* Return a string from an array or a string
*
* @param array|string $a
* Array to join
* @param string $join
* Glue for the concatenation
* @return string Joined string
*/
public static function _obfuscated_7F8990B1B382B381819C939788ACACA5BDC0868A8EA691_($a, $join = " AND ")
{
if( !$a )
{
return "";
}
if( $a && is_array($a) )
{
return implode($join, $a);
}
return $a;
}
}
class _obfuscated_7FBDBFA68A85BB81B187B4969FB195BC9FA28E9A9A96A1_
{
public $current_statid = 0;
public function _obfuscated_7FBC999E8583A38EAAB2B799B59CB3A4A6BF86A0A98F81_()
{
$r = 5;
$v = MT::S()->version();
if( $r <= $v )
{
}
else
{
exit( sprintf(base64_decode("RXJyb3I6IEFkZG9uIEluc3RhbGxlciB2ZXJzaW9uICUuMUYgaXMgcmVxdWlyZWQuIFBsZWFzZSBjb250YWN0IHRvIHlvdXIgYWRtaW5pc3RyYXRvci4="), $r) );
}
}
public function _obfuscated_7FB8898BA5A888A2BCBA8DA0A5C0AC88B0A187AC8BBBB1_($raw = array( ))
{
$data = array( );
foreach( $raw as $key => $value )
{
$uid = (int) $value;
$d = MT::S()->db->Fetch(MT::S()->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers WHERE uid='" . $uid . "'"));
if( $d )
{
$hd = array( );
$hd["name"] = $d["name"];
$hd["size"] = $this->_obfuscated_7FB097BA9E9390A496ACADA2B6858A8683B28CB7B3BEA1_($uid);
$data[] = $hd;
}
}
return $data;
}
public function _obfuscated_7F8FB584B7A98A8296AE88B197BD94A69487838F90ACB1_($uid = 0, $all = true)
{
$uid = (int) $uid;
$all = ($all ? "" : " AND status=1");
$data = MT::S()->db->Fetch(MT::S()->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers WHERE uid='" . $uid . "'" . $all));
if( $data )
{
$hs = array( );
$h = MT::S()->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers_data WHERE header_uid='" . $uid . "'");
while( $row = MT::S()->db->Fetch($h) )
{
$hs[] = array( "name" => $row["name"], "value" => $row["value"] );
}
$data["headers"] = $hs;
return $data;
}
return array( );
}
public function _obfuscated_7F87B7A58583A29D9F9A92AC9E9882B8B8889F959D89B1_($uid = 0)
{
$hs = array( );
$h = MT::S()->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers_data WHERE header_uid='" . $uid . "'");
while( $row = MT::S()->db->Fetch($h) )
{
$hs[] = array( "name" => $row["name"], "value" => $row["value"] );
}
return $hs;
}
public function _obfuscated_7F9B8C819FAD84AEB49E89AB9DA8A896B2B18892AAAA91_($all = true)
{
$all = ($all ? "" : " WHERE status=1");
$d = MT::S()->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers" . $all);
$data = array( );
while( $row = MT::S()->db->Fetch($d) )
{
$row["total"] = $this->_obfuscated_7FB097BA9E9390A496ACADA2B6858A8683B28CB7B3BEA1_($row["uid"]);
$row["values"] = $this->_obfuscated_7F87B7A58583A29D9F9A92AC9E9882B8B8889F959D89B1_($row["uid"]);
$data[] = $row;
}
return $data;
}
public function _obfuscated_7FB097BA9E9390A496ACADA2B6858A8683B28CB7B3BEA1_($header_uid = 0)
{
$header_uid = (int) $header_uid;
$t = MT::S()->db->Fetch(MT::S()->db->Query("SELECT COUNT(uid) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers_data WHERE header_uid='" . $header_uid . "'"));
return (int) $t["total"];
}
public function _obfuscated_7F97AEA3A39D94B0A28B9CB29793AE949789B5B2908A91_()
{
$t = MT::S()->db->Fetch(MT::S()->db->Query("SELECT COUNT(uid) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_ipguard"));
return (int) $t["total"];
}
public function _obfuscated_7FBE8BBAAB9DA59396C0B4A0A8858EA48785AC82AE8A81_($uid = 0)
{
$header_uid = (int) $uid;
return (MT::S()->db->Fetch(MT::S()->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers WHERE uid='" . $header_uid . "'")) ? true : false);
}
public function _obfuscated_7FB4BCAD969F969E9C81AD8284BB9B8EAEC0AE91B79581_($uid = 0, $value = false)
{
MT::S()->db->Query("UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers SET status='" . (($value ? 1 : 0)) . "' WHERE uid='" . (int) $uid . "'");
}
public function _obfuscated_7F9399B087A78E82A0AEA7A1A1A9A79C8FA5949C8AB6A1_($uid = 0, $value = false)
{
MT::S()->db->Query("UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers SET rotation='" . (($value ? 1 : 0)) . "' WHERE uid='" . (int) $uid . "'");
}
public function _obfuscated_7F84AE8699AE8588A8A795B1B3AB8D9D95C0AB938F8391_($name = "no-name", $data = array( ), $status = 1, $rotation = 0)
{
$id = MT::S()->db->InsertQuery("addon_mta_headers", array( "name" => MT::S()->db->Quote($name), "status" => (int) $status, "rotation" => (int) $rotation ));
if( $id )
{
foreach( $data as $key => $value )
{
$h_id = MT::S()->db->InsertQuery("addon_mta_headers_data", array( "header_uid" => $id, "name" => $value["name"], "value" => $value["value"] ));
}
}
}
public function _obfuscated_7FB1B3ADA6B09F848D9596AEB682C08CB39F95AFB5BE81_($uid = 0)
{
MT::S()->db->Query("DELETE FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers WHERE uid='" . (int) $uid . "'");
MT::S()->db->Query("DELETE FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers_data WHERE header_uid='" . (int) $uid . "'");
}
public function _obfuscated_7FB19F9EB7AEBFA69690B8A09583BFA18D98AE9DA991A1_($uid = 0, $name = "no-name", $data = array( ), $status = 1, $rotation = 0)
{
$result = MT::S()->db->UpdateQuery("addon_mta_headers", array( "name" => $name, "status" => $status, "rotation" => $rotation ), "`uid`=" . MT::S()->db->Quote($uid));
MT::S()->db->Query("DELETE FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers_data WHERE header_uid='" . (int) $uid . "'");
foreach( $data as $key => $value )
{
$h_id = MT::S()->db->InsertQuery("addon_mta_headers_data", array( "header_uid" => $uid, "name" => $value["name"], "value" => $value["value"] ));
}
}
public function _obfuscated_7FBE8A948395B3909E8AB791B3AABBB3BA8DBE848AB1A1_($hostname)
{
if( preg_match("/" . preg_quote("->") . "/", $hostname) )
{
$a = explode("->", $hostname);
return trim($a[0]);
}
return $hostname;
}
public function _obfuscated_7F85A6BB8D849798908AA68F81AEB6968CB7AE90BA95B1_($hostname)
{
if( preg_match("/" . preg_quote("->") . "/", $hostname) )
{
$a = explode("->", $hostname);
return trim($a[1]);
}
return $hostname;
}
}
class Mta_API extends _obfuscated_7FBDBFA68A85BB81B187B4969FB195BC9FA28E9A9A96A1_
{
public $internal_email_rebuild = false;
private $db = NULL;
private $log_send_counter = 0;
private $mta_data_temp = array( );
private $LE = "
";
public $bbs = NULL;
public $bbe = NULL;
public $encoding = false;
public $data_type_reputation = array( "reputation", "reputation_volume", "reputation_complaint", "reputation_unknown", "reputation_filtered", "blacklist", "whitelist" );
public static $instance = false;
public $log_method = array( );
/**
* Launch Encoding Options
*
* @param [string] $m
* [String]
* @return [function] [Function]
*/
public function _obfuscated_7FB1B89799B896B3919CAD94B6BD9C87AAAF9F90A3A7B1_()
{
if( !$this->bbs )
{
$this->bbs = "IEMB" . getmypid();
}
return $this->bbs;
}
public function _obfuscated_7F89B6A2959AABB2AB9282BE94B39BBBB1AF8AACBF92B1_()
{
if( !$this->bbe )
{
$this->bbe = "IEME" . getmypid();
}
return $this->bbe;
}
public function public_splittest_cron(&$_this, $send_results)
{
return $this->_obfuscated_7FB589A99F859495C0A88CA6888AAF8985898DAAA385B1_($_this, $send_results);
}
private function _obfuscated_7FB589A99F859495C0A88CA6888AAF8985898DAAA385B1_(&$_this, $send_results)
{
$this->iem_log_send_pre($_this, $send_results);
$this->iem_log_send($_this, $send_results, true);
}
public function public_splittest_setupemail(&$_this)
{
return $this->_obfuscated_7FA0C094BBA3B19D9A84B791BD8E84AEAF9CA8B583AC81_($_this);
}
private function _obfuscated_7FA0C094BBA3B19D9A84B791BD8E84AEAF9CA8B583AC81_(&$_this)
{
$_this->email_objects = array( );
}
public function mta_encode_pre_body(&$_this)
{
$encode_type = $this->_obfuscated_7F9181B193B89FBC9BB481BE97A09FBEB1A39D89BCBAB1_();
if( $encode_type == "quoted-printable" || $encode_type == "base64" || $encode_type == "binary" )
{
$_this->wrap_length = 90000;
}
if( !empty($_this->body["h"]) )
{
$_this->body["h"] = $this->_obfuscated_7FB4BBAA928B90A5BF8B93AB88ACA18BAAAF9AAF989AB1_($_this->body["h"]);
$_this->body["h"] = $this->_obfuscated_7FB1B89799B896B3919CAD94B6BD9C87AAAF9F90A3A7B1_() . trim($_this->body["h"]) . $this->_obfuscated_7F89B6A2959AABB2AB9282BE94B39BBBB1AF8AACBF92B1_();
}
if( !empty($_this->body["t"]) )
{
$_this->body["t"] = $this->_obfuscated_7FB4BBAA928B90A5BF8B93AB88ACA18BAAAF9AAF989AB1_($_this->body["t"]);
$_this->body["t"] = $this->_obfuscated_7FB1B89799B896B3919CAD94B6BD9C87AAAF9F90A3A7B1_() . trim($_this->body["t"]) . $this->_obfuscated_7F89B6A2959AABB2AB9282BE94B39BBBB1AF8AACBF92B1_();
}
}
private function _obfuscated_7FB4BBAA928B90A5BF8B93AB88ACA18BAAAF9AAF989AB1_($str)
{
$str2 = str_replace(array( $this->_obfuscated_7FB1B89799B896B3919CAD94B6BD9C87AAAF9F90A3A7B1_(), $this->_obfuscated_7F89B6A2959AABB2AB9282BE94B39BBBB1AF8AACBF92B1_() ), "", $str);
return $str2;
}
public function mta_encode_post_body($body)
{
if( isset($this->old_boundary) )
{
}
if( isset($this->email_api) )
{
}
$body = preg_replace_callback("/" . $this->_obfuscated_7FB1B89799B896B3919CAD94B6BD9C87AAAF9F90A3A7B1_() . "(.*?)" . $this->_obfuscated_7F89B6A2959AABB2AB9282BE94B39BBBB1AF8AACBF92B1_() . "/msi", array( $this, "__Zend__Launcher_merb" ), $body);
return $body;
}
private function __Zend__Launcher_merb($m)
{
$r = $this->_obfuscated_7FAEA9B59DB4B8AFA8A68B929D83B4928FB695ADA391B1_($m);
return $r;
}
public function _obfuscated_7FAEA9B59DB4B8AFA8A68B929D83B4928FB695ADA391B1_($matches)
{
$mime = $this->_obfuscated_7F9181B193B89FBC9BB481BE97A09FBEB1A39D89BCBAB1_();
switch( $mime )
{
case "base64":
$body = chunk_split(base64_encode($matches[1]), 76, $this->LE);
break;
case "binary":
$body = $matches[1];
break;
case "7bit":
case "8bit":
$body = $this->_obfuscated_7F90BF8E8BA8B2BC9C889AA88793A3B49D9996A0A084B1_($matches[1]);
if( substr($body, 0 - strlen($this->LE)) != $this->LE )
{
$body .= $this->LE;
}
break;
case "quoted-printable":
$body = $matches[1];
$body = quoted_printable_encode($body);
break;
default:
$body = $matches[1];
break;
}
return $body;
}
public function mta_encode_set_header(&$_this)
{
$this->_obfuscated_7FA4AF9FB990BE9ABBAEBABD92A19FB6978BA896828281_($_this);
}
private function _obfuscated_7FA4AF9FB990BE9ABBAEBABD92A19FB6978BA896828281_(&$_this)
{
$_this->ContentEncoding = $this->_obfuscated_7F9181B193B89FBC9BB481BE97A09FBEB1A39D89BCBAB1_($_this);
return true;
}
private function _obfuscated_7F9181B193B89FBC9BB481BE97A09FBEB1A39D89BCBAB1_()
{
if( isset($this->jobdetails) && isset($this->jobdetails["mta"]) && isset($this->jobdetails["mta"]["mime"]) )
{
$mime_post = (int) $this->jobdetails["mta"]["mime"];
switch( $mime_post )
{
case 0:
$mime = "8bit";
break;
case 1:
$mime = "quoted-printable";
break;
case 2:
$mime = "base64";
break;
case 3:
$mime = "binary";
break;
default:
$mime = "8bit";
break;
}
}
else
{
$mime = "8bit";
}
return $mime;
}
public static function Singleton()
{
if( !self::$instance )
{
self::$instance = new Mta_API();
self::$instance->db = MT::S()->db;
$GLOBALS["addon_mta_class"] = self::$instance;
self::$instance->settings = array( );
self::$instance->settings["debug_mail_sent"] = ADDON_MTA_MAIL_SENT_DEBUG;
self::$instance->timer = microtime();
self::$instance->nosql = MT_TOOLS::S()->nosql("mta");
self::$instance->_obfuscated_7FBC999E8583A38EAAB2B799B59CB3A4A6BF86A0A98F81_();
MT::S()->l("mta");
if( defined("MTA_LOG_METHOD") )
{
self::$instance->log_method = array( "addon" => "mta", "method" => MTA_LOG_METHOD );
}
}
return self::$instance;
}
public function __construct()
{
}
public function cron()
{
return $this->_obfuscated_7FB4878D9086A495B48EB38D89A582839A98928AA48F91_();
}
public function _obfuscated_7FB4878D9086A495B48EB38D89A582839A98928AA48F91_()
{
}
public function _obfuscated_7F968BA5AB96B8BEB084BB948A99A5A4868DB1B38F8581_($job)
{
if( isset($job->jobdetails["mta"]["pmtajobid"]) && $job->jobdetails["mta"]["pmtajobid"]["enabled"] == 1 )
{
$jobid = $this->_obfuscated_7FAF9083BC8ABE9BA8B08A8EAE8E82BB9CA38AAABDA1A1_($job->statid);
MT::S()->set_extra_header("x-job", $this->_obfuscated_7F99AF82819685B98AA688BEA182B7AF98A0B381A2A791_($jobid));
}
}
public function _obfuscated_7FAF9083BC8ABE9BA8B08A8EAE8E82BB9CA38AAABDA1A1_($statid)
{
if( isset($this->statid) && isset($this->jobid) && $this->statid == $statid )
{
return $this->jobid;
}
$this->jobid = $this->_obfuscated_7FBF97A69CB1B8AA91A78B969F839389A186BEB3999D81_($statid);
$this->statid = $statid;
return $this->jobid;
}
public function _obfuscated_7FBF97A69CB1B8AA91A78B969F839389A186BEB3999D81_($statid)
{
$query = "SELECT jobid FROM " . SENDSTUDIO_TABLEPREFIX . "stats_newsletters WHERE statid='" . $statid . "'";
$result = $this->db->Query($query);
$row = $this->db->Fetch($result);
return ($row ? (int) $row["jobid"] : 0);
}
public function _obfuscated_7FB592BBBEBAB6918DBFB5A6A78EBCB19ABDAABD8597A1_()
{
$result = $this->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "jobs WHERE jobtype='send' AND jobstatus='c'");
if( $result )
{
while( $row = $this->db->Fetch($result) )
{
$queues_unsent = MT::S()->queues_unsent($row["queueid"]);
if( 0 < $queues_unsent )
{
$job_details = unserialize($row["jobdetails"]);
if( isset($job_details["mta"]["resend"]) && $job_details["mta"]["resend"]["current_time"] < $job_details["mta"]["resend"]["times"] )
{
$job_details["mta"]["resend"]["current_time"]++;
$result = $this->db->UpdateQuery("jobs", array( "jobstatus" => "r", "jobdetails" => serialize($job_details) ), "`jobid`=" . $this->db->Quote($row["jobid"]));
MT::S()->FLOG("Jobid=" . $row["jobid"] . ",Unsent=" . $queues_unsent . ",Times=[" . $job_details["mta"]["resend"]["current_time"] . "/" . $job_details["mta"]["resend"]["times"] . "]", "Automatic-resend");
}
}
}
}
}
public function _obfuscated_7FA7B6A0B1BB97968DB4B99E8D8FB5AD9887988BBCAA81_($uid = 0, $users = array( ), $force = 0, $force_ms = 0)
{
$uid = (int) $uid;
$users = (!$users || !is_array($users) ? array( ) : $users);
$this->db->Query("DELETE FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_users WHERE mta_group_uid=" . $uid);
foreach( $users as $k => $v )
{
$result = $this->db->InsertQuery("addon_mta_users", array( "mta_group_uid" => $this->db->Quote($uid), "user_uid" => $this->db->Quote((int) $v) ));
}
return true;
}
public function _obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($mta_uid = 0, $value = 0, $type = "sent", $time = false, $extra = "")
{
$ct = (!$time ? time() : $time);
if( !is_numeric($value) )
{
return false;
}
$mt = $this->get_date_info($ct, "hour");
$tmpk = md5($mt . $mta_uid . $type);
if( !isset($this->mta_data_temp[$tmpk]) )
{
$dc = $this->_obfuscated_7F86A8B789A88CAEA2BF87A2AA86A693B18DBB898EA7A1_($mt, $mta_uid, $type);
if( $dc )
{
$this->mta_data_temp[$tmpk] = true;
}
}
if( $type == "sent" || $type == "failed" || $type == "bounced" )
{
$q = "UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats SET value=value+" . $value . ", extra='" . $this->db->Quote($extra) . "' WHERE `mta_uid`=" . $this->db->Quote($mta_uid) . " AND `time`='" . $this->db->Quote($mt) . "' AND `type`='" . $this->db->Quote($type) . "' ";
$result = $this->db->Query($q);
$q = "UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data SET " . $type . "=" . $type . "+" . $value . " WHERE `uid`=" . $this->db->Quote($mta_uid) . "";
$result = $this->db->Query($q);
}
else
{
if( in_array($type, $this->data_type_reputation) )
{
$result = $this->db->Query("UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats SET value=" . $value . ", extra='" . $this->db->Quote($extra) . "' WHERE `mta_uid`=" . $this->db->Quote($mta_uid) . " AND `time`='" . $this->db->Quote($mt) . "' AND `type`='" . $this->db->Quote($type) . "' ");
if( $type == "blacklist" )
{
$result = $this->db->Query("SELECT blacklist_extra FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data LIMIT 1");
if( !$result )
{
$result = $this->db->Query("ALTER TABLE `" . SENDSTUDIO_TABLEPREFIX . "addon_mta_data` ADD `blacklist_extra` TEXT");
}
$result = $this->db->Query("UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data SET " . $type . "='" . $value . "', blacklist_data='" . $this->db->Quote($extra) . "' WHERE `uid`=" . $this->db->Quote($mta_uid) . "");
}
else
{
if( $type == "whitelist" )
{
$result = $this->db->Query("UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data SET " . $type . "='" . $value . "', whitelist_data='" . $this->db->Quote($extra) . "' WHERE `uid`=" . $this->db->Quote($mta_uid) . "");
}
else
{
$result = $this->db->Query("UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data SET " . $type . "='" . $value . "' WHERE `uid`=" . $this->db->Quote($mta_uid) . "");
}
}
}
}
return $result;
}
public function _obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid = 0, $type = "sent", $time = false)
{
$time = $this->get_date_info((!$time ? time() : $time), "hour");
$this->_obfuscated_7F86A8B789A88CAEA2BF87A2AA86A693B18DBB898EA7A1_($time, $mta_uid, $type);
$result = $this->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats WHERE mta_uid='" . $mta_uid . "' AND time='" . $time . "' AND type='" . $type . "'");
$result = $this->db->Fetch($result);
return ($result ? (int) $result["value"] : 0);
}
public function _obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid = 0, $type = "sent", $time = false, $arr = false)
{
$time = $this->get_date_info((!$time ? time() : $time), "day");
$time2 = $time + 3600 * 24;
$this->_obfuscated_7F86A8B789A88CAEA2BF87A2AA86A693B18DBB898EA7A1_($time, $mta_uid, $type);
if( preg_match("/reputation/i", $type) || $type == "blacklist" )
{
$result = $this->db->Query("SELECT value as total,extra FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats WHERE mta_uid='" . $mta_uid . "' AND time >= '" . $time . "' AND time < '" . $time2 . "' AND type='" . $type . "' ORDER BY time DESC LIMIT 1");
}
else
{
$result = $this->db->Query("SELECT SUM(value) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats WHERE mta_uid='" . $mta_uid . "' AND time >= '" . $time . "' AND time < '" . $time2 . "' AND type='" . $type . "'");
}
$result = $this->db->Fetch($result);
return ($arr ? $result : ($result ? (int) $result["total"] : 0));
}
/**
* FIXME: ARREGLAR CUANDO DEVUELVE EMPTY
*
* @param integer $mta_uid
* [description]
* @param boolean $time
* [description]
* @param string $date
* [description]
* @param boolean $data
* [description]
* @return [type] [description]
*/
public function _obfuscated_7F83ADBA938B81AAB8BAA6898FAA8DB2B4A7A9A68DB481_($mta_uid = 0, $time = false, $date = "daily", $data = false)
{
if( !$data )
{
$time = ($time ? $time : time());
if( $date == "daily" )
{
$bl = $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "whitelist", $time, true);
}
$data = array( );
$blids = explode(",", trim($bl["extra"]));
if( trim($bl["extra"]) == "" )
{
return $data;
}
}
else
{
$blids = $data;
}
$processed_data = array( );
$blids = implode(",", $blids);
if( empty($blids) )
{
return array( );
}
$result = $this->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_ipguard WHERE uid IN (" . $blids . ")");
while( $row = $this->db->Fetch($result) )
{
$processed_data[] = $row;
}
return $processed_data;
}
public function _obfuscated_7F95ADB185BFB5BB8A9D9D99899886A89CA5AC88A09BA1_($mta_uid = 0, $time = false, $date = "daily", $data = false)
{
if( !$data )
{
$time = ($time ? $time : time());
if( $date == "daily" )
{
$bl = $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "blacklist", $time, true);
}
$data = array( );
$blids = explode(",", trim($bl["extra"]));
if( trim($bl["extra"]) == "" )
{
return $data;
}
}
else
{
$blids = $data;
}
$processed_data = array( );
$blids = implode(",", $blids);
if( empty($blids) )
{
return array( );
}
$result = $this->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_ipguard WHERE uid IN (" . $blids . ")");
while( $row = $this->db->Fetch($result) )
{
$processed_data[] = $row;
}
return $processed_data;
}
public function _obfuscated_7F95A290859C89A5849892A5A3AE89AFBBAE90C0BF9BB1_($mta_uid = 0, $hm = 7, $from = "daily", $when = "previous", $time = false)
{
$_time = (!$time ? time() : $time);
$data = array( "time" => array( ), "sent" => array( ), "failed" => array( ), "bounced" => array( ), "reputation" => array( ), "blacklist" => array( ) );
for( $i = 0; $i < $hm; $i++ )
{
$interval = ($from == "daily" ? 24 * 60 * 60 * $i : 24 * 60 * 60 * $i);
$time = ($when == "previous" ? $_time - $interval : $_time + $interval);
$data["time"][] = date("M j", $time);
$data["sent"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "sent", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "sent", $time)));
$data["failed"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "failed", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "failed", $time)));
$data["bounced"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "bounced", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "bounced", $time)));
$data["reputation"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "reputation", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "reputation", $time)));
$complaint = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "reputation_complaint", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "reputation_complaint", $time)));
$complaint_reversed = (0 < $complaint ? 100 - $complaint : $complaint);
$data["reputation_complaint"][] = $complaint;
$volume = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "reputation_volume", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "reputation_volume", $time)));
$volume_reversed = (0 < $volume ? 100 - $volume : $volume);
$data["reputation_volume"][] = $volume;
$unknown = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "reputation_unknown", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "reputation_unknown", $time)));
$data["reputation_unknown"][] = $unknown;
$data["reputation_filtered"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "reputation_filtered", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "reputation_filtered", $time)));
$data["blacklist"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "blacklist", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "blacklist", $time)));
$data["whitelist"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "whitelist", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "whitelist", $time)));
}
$data["time"] = array_reverse($data["time"]);
$data["sent"] = array_reverse($data["sent"]);
$data["failed"] = array_reverse($data["failed"]);
$data["bounced"] = array_reverse($data["bounced"]);
$data["reputation"] = array_reverse($data["reputation"]);
$data["reputation_complaint"] = array_reverse($data["reputation_complaint"]);
$data["reputation_volume"] = array_reverse($data["reputation_volume"]);
$data["reputation_unknown"] = array_reverse($data["reputation_unknown"]);
$data["reputation_filtered"] = array_reverse($data["reputation_filtered"]);
$data["blacklist"] = array_reverse($data["blacklist"]);
$data["whitelist"] = array_reverse($data["whitelist"]);
return $data;
}
public function _obfuscated_7F86A8B789A88CAEA2BF87A2AA86A693B18DBB898EA7A1_($time = 0, $mta_uid = 0, $type = "send")
{
if( !$this->_obfuscated_7FB4AE92B583B5B4818993939194AA8D82A3B1A2B7B9B1_($time, $mta_uid, $type) )
{
$result = $this->db->InsertQuery("addon_mta_stats", array( "mta_uid" => $mta_uid, "time" => $time, "type" => $type ));
return true;
}
return false;
}
public function _obfuscated_7FB4AE92B583B5B4818993939194AA8D82A3B1A2B7B9B1_($time = 0, $mta_uid = 0, $type = "send")
{
$result = $this->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats WHERE mta_uid='" . $mta_uid . "' AND time='" . $time . "' AND type='" . $type . "'");
$ex = ($this->db->Fetch($result) ? true : false);
return $ex;
}
public function _obfuscated_7F81B58BA1A7B083BB93AFB782B98A8C999A87B587B381_($timestam = 0, $g = "day", $hm = 40, $t = "-")
{
}
public function _obfuscated_7F85AB928E93A0868598868B94A4AFB5ACB9C0BAAF8581_($jobid = 0)
{
$result = $this->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "jobs WHERE jobid='" . $jobid . "'");
$jobinfo = $this->db->Fetch($result);
if( !$jobinfo )
{
return array( );
}
$result = $this->db->Query("SELECT COUNT(*) as total,queueid,reasoncode,reason FROM " . SENDSTUDIO_TABLEPREFIX . "queues_unsent WHERE queueid='" . $jobinfo["queueid"] . "' group by reason ORDER BY total DESC LIMIT 1000");
$data = array( );
while( $row = $this->db->Fetch($result) )
{
$row["total_format"] = number_format((int) $row["total"]);
$row["reason"] = (trim($row["reason"]) == "" ? "Unknown reason" : $row["reason"]);
$data[] = $row;
}
return $data;
}
public function get_date_info($timestamp = 0, $g = "day")
{
$timestamp = ($timestamp ? $timestamp : time());
$ta = explode("-", date("Y-n-d-H-i-s", $timestamp));
$t = 0;
if( $g == "day" )
{
$t = mktime(0, 0, 0, $ta[1], $ta[2], $ta[0]);
}
else
{
if( $g == "hour" )
{
$t = mktime($ta[3], 0, 0, $ta[1], $ta[2], $ta[0]);
}
else
{
if( $g == "month" )
{
$t = mktime(0, 0, 0, $ta[1], 0, $ta[0]);
}
}
}
return $t;
}
public function _obfuscated_7FB4BBA8B0BEB192A09086B288A89481989C9F8396A3B1_($data = array( ))
{
$name = (empty($data["mta_group_name"]) ? time() : $data["mta_group_name"]);
$method = (is_numeric($data["mta_group_rotation"]) ? $data["mta_group_rotation"] : 1);
$result = $this->db->InsertQuery("addon_mta_group", array( "name" => $name, "rotation" => $method ));
return $result;
}
public function _obfuscated_7FACB8A1B18BBA9D95ADBF82A98BAE8AA89A8BAEA08381_($data = array( ))
{
$name = (empty($data["mta_group_name"]) ? time() : $data["mta_group_name"]);
$method = (is_numeric($data["mta_group_rotation"]) ? $data["mta_group_rotation"] : 1);
$result = $this->db->UpdateQuery("addon_mta_group", array( "name" => $name, "rotation" => $method ), "`uid`=" . $data["mta_group_uid"]);
return $result;
}
public function _obfuscated_7FB791A7848890A3969C88B581A389A9BEA0868AA39A81_($id = 0)
{
$mtas = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($id, true);
foreach( $mtas as $k => $value )
{
$this->db->DeleteQuery("addon_mta_data", "WHERE `uid`=" . $value["uid"]);
$this->db->DeleteQuery("addon_mta_stats", "WHERE `mta_uid`=" . $value["uid"]);
}
return $this->db->DeleteQuery("addon_mta_group", "WHERE `uid`=" . $id, 1);
}
public function _obfuscated_7FAD8697ABA3A0BDAFA7B7B082BE8AAEB189B69388A281_($r = 1)
{
$ro = array( 1 => "Random", 2 => "Cycle" );
return $ro[$r];
}
public function _obfuscated_7FB6A2B7B8B4BB8CB9908BA4B19B909E85BCBA9F8CB381_($id = false)
{
$id = ($id ? "WHERE uid='" . $id . "'" : "");
$data = array( );
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group " . $id;
$result = $this->db->Query($query);
while( $row = $this->db->Fetch($result) )
{
$row["rotation_raw"] = $row["rotation"];
$row["rotation"] = $this->_obfuscated_7FAD8697ABA3A0BDAFA7B7B082BE8AAEB189B69388A281_($row["rotation"]);
$row["inactives"] = $this->_obfuscated_7F9DAAADA0B0BD8E8A96B2BA9F8D8587BFAD9D82B5A691_($row["uid"]);
$row = array_merge($row, $this->_obfuscated_7F9E94B8BF89AD9C89A49E9C90A8B1A69484B1BAA9BE81_($row["uid"]));
$row["total"] = (int) $row["inactives"] + (int) $row["mtas"];
$data[] = $row;
}
if( !$id )
{
}
return $data;
}
public function _obfuscated_7F9DAAADA0B0BD8E8A96B2BA9F8D8587BFAD9D82B5A691_($guid)
{
$total = 0;
$query = "SELECT COUNT(*) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group=" . $guid . " AND status=2";
$result = $this->db->Query($query);
$row = $this->db->Fetch($result);
if( $row )
{
$total = $row["total"];
}
return $total;
}
public function _obfuscated_7FB98998AFB8BCAE9EA4B79FAF9BA8AFAC8FBEA19BAA81_($id = false, $mtas = false, $blacklistdata = false, $user = false)
{
$user =& GetUser();
$is_admin = $user->isAdmin();
$disabled_is_admin = true;
if( $is_admin && $disabled_is_admin == false )
{
$id = ($id ? "WHERE uid='" . $id . "'" : "");
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group " . $id;
}
else
{
$id = ($id ? "WHERE uid='" . $id . "'" : "");
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group a LEFT JOIN " . SENDSTUDIO_TABLEPREFIX . "addon_mta_users b ON a.uid=b.mta_group_uid WHERE b.user_uid=" . $user->userid;
}
$data = array( );
$result = $this->db->Query($query);
while( $row = $this->db->Fetch($result) )
{
$row["rotation"] = $this->_obfuscated_7FAD8697ABA3A0BDAFA7B7B082BE8AAEB189B69388A281_($row["rotation"]);
if( $mtas )
{
$row["mtas_data"] = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($row["uid"], false, true, false, false, $blacklistdata);
}
$data[] = array_merge($row, $this->_obfuscated_7F9E94B8BF89AD9C89A49E9C90A8B1A69484B1BAA9BE81_($row["uid"]));
}
return $data;
}
public function _obfuscated_7F84AAAFA6B78796B1B194BAB286A384C082B4B396A4A1_()
{
$data = array( );
$data["uid"] = 0;
$data["name"] = GetLang("Addon_mta_nongrouped");
$data["rotation"] = "N/A";
return array_merge($data, $this->_obfuscated_7F9E94B8BF89AD9C89A49E9C90A8B1A69484B1BAA9BE81_(0));
}
public function _obfuscated_7F9E94B8BF89AD9C89A49E9C90A8B1A69484B1BAA9BE81_($id = 0)
{
$data = array( );
$data["mtas"] = $this->_obfuscated_7FB6AD96AF859082869395B387BA87A194AF88B98EB9A1_($id);
$data["users"] = $this->_obfuscated_7F849A89A5859EA89B9E9FA0A78BB1A4A4A786A08EBA81_($id);
$data = array_merge($data, $this->_obfuscated_7FADA3B9A890A392BF899385888BB7A39E9CB3B6A5B5B1_($id));
return $data;
}
public function _obfuscated_7FB6AD96AF859082869395B387BA87A194AF88B98EB9A1_($id = 0)
{
$query = "SELECT COUNT(*) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $id . "' AND status=1";
$result = $this->db->Query($query);
if( $result )
{
$row = $this->db->Fetch($result);
return (int) $row["total"];
}
return 0;
}
public function _obfuscated_7F849A89A5859EA89B9E9FA0A78BB1A4A4A786A08EBA81_($id = 0)
{
$query = "SELECT COUNT(*) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_users WHERE mta_group_uid='" . $id . "'";
$result = $this->db->Query($query);
if( $result )
{
$row = $this->db->Fetch($result);
return (int) $row["total"];
}
return 0;
}
public function _obfuscated_7FADA3B9A890A392BF899385888BB7A39E9CB3B6A5B5B1_($id = 0)
{
$query = "SELECT SUM(sent) as sent,SUM(failed) as failed, SUM(bounced) as bounced FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $id . "'";
$result = $this->db->Query($query);
if( $result )
{
$row = $this->db->Fetch($result);
$row["sent"] = (int) $row["sent"];
$row["failed"] = (int) $row["failed"];
$row["bounced"] = (int) $row["bounced"];
return $row;
}
return 0;
}
public function _obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, $partial = false)
{
if( $id )
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group WHERE uid='" . $id . "'";
$result = $this->db->Query($query);
if( $result )
{
$row = $this->db->Fetch($result);
return array( "raw" => $row, "exist" => true, "data" => array( "mta_group_uid" => $id, "mta_group_name" => $row["name"], "mta_group_rotation" => $row["rotation"], "users" => $this->_obfuscated_7FB8BEC0A8BCB6ABAEBCB08EB1A5B38888A2869AAC8581_($id) ) );
}
return $this->_obfuscated_7FA6929DB8A5BEA98185B0AAB39B8681BE9BBFBA858AB1_();
}
return $this->_obfuscated_7FA6929DB8A5BEA98185B0AAB39B8681BE9BBFBA858AB1_();
}
public function _obfuscated_7FB8BEC0A8BCB6ABAEBCB08EB1A5B38888A2869AAC8581_($id = 0)
{
$id = (int) $id;
$users = array( );
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_users WHERE mta_group_uid='" . $id . "'";
$result = $this->db->Query($query);
if( $result )
{
while( $row = $this->db->Fetch($result) )
{
$users[] = (int) $row["user_uid"];
}
}
return $users;
}
public function _obfuscated_7F9CBDB2B98F97818C92B6AA8698A5B2A2BE9CB296A381_($group, $id, $partial = false)
{
if( $id )
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $this->db->Quote($group) . "' AND uid='" . $this->db->Quote($id) . "'";
$result = $this->db->Query($query);
if( $result )
{
$row = $this->db->Fetch($result);
return array( "exist" => true, "data" => $row );
}
return $this->_obfuscated_7FA98E84B68CBF9DAA9AB7A7AD84B8B5A08DA287BFC091_();
}
return $this->_obfuscated_7FA98E84B68CBF9DAA9AB7A7AD84B8B5A08DA287BFC091_();
}
public function _obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($uid = 0)
{
if( $uid )
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE uid='" . $this->db->Quote($uid) . "'";
$result = $this->db->Query($query);
if( $result )
{
$row = $this->db->Fetch($result);
return array( "exist" => true, "data" => $row );
}
return $this->_obfuscated_7FA98E84B68CBF9DAA9AB7A7AD84B8B5A08DA287BFC091_();
}
return $this->_obfuscated_7FA98E84B68CBF9DAA9AB7A7AD84B8B5A08DA287BFC091_();
}
public function _obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($id = 0, $lite = false, $active = false, $random = false, $limit = false, $blacklistdata = false, $whitelistdata = false)
{
$active = ($active ? " AND status=1" : "");
$order = ($random ? " ORDER BY RAND()" : "");
$limit = ($limit && is_numeric($limit) ? " LIMIT " . $limit : "");
if( !$lite )
{
$mtas = array( );
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $id . "' " . $active . " " . $order . " " . $limit;
$result = $this->db->Query($query);
while( $row = $this->db->Fetch($result) )
{
$row["sent"] = number_format($row["sent"]);
$row["failed"] = number_format($row["failed"]);
$row["bounced"] = number_format($row["bounced"]);
$row["reputation"] = number_format($row["reputation"]);
$row["blacklist"] = number_format($row["blacklist"]);
if( $blacklistdata )
{
$row["blacklist_data"] = $this->_obfuscated_7F95ADB185BFB5BB8A9D9D99899886A89CA5AC88A09BA1_($row["uid"], time(), "daily", explode(",", $row["blacklist_data"]));
}
if( $whitelistdata )
{
$wl_data = explode(",", $row["whitelist_data"]);
$row["whitelist_data"] = $this->_obfuscated_7F83ADBA938B81AAB8BAA6898FAA8DB2B4A7A9A68DB481_($row["uid"], time(), "daily", $wl_data);
}
$mtas[] = $row;
}
}
else
{
$mtas = array( );
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $id . "' " . $active . " " . $order . " " . $limit;
$result = $this->db->Query($query);
while( $row = $this->db->Fetch($result) )
{
$mtas[] = $row;
}
}
return $mtas;
}
public function _obfuscated_7F839F86AE9B9686B49EA5A8B9BDA58DAE8A9F98A29C91_($mta_uid, $type)
{
if( $type == "reputation" || $type == "blacklist" )
{
$sent = $this->db->Fetch($this->db->Query("SELECT value as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats WHERE mta_uid='" . $mta_uid . "' AND type='" . $type . "' ORDER BY time DESC LIMIT 1"));
}
else
{
$sent = $this->db->Fetch($this->db->Query("SELECT SUM(value) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats WHERE mta_uid='" . $mta_uid . "' AND type='" . $type . "'"));
}
return (int) $sent["total"];
}
public function _obfuscated_7F98B6AEAD81B5BF90998DC0BBA68C899197A299AF9281_($mta_uid, $value, $key)
{
$result = $this->db->UpdateQuery("addon_mta_data", array( $key => $value ), "`uid`=" . $mta_uid);
return $value;
}
public function _obfuscated_7F97898C81AD9292B1A7A8A4AEAE9CB383BF9387A6B191_($group_id = 0, $type = "sent")
{
$total = 0;
if( $type == "reputation" )
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $group_id . "'";
$result = $this->db->Query($query);
while( $row = $this->db->Fetch($result) )
{
$total = $total + (int) $this->_obfuscated_7F839F86AE9B9686B49EA5A8B9BDA58DAE8A9F98A29C91_($row["uid"], $type);
}
}
else
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $group_id . "'";
$result = $this->db->Query($query);
while( $row = $this->db->Fetch($result) )
{
$total = $total + (int) $this->_obfuscated_7F839F86AE9B9686B49EA5A8B9BDA58DAE8A9F98A29C91_($row["uid"], $type);
}
}
return $total;
}
public function _obfuscated_7FA98E84B68CBF9DAA9AB7A7AD84B8B5A08DA287BFC091_()
{
return array( "exist" => false, "data" => array( "name" => time() ) );
}
public function _obfuscated_7FA6929DB8A5BEA98185B0AAB39B8681BE9BBFBA858AB1_()
{
return array( "exist" => false, "data" => array( "mta_group_name" => time(), "mta_group_rotation" => 1 ) );
}
public function _obfuscated_7F858EA1A196868597B79BB4BE889D9DA0A5B2B59FAAB1_($job = 0)
{
$job = $this->db->Quote($job);
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "jobs WHERE jobid='" . $job . "'";
$result = $this->db->Query($query);
$r = array( );
$mta = 0;
$row = $this->db->Fetch($result);
if( !$row )
{
return "None";
}
$mta = $this->_obfuscated_7FB2AF8BB7B1A0B19591AC88C0A09BC0B194A5A1BC8EA1_($row["ownerid"]);
if( $mta == 0 )
{
$md = unserialize($row["jobdetails"]);
return $this->_obfuscated_7F868292A78BAEAAB3BAAF989F93B6819A8288BC91BE91_($md["mta"], "J");
}
return $this->_obfuscated_7F868292A78BAEAAB3BAAF989F93B6819A8288BC91BE91_($mta, "U");
}
public function _obfuscated_7FAEB7858EA59181A09892B7B5A79897BE9FB29AB9ADA1_($stat = 0)
{
$stat = $this->db->Quote($stat);
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "stats_newsletters WHERE statid='" . $stat . "'";
$result = $this->db->Query($query);
$r = array( );
$mta = 0;
$row = $this->db->Fetch($result);
if( !$row )
{
return "None";
}
return $this->_obfuscated_7F858EA1A196868597B79BB4BE889D9DA0A5B2B59FAAB1_($row["jobid"]);
}
public function _obfuscated_7FB2AF8BB7B1A0B19591AC88C0A09BC0B194A5A1BC8EA1_($user)
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "users WHERE userid='" . $user . "'";
$result = $this->db->Query($query);
$mta = 0;
while( $row = $this->db->Fetch($result) )
{
$mta = (int) $row["mta"];
}
return $mta;
}
public function _obfuscated_7F868292A78BAEAAB3BAAF989F93B6819A8288BC91BE91_($mta = 0, $default = "None", $type = "J")
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "smtp WHERE uid='" . $mta . "'";
$result = $this->db->Query($query);
$mta = $default;
while( $row = $this->db->Fetch($result) )
{
$mta = "<img src='images/" . (($type == "J" ? "mnu_contactlist_button" : "user")) . ".gif'> " . $row["name"];
}
return $mta;
}
public function _obfuscated_7F93939DA59B8985AEA38A8292AD95A181829B8A81BDB1_($data = array( ))
{
$mta_data = array( "hostname" => trim($data["hostname"]), "username" => trim($data["username"]), "password" => trim($data["password"]), "port" => (int) trim($data["port"]), "name" => trim($data["name"]), "mail_from" => trim($data["mail_from"]), "mail_reply" => trim($data["mail_reply"]), "mail_bounce" => trim($data["mail_bounce"]), "mail_test" => trim($data["mail_test"]), "mta_group" => (int) $data["mta_group_uid"] );
$result = $this->db->InsertQuery("addon_mta_data", $mta_data);
return $result;
}
public function _obfuscated_7FA9C089A0A2AC91BAA7B29581AFBF99A8C0A7A1BCBB81_($id = 0)
{
$result = $this->db->DeleteQuery("addon_mta_stats", "WHERE `mta_uid`=" . $id);
$result = $this->db->DeleteQuery("addon_mta_data", "WHERE `uid`=" . $id);
return $result;
}
public function _obfuscated_7F9894A7BD90AA94BBA88CA9BBAF89A6BCB19E879781A1_($ids = array( ))
{
$i = 0;
foreach( $ids as $k => $v )
{
$id = (int) $v;
if( $this->_obfuscated_7FA5A990ACAF9495B38DA7AE9995ACB1B788B2918E8E91_($id) && $this->_obfuscated_7FA9C089A0A2AC91BAA7B29581AFBF99A8C0A7A1BCBB81_($id) )
{
$i++;
}
}
return $i;
}
public function _obfuscated_7FADB3ACAFB1BFBA978597938CA0B295A0B6A3B38D9E91_($ids = array( ))
{
$i = 0;
foreach( $ids as $k => $v )
{
$id = (int) $v;
if( $this->_obfuscated_7FA5A990ACAF9495B38DA7AE9995ACB1B788B2918E8E91_($id) && $this->_obfuscated_7F92AA8889918FB18B82AF90BFBBB1A592A990ADA39681_(array( "uid" => $id, "status" => 1 )) )
{
$i++;
}
}
return $i;
}
public function _obfuscated_7FABB58B99BDA0BD95BEA3A7AEBF949FA9A0AAB6A8A8B1_($ids = array( ))
{
$i = 0;
foreach( $ids as $k => $v )
{
$id = (int) $v;
if( $this->_obfuscated_7FA5A990ACAF9495B38DA7AE9995ACB1B788B2918E8E91_($id) && $this->_obfuscated_7F92AA8889918FB18B82AF90BFBBB1A592A990ADA39681_(array( "uid" => $id, "status" => 2 )) )
{
$i++;
}
}
return $i;
}
public function _obfuscated_7F8DA79FB384C09E97B2B3BCA89DB2B8B896AAA5BE8E91_($data = array( ))
{
$result = $this->db->UpdateQuery("addon_mta_data", array( "hostname" => $data["hostname"], "username" => $data["username"], "password" => $data["password"], "port" => (int) $data["port"], "name" => $data["name"], "mail_from" => $data["mail_from"], "mail_reply" => $data["mail_reply"], "mail_bounce" => $data["mail_bounce"], "mail_test" => $data["mail_test"] ), "`uid`=" . $data["uid"]);
return $result;
}
public function _obfuscated_7FA5A990ACAF9495B38DA7AE9995ACB1B788B2918E8E91_($id)
{
$f = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($id);
return ($f["exist"] == false ? false : true);
}
public function _obfuscated_7F92AA8889918FB18B82AF90BFBBB1A592A990ADA39681_($data = array( ))
{
$valid = array( "hostname", "username", "password", "port", "name", "status", "mail_from", "mail_reply", "mail_bounce", "mail_test" );
$fields = array( );
foreach( $data as $k => $v )
{
if( in_array($k, $valid) )
{
$fields[$k] = $v;
}
}
$result = $this->db->UpdateQuery("addon_mta_data", $fields, "`uid`=" . (int) $data["uid"]);
return $result;
}
public function _obfuscated_7F889A98A1AEAC82A7A8A8A8BDAAB098A988869AA793B1_()
{
if( defined("MTA_POPULATE_IPGUARD_IP_BINDING") && MTA_POPULATE_IPGUARD_IP_BINDING != false )
{
$opts = array( "socket" => array( "bindto" => MTA_POPULATE_IPGUARD_IP_BINDING ) );
$context = stream_context_create($opts);
MT::S()->CLI("binding to: " . MTA_POPULATE_IPGUARD_IP_BINDING, "mta-addon-populate-binding", false, $this->log_method);
return $context;
}
MT::S()->CLI("binding to: FALSE", "mta-addon-populate-binding", false, $this->log_method);
}
public function _obfuscated_7FA889A98E90829D8DA6B6B5B3B5A48DB4AFA6B38FB681_()
{
require_once(dirname(__FILE__) . "/class.dom.php");
if( defined("MTA_POPULATE_IPGUARD_URL") && MTA_POPULATE_IPGUARD_URL != false )
{
$furl = MTA_POPULATE_IPGUARD_URL;
}
else
{
$furl = "http://multirbl.valli.org/lookup/184.154.76.66.html";
}
MT::S()->CLI($furl, "mta-populate-url", false, $this->log_method);
if( defined("MTA_POPULATE_IPGUARD_CONTEXT") && MTA_POPULATE_IPGUARD_CONTEXT == true )
{
$html = _obfuscated_0D2A37351D191D2D2C1903131B2933272E0D2626021032_($furl, false, $this->_obfuscated_7F889A98A1AEAC82A7A8A8A8BDAAB098A988869AA793B1_());
}
else
{
$html = _obfuscated_0D2A37351D191D2D2C1903131B2933272E0D2626021032_($furl);
}
if( $html == false )
{
return false;
}
$data = array( "blacklist" => array( ), "combined" => array( ), "whitelist" => array( ), "informational" => array( ) );
foreach( $html->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("table[id=dnsbl_data]") as $a )
{
foreach( $a->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("tr") as $b )
{
$trid = $b->id;
if( preg_match("/DNSBLBlacklistTest/i", $trid) )
{
$data["blacklist"][] = array( "name" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->plaintext, "url" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("a", 0)->href, "dns" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 3)->plaintext );
}
else
{
if( preg_match("/DNSBLCombined/i", $trid) )
{
$data["combined"][] = array( "name" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->plaintext, "url" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("a", 0)->href, "dns" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 3)->plaintext );
}
else
{
if( preg_match("/DNSBLWhitelist/i", $trid) )
{
$data["whitelist"][] = array( "name" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->plaintext, "url" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("a", 0)->href, "dns" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 3)->plaintext );
}
else
{
if( preg_match("/DNSBLInformational/i", $trid) )
{
$data["informational"][] = array( "name" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->plaintext, "url" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("a", 0)->href, "dns" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 3)->plaintext );
}
}
}
}
}
}
$data["reputation"] = array( array( "name" => "SenderScore score", "url" => "https://www.senderscore.org/faq/", "dns" => "score.senderscore.com" ), array( "name" => "SenderScore complaint", "url" => "https://www.senderscore.org/faq/", "dns" => "cmplt.rating.senderscore.com" ), array( "name" => "SenderScore volume", "url" => "https://www.senderscore.org/faq/", "dns" => "vol.rating.senderscore.com" ), array( "name" => "SenderScore unknown", "url" => "https://www.senderscore.org/faq/", "dns" => "uus.rating.senderscore.com" ), array( "name" => "SenderScore filtered", "url" => "https://www.senderscore.org/faq/", "dns" => "filtered.rating.senderscore.com" ) );
return $data;
}
public function _obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_($data)
{
MT::S()->ECH0(PHP_EOL . print_r($data, true), $this->log_method);
}
public function _obfuscated_7FB29DBB8C9E9BA4AEA6AD9F85A2BDA58E8FB49FB28581_()
{
$this->_obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_("Download RBL data");
$data = $this->_obfuscated_7FA889A98E90829D8DA6B6B5B3B5A48DB4AFA6B38FB681_();
if( is_array($data) == false )
{
return false;
}
foreach( $data as $k => $v )
{
foreach( $v as $_k => $_v )
{
if( !$this->_obfuscated_7F8B9885AEBEAEA08A8C8591AE92ABB29DB683839E8681_($_v["dns"], $k) && !empty($_v["dns"]) )
{
$rbl = array( "name" => $_v["name"], "url" => $_v["url"], "dns" => $_v["dns"], "type" => $k );
$result = $this->db->InsertQuery("addon_mta_ipguard", $rbl);
if( $result )
{
$this->_obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_("Added new entry: " . print_r($rbl, true));
}
}
else
{
$this->_obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_("Already Added [" . $k . "]: " . print_r($_v, true));
}
}
}
}
public function _obfuscated_7F8B9885AEBEAEA08A8C8591AE92ABB29DB683839E8681_($dns, $type)
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_ipguard WHERE `dns`='" . $this->db->Quote(trim($dns)) . "' AND `type`='" . $this->db->Quote(trim($type)) . "'";
$result = $this->db->Query($query);
return ($this->db->Fetch($result) ? true : false);
}
public function _obfuscated_7FB78DB5A6A7B2B5AFA7B6908F9684B4898A99988CA1A1_($type = false)
{
$type = ($type ? "WHERE `type`='" . $this->db->Quote(trim($type)) . "'" : "");
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_ipguard " . $type . " ORDER BY dns";
$result = $this->db->Query($query);
$rbls = array( );
while( $row = $this->db->Fetch($result) )
{
$rbls[] = $row;
}
return $rbls;
}
public function _obfuscated_7F82B5BE92A2BB89A5AFB29EB7ACBC9BA1A3AD89B2A9A1_($type = false)
{
$type = ($type ? "WHERE `type`='" . $this->db->Quote(trim($type)) . "'" : "");
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_ipguard " . $type;
$result = $this->db->Query($query);
$rbls = array( );
while( $row = $this->db->Fetch($result) )
{
$rbls[] = $row;
}
return $rbls;
}
public function _obfuscated_7F86978692BB938497B2BDB786B4B1AABF9995919A9EB1_($ip)
{
switch( MTA_DNS_QUERY_METHOD )
{
case "php":
$r = gethostbyname($ip);
if( !empty($r) )
{
$d = explode(".", $r);
$rp = ((int) $d[0] == 127 ? (int) $d[3] : false);
$res = array( "reply" => $rp, "reply_inet" => $r );
}
else
{
$res = array( "reply" => false, "reply_inet" => false );
}
break;
case "dig":
$op = exec("dig +short " . $ip, $r);
if( $r && !empty($r[0]) )
{
$r = $r[0];
$d = explode(".", $r);
$rp = ((int) $d[0] == 127 ? (int) $d[3] : false);
$res = array( "reply" => $rp, "reply_inet" => $r );
}
else
{
$res = array( "reply" => false, "reply_inet" => false );
}
break;
default:
$com = MTA_NSLOOKUP_BIN . " " . $ip;
if( MT_TOOLS::S()->_obfuscated_7F8E8F9AAE8A90979F949A868D88C08FABB4A186ACA8A1_() )
{
exec($com, $op);
if( is_array($op) && 5 < count($op) )
{
$a = trim(str_replace("\"", "", $op[4]));
$b = explode(" ", $a);
$c = $b[2];
$d = explode(".", $c);
$res = ((int) $d[0] == 127 ? (int) $d[3] : false);
$res = array( "reply" => $res, "reply_inet" => $c );
}
}
else
{
exec($com, $op);
if( is_array($op) && 5 < count($op) )
{
$a = trim(str_replace("\"", "", $op[5]));
$b = explode(" ", $a);
$c = $b[1];
$d = explode(".", $c);
$res = ((int) $d[0] == 127 ? (int) $d[3] : false);
$res = array( "reply" => $res, "reply_inet" => $c );
}
}
break;
}
return $res;
}
public function _obfuscated_7FAD88B7B490A590ABBEAF8991B89BBF84859C84949F81_($dns, $result, $result_inet)
{
if( preg_match("/uribl/i", $dns) && $result_inet == "127.0.0.1" )
{
return false;
}
if( 0 < (int) $result && (int) $result < 100 )
{
return true;
}
return false;
}
public function _obfuscated_7F8D9197B69B968EB6B5B79EB5A29C9083998DA9859B91_($ip, $rbl)
{
$rip = explode(".", $ip);
$reverse_ip = $rip[3] . "." . $rip[2] . "." . $rip[1] . "." . $rip[0];
$res = $this->_obfuscated_7F86978692BB938497B2BDB786B4B1AABF9995919A9EB1_($reverse_ip . "." . $rbl);
return $res;
}
public function _obfuscated_7FA691A893979E93B5A5AA97AA84918D98A6A8BCA39091_($ip = "0.0")
{
return (filter_var($ip, FILTER_VALIDATE_IP) ? true : false);
}
public function _obfuscated_7F8298A7A487BC8BA4ADAC9FBAB8A09F8BC0A98E9C9991_($tld = false)
{
if( !$tld )
{
return false;
}
return (preg_match("/^(?:[-A-Za-z0-9]+\.)+[A-Za-z]{2,6}\$/", trim($tld)) ? true : false);
}
public function _obfuscated_7F929E89B5AE958FBEBBBAB1AD9C9F9C89BDBB9EB2B381_($ip, $dns, $type = "rbl", $_return = false)
{
if( $type == "rbl" )
{
if( !$this->_obfuscated_7FA691A893979E93B5A5AA97AA84918D98A6A8BCA39091_($ip) || !$this->_obfuscated_7F8298A7A487BC8BA4ADAC9FBAB8A09F8BC0A98E9C9991_($dns) )
{
return false;
}
$rip = explode(".", $ip);
$reverse_ip = $rip[3] . "." . $rip[2] . "." . $rip[1] . "." . $rip[0];
$ip = $reverse_ip;
}
else
{
if( $type == "dbl" && (!$this->_obfuscated_7F8298A7A487BC8BA4ADAC9FBAB8A09F8BC0A98E9C9991_($ip) || !$this->_obfuscated_7F8298A7A487BC8BA4ADAC9FBAB8A09F8BC0A98E9C9991_($dns)) )
{
return false;
}
}
$ns_result = $this->_obfuscated_7F86978692BB938497B2BDB786B4B1AABF9995919A9EB1_($ip . "." . $dns);
return ($_return ? array( "query" => $ip . "." . $dns, "result" => $ns_result ) : $ns_result);
}
private function _obfuscated_7F839195A78FA290B18A9EA58DB9898AAC83B2888B8C91_()
{
$groups = $this->_obfuscated_7FB6A2B7B8B4BB8CB9908BA4B19B909E85BCBA9F8CB381_();
foreach( $groups as $g => $k )
{
MT::S()->ECH0(PHP_EOL . "| Group: " . MT::S()->color($k["name"], "yellow"), $this->log_method);
$mtas = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($k["uid"]);
foreach( $mtas as $_k => $_v )
{
$rep = $this->_obfuscated_7F9DB09B9EA2838AB0B3B2BB8D87B181B08782A3AD8A91_($_v, "reputation", $time);
}
}
}
private function _obfuscated_7F9389839EB39AADA7BBA7978FC0AFA3B38EAE86A7BAA1_()
{
$groups = $this->_obfuscated_7FB6A2B7B8B4BB8CB9908BA4B19B909E85BCBA9F8CB381_();
foreach( $groups as $g => $k )
{
MT::S()->ECH0(PHP_EOL . "| Group: " . MT::S()->color($k["name"], "yellow"), $this->log_method);
$mtas = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($k["uid"]);
foreach( $mtas as $_k => $_v )
{
$rep = $this->_obfuscated_7F9DB09B9EA2838AB0B3B2BB8D87B181B08782A3AD8A91_($_v, "blacklist", $time);
}
}
}
/**
* New IP monitoring API
*/
private function _obfuscated_7F819BAC93B7839D8A8EB1A99197A498B78FACBDB4AEA1_()
{
$sp = "{first sentence|second sentence} { {His|Her} {car|truck} is {blue|red}. | {She|He} is {feeling|doing} {much|a lot} better.}";
$data = array( "api_key" => 123, "ip" => "maborak.com" );
echo 234;
print_r(MT_TOOLS::S()->api("https://platform.maborak.com/api/dnsbl_service", $data));
exit();
}
public function _obfuscated_7F9DB09B9EA2838AB0B3B2BB8D87B181B08782A3AD8A91_($mta = array( ), $type = "reputation", $time = false, $run = false)
{
$time = (!$time ? time() : $time);
$type = (!$type ? "reputation" : $type);
$rbls = $this->_obfuscated_7FB78DB5A6A7B2B5AFA7B6908F9684B4898A99988CA1A1_($type);
$result = array( );
$ip = gethostbyname($mta["hostname"]);
if( filter_var($ip, FILTER_VALIDATE_IP) )
{
$bl = array( );
$wl = array( );
$this->_obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_(" Checking " . $type . " for " . $ip . ":");
$j = 1;
$total = count($rbls);
foreach( $rbls as $k => $v )
{
if( $type == "reputation" )
{
if( $v["dns"] != "score.senderscore.com" )
{
continue;
}
$result = $this->_obfuscated_7F8D9197B69B968EB6B5B79EB5A29C9083998DA9859B91_($ip, $v["dns"]);
$value = $result["reply"];
$this->_obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_(" " . $v["dns"] . "[" . $result["reply_inet"] . "] : " . $result["reply"]);
if( $type == "reputation" && $v["dns"] == "score.senderscore.com" )
{
$this->_obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($mta["uid"], (int) $value, "reputation", $time);
}
}
else
{
if( $type == "blacklist" )
{
$result_query = $this->_obfuscated_7F929E89B5AE958FBEBBBAB1AD9C9F9C89BDBB9EB2B381_($ip, $v["dns"], "rbl", true);
if( $result_query )
{
$value = $result_query["result"]["reply"];
$listed = $this->_obfuscated_7FAD88B7B490A590ABBEAF8991B89BBF84859C84949F81_($v["dns"], $result_query["result"]["reply"], $result_query["result"]["reply_inet"]);
if( $listed )
{
$bl[] = $v["uid"];
}
$o = MT::S()->color("OK", "green");
$l = MT::S()->color("LISTED", "light_red");
$inet_reply = ($result_query["result"]["reply_inet"] ? $result_query["result"]["reply_inet"] : "empty");
MT::S()->CLI((($listed ? "[" . $result_query["result"]["reply_inet"] . "]" : "")) . "[" . ((!$listed ? $o : $l)) . "]" . "[" . MT::S()->color($inet_reply, "dark_gray") . "]", MT::S()->color("RBL", "light_blue") . "][" . $j . "/" . $total . "][" . (($listed ? MT::S()->color($result_query["query"], "light_red") : $result_query["query"])), false, $this->log_method);
$listed = false;
}
}
else
{
if( $type == "whitelist" )
{
$result_query = $this->_obfuscated_7F929E89B5AE958FBEBBBAB1AD9C9F9C89BDBB9EB2B381_($ip, $v["dns"], "rbl", true);
if( $result_query )
{
$value = $result_query["result"]["reply"];
$listed = $this->_obfuscated_7FAD88B7B490A590ABBEAF8991B89BBF84859C84949F81_($v["dns"], $result_query["result"]["reply"], $result_query["result"]["reply_inet"]);
if( $listed )
{
$wl[] = $v["uid"];
}
$o = MT::S()->color("NOT-LISTED", "light_red");
$l = MT::S()->color("LISTED", "green");
$inet_reply = ($result_query["result"]["reply_inet"] ? $result_query["result"]["reply_inet"] : "empty");
MT::S()->CLI((($listed ? "[" . $result_query["result"]["reply_inet"] . "]" : "")) . "[" . ((!$listed ? $o : $l)) . "]" . "[" . MT::S()->color($inet_reply, "dark_gray") . "]", MT::S()->color("RBL", "light_blue") . "][" . $j . "/" . $total . "][" . (($listed ? MT::S()->color($result_query["query"], "green") : $result_query["query"])), false, $this->log_method);
$listed = false;
}
}
}
}
$j++;
}
if( $type == "blacklist" )
{
$this->_obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($mta["uid"], count($bl), "blacklist", $time, implode(",", $bl));
}
else
{
if( $type == "whitelist" )
{
$this->_obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($mta["uid"], count($wl), "whitelist", $time, implode(",", $wl));
}
}
}
else
{
$this->_obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_("Invalid IP: " . $ip);
$result["result"] = false;
}
return $result;
}
public function _obfuscated_7F8AADA48384B38AAABDA6A8A9AB86ABABA0B3B6ABBAA1_()
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "usergroups";
$result = $this->db->Query($query);
$groups = array( );
while( $row = $this->db->Fetch($result) )
{
$row["users"] = $this->_obfuscated_7F81C0A3B19593999EB5A2A4ABA2A696AF9AB89E9CA991_($row["groupid"]);
$groups[] = $row;
}
return $groups;
}
public function _obfuscated_7F81C0A3B19593999EB5A2A4ABA2A696AF9AB89E9CA991_($group = 0)
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "users WHERE groupid='" . $group . "'";
$result = $this->db->Query($query);
$users = array( );
while( $row = $this->db->Fetch($result) )
{
$users[] = $row;
}
return $users;
}
public function _obfuscated_7FC0B4B699B981BDA2B3ADAAAFB3B89EA5A7B88B9C93B1_($mtas)
{
$optional = 1;
foreach( $mtas["groups"] as $key => $value )
{
if( (int) $value["s_force"] != 4 )
{
return 0;
}
}
return $optional;
}
public function _obfuscated_7FA59F97AA9B97A4A284ADA5A9A595B2A9BC978F8DADA1_($mtas)
{
$f = 0;
foreach( $mtas["groups"] as $key => $value )
{
if( (int) $value["s_force"] == 1 )
{
return 1;
}
}
return $f;
}
/**
* Este metodo muestra los MTA Selection en el Email Campaign Step
*
* @return [type] [description]
* @see $this->__Zend__iem_email_campaign_save_mta()
*/
private function _obfuscated_7F81B1B2A699B38A93AA95BDB0B488AF988FB39B86B3B1_()
{
$mtas = array( );
$mtas["groups"] = $this->_obfuscated_7FB98998AFB8BCAE9EA4B79FAF9BA8AFAC8FBEA19BAA81_(false, true, false, false);
$filtered_group = array( );
foreach( $mtas["groups"] as $key => $value )
{
if( (int) $value["s_force"] != 2 && (int) $value["s_force"] != 0 )
{
$filtered_group[] = $value;
}
}
$mtas["groups"] = $filtered_group;
$this->template_system->Assign("default", $this->_obfuscated_7FC0B4B699B981BDA2B3ADAAAFB3B89EA5A7B88B9C93B1_($mtas));
$this->template_system->Assign("is_forcing", $this->_obfuscated_7FA59F97AA9B97A4A284ADA5A9A595B2A9BC978F8DADA1_($mtas));
$this->template_system->Assign("mtas", $mtas, true);
$this->template_system->Assign("headers", $this->_obfuscated_7F9B8C819FAD84AEB49E89AB9DA8A896B2B18892AAAA91_(false), true);
$GLOBALS["MTA_SEND_SELECT_MTA"] = $this->template_system->ParseTemplate("iem_mta_send_select_mta", true);
}
public function iem_show_mtas_in_email_campaign()
{
$this->_obfuscated_7F81B1B2A699B38A93AA95BDB0B488AF988FB39B86B3B1_();
}
private function _obfuscated_7FB696C08A848C9C88848A94B4AA9CB3BE9B959F8C83B1_($triggerid, $data = array( ))
{
$data = $this->_obfuscated_7FBFAAAEB6BB86958298B6BE94B2B1898DB489ACB5B4A1_();
$this->_obfuscated_7FAF9F9798B9AEB094A39CB9B1A185849FAF8CA8AB9EB1_($triggerid, $data);
print_r($data);
print_r($this->_obfuscated_7F8C95929A8BAEBFBCA884A4B7A4A39F9F9C9BBDB394A1_($triggerid));
exit();
}
private function _obfuscated_7F8C95929A8BAEBFBCA884A4B7A4A39F9F9C9BBDB394A1_($triggerid = 0)
{
$nosql = MT_TOOLS::S()->nosql("mta/trigger_" . $triggerid);
return $nosql->public_getNode("data");
}
private function _obfuscated_7FAF9F9798B9AEB094A39CB9B1A185849FAF8CA8AB9EB1_($triggerid = 0, $data = array( ))
{
$nosql = MT_TOOLS::S()->nosql("mta/trigger_" . $triggerid);
return $nosql->public_setNode("data", $data);
}
private function _obfuscated_7FBFAAAEB6BB86958298B6BE94B2B1898DB489ACB5B4A1_($data = array( ))
{
$log = array( );
$user =& GetUser();
$mtas = array( );
$send_details = array( );
$forced = $this->_obfuscated_7FA58DAD8AA48EA9B1A08BB4A2BB838E8EB48EA2AFB981_($user->userid);
$forced_mail_settings = $this->_obfuscated_7FB9B09A8786A1A6AF9987929BB7B88CA9ACA0A585B2A1_($user->userid);
$mtas["groups"] = $forced;
$mtas["groups_mail_settings"] = $forced_mail_settings;
$log["username"] = $user->username;
$log["ip"] = $_SERVER["REMOTE_ADDR"];
$send_details["log"] = $log;
$send_mta = array( "mtas_uid" => array( ) );
$mta_raw = array( );
if( isset($data["mta"]) && is_array($data["mta"]) )
{
foreach( $data["mta"] as $key => $value )
{
$_mta = explode("_", $value);
if( count($_mta) != 2 || $_mta[0] != "s" )
{
continue;
}
$_m = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($_mta[1]);
if( $_m["exist"] )
{
$group_id = $_m["data"]["mta_group"];
if( !isset($mta_raw[$group_id]) )
{
$group_info = $this->group_info($group_id);
$mta_raw[$group_id] = array( "group" => $group_info[0], "mtas" => array( ) );
}
$mta_raw[$group_id]["mtas"][] = $_m["data"]["uid"];
}
}
}
foreach( $mta_raw as $key => $value )
{
if( array_key_exists($key, $mtas["groups"]) )
{
}
else
{
$mtas["groups"][$key] = array( );
foreach( $value["mtas"] as $akey => $avalue )
{
$mtas["groups"][$key][] = $avalue;
}
}
}
$ms = (isset($_POST["mail_settings"]) ? $_POST["mail_settings"] : array( ));
foreach( $ms as $key => $value )
{
if( array_key_exists($key, $mtas["groups_mail_settings"]) )
{
if( !$this->_obfuscated_7F88B59FBCA69CB0AB8AA1B9A9A0C0B989868BB7A3B9A1_($key) )
{
$mtas["groups_mail_settings"][$key]["from"] = (isset($value["from"]) ? true : false);
}
if( !$this->_obfuscated_7FA7B8A499AFA2B5ADC085A2AAA1A4BF9CAC8292BA86B1_($key) )
{
$mtas["groups_mail_settings"][$key]["reply"] = (isset($value["reply"]) ? true : false);
}
if( !$this->_obfuscated_7F9A9EB499ACABAEA492A6BBA4ABBC988BB788A5B889A1_($key) )
{
$mtas["groups_mail_settings"][$key]["bounce"] = (isset($value["bounce"]) ? true : false);
}
}
else
{
$mtas["groups_mail_settings"][$key] = array( );
$mtas["groups_mail_settings"][$key]["from"] = (isset($value["from"]) ? true : false);
$mtas["groups_mail_settings"][$key]["reply"] = (isset($value["reply"]) ? true : false);
$mtas["groups_mail_settings"][$key]["bounce"] = (isset($value["bounce"]) ? true : false);
}
}
$gnames = array( );
foreach( $mtas["groups"] as $key => $value )
{
$group_info = $this->group_info($key);
$gnames[$key] = $group_info[0]["name"];
}
$mtas["group_names"] = $gnames;
$mtas["resend"] = array( "times" => (isset($_POST["resend"]) ? (int) $_POST["resend"] : 0), "current_time" => 0 );
$mtas["reschedule"] = array( "times" => (isset($_POST["reschedule"]) ? (int) $_POST["reschedule"] : 0), "current_time" => 0 );
$mtas["pmtajobid"] = array( "enabled" => (isset($_POST["pmtajobid"]) ? ((int) $_POST["pmtajobid"] == 1 ? 1 : 0) : 0) );
$mtas["mime"] = (isset($_POST["mime"]) ? $_POST["mime"] : false);
$mtas["headers"] = (isset($_POST["header"]) ? $_POST["header"] : array( "groups" => array( ), "manual" => "None" ));
$send_details["mta"] = $mtas;
return $send_details;
}
/**
* Save MTA Accounts in JobDetails
*
* @param unknown $send_details
* @param array $data
* @param string $is_trigger
*/
private function _obfuscated_7FB79191BB82B2AB86ABBC8994AD938DA3BCBABC91B6A1_(&$send_details, $data = array( ), $is_trigger = false)
{
$log = array( );
$user =& GetUser();
$mtas = array( );
$forced = $this->_obfuscated_7FA58DAD8AA48EA9B1A08BB4A2BB838E8EB48EA2AFB981_($user->userid);
$forced_mail_settings = $this->_obfuscated_7FB9B09A8786A1A6AF9987929BB7B88CA9ACA0A585B2A1_($user->userid);
$mtas["groups"] = $forced;
$mtas["groups_mail_settings"] = $forced_mail_settings;
$log["username"] = $user->username;
$log["ip"] = $_SERVER["REMOTE_ADDR"];
$send_details["log"] = $log;
$send_mta = array( "mtas_uid" => array( ) );
$mta_raw = array( );
if( isset($data["mta"]) && is_array($data["mta"]) )
{
foreach( $data["mta"] as $key => $value )
{
$_mta = explode("_", $value);
if( count($_mta) != 2 || $_mta[0] != "s" )
{
continue;
}
$_m = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($_mta[1]);
if( $_m["exist"] )
{
$group_id = $_m["data"]["mta_group"];
if( !isset($mta_raw[$group_id]) )
{
$group_info = $this->group_info($group_id);
$mta_raw[$group_id] = array( "group" => $group_info[0], "mtas" => array( ) );
}
$mta_raw[$group_id]["mtas"][] = $_m["data"]["uid"];
}
}
}
foreach( $mta_raw as $key => $value )
{
if( array_key_exists($key, $mtas["groups"]) )
{
}
else
{
$mtas["groups"][$key] = array( );
foreach( $value["mtas"] as $akey => $avalue )
{
$mtas["groups"][$key][] = $avalue;
}
}
}
$ms = (isset($_POST["mail_settings"]) ? $_POST["mail_settings"] : array( ));
foreach( $ms as $key => $value )
{
if( array_key_exists($key, $mtas["groups_mail_settings"]) )
{
if( !$this->_obfuscated_7F88B59FBCA69CB0AB8AA1B9A9A0C0B989868BB7A3B9A1_($key) )
{
$mtas["groups_mail_settings"][$key]["from"] = (isset($value["from"]) ? true : false);
}
if( !$this->_obfuscated_7FA7B8A499AFA2B5ADC085A2AAA1A4BF9CAC8292BA86B1_($key) )
{
$mtas["groups_mail_settings"][$key]["reply"] = (isset($value["reply"]) ? true : false);
}
if( !$this->_obfuscated_7F9A9EB499ACABAEA492A6BBA4ABBC988BB788A5B889A1_($key) )
{
$mtas["groups_mail_settings"][$key]["bounce"] = (isset($value["bounce"]) ? true : false);
}
}
else
{
$mtas["groups_mail_settings"][$key] = array( );
$mtas["groups_mail_settings"][$key]["from"] = (isset($value["from"]) ? true : false);
$mtas["groups_mail_settings"][$key]["reply"] = (isset($value["reply"]) ? true : false);
$mtas["groups_mail_settings"][$key]["bounce"] = (isset($value["bounce"]) ? true : false);
}
}
$gnames = array( );
foreach( $mtas["groups"] as $key => $value )
{
$group_info = $this->group_info($key);
$gnames[$key] = $group_info[0]["name"];
}
$mtas["group_names"] = $gnames;
$mtas["resend"] = array( "times" => (isset($_POST["resend"]) ? (int) $_POST["resend"] : 0), "current_time" => 0 );
$mtas["reschedule"] = array( "times" => (isset($_POST["reschedule"]) ? (int) $_POST["reschedule"] : 0), "current_time" => 0 );
$mtas["pmtajobid"] = array( "enabled" => (isset($_POST["pmtajobid"]) ? ((int) $_POST["pmtajobid"] == 1 ? 1 : 0) : 0) );
$mtas["mime"] = (isset($_POST["mime"]) ? $_POST["mime"] : false);
$mtas["headers"] = (isset($_POST["header"]) ? $_POST["header"] : array( "groups" => array( ), "manual" => "None" ));
$headers = $this->_obfuscated_7FB8898BA5A888A2BCBA8DA0A5C0AC88B0A187AC8BBBB1_($mtas["headers"]["groups"]);
$this->template_system->Assign("mta_headers", $headers, true);
$this->template_system->Assign("mta_headers_manual", (!empty($mtas["headers"]["manual"]) ? $mtas["headers"]["manual"] : "none"), true);
$send_details["mta"] = $mtas;
$this->template_system->Assign("mta", $send_details["mta"], true);
$GLOBALS["MTA_SEND_SELECT_MTA_CONFIRM"] = $this->template_system->ParseTemplate("iem_mta_send_select_mta_confirm", true);
}
public function iem_email_campaign_save_mta(&$a, $b)
{
return $this->_obfuscated_7FB79191BB82B2AB86ABBC8994AD938DA3BCBABC91B6A1_($a, $b);
}
public function _obfuscated_7F8191B5968AB783879993B0A6ADB2BCA8B687B09DA1B1_($triggerid, $b)
{
return $this->_obfuscated_7FB696C08A848C9C88848A94B4AA9CB3BE9B959F8C83B1_($triggerid, $b);
}
public function _obfuscated_7FA58DAD8AA48EA9B1A08BB4A2BB838E8EB48EA2AFB981_($id = 0)
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group a LEFT JOIN " . SENDSTUDIO_TABLEPREFIX . "addon_mta_users b ON a.uid=b.mta_group_uid WHERE b.user_uid=" . $id . " AND (a.s_force=1 OR a.s_force=2)";
$data = array( );
$result = $this->db->Query($query);
while( $row = $this->db->Fetch($result) )
{
$data[$row["uid"]] = array( );
$row["rotation"] = $this->_obfuscated_7FAD8697ABA3A0BDAFA7B7B082BE8AAEB189B69388A281_($row["rotation"]);
$row["mtas_data"] = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($row["uid"], false, true, false, false, false);
foreach( $row["mtas_data"] as $key => $value )
{
$data[$row["uid"]][] = $value["uid"];
}
}
return $data;
}
public function _obfuscated_7F88B59FBCA69CB0AB8AA1B9A9A0C0B989868BB7A3B9A1_($gid)
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group WHERE uid=" . (int) $gid . " AND (s_force_from=1 OR s_force_from=2)";
$result = $this->db->Fetch($this->db->Query($query));
return ($result ? true : false);
}
public function _obfuscated_7FA7B8A499AFA2B5ADC085A2AAA1A4BF9CAC8292BA86B1_($gid)
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group WHERE uid=" . (int) $gid . " AND (s_force_reply=1 OR s_force_reply=2)";
$result = $this->db->Fetch($this->db->Query($query));
return ($result ? true : false);
}
public function _obfuscated_7F9A9EB499ACABAEA492A6BBA4ABBC988BB788A5B889A1_($gid)
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group WHERE uid=" . (int) $gid . " AND (s_force_bounce=1 OR s_force_bounce=2)";
$result = $this->db->Fetch($this->db->Query($query));
return ($result ? true : false);
}
public function _obfuscated_7FB9B09A8786A1A6AF9987929BB7B88CA9ACA0A585B2A1_($id = 0)
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group a LEFT JOIN " . SENDSTUDIO_TABLEPREFIX . "addon_mta_users b ON a.uid=b.mta_group_uid WHERE b.user_uid=" . $id . " AND (a.s_force=1 OR a.s_force=2) OR (s_force_from=1 OR s_force_from=2 OR s_force_reply=1 OR s_force_reply=2 OR s_force_bounce=1 OR s_force_bounce=2)";
$data = array( );
$result = $this->db->Query($query);
while( $row = $this->db->Fetch($result) )
{
$data[$row["uid"]] = array( );
$data[$row["uid"]]["from"] = ((int) $row["s_force_from"] == 1 || (int) $row["s_force_from"] == 2 ? true : false);
$data[$row["uid"]]["reply"] = ((int) $row["s_force_reply"] == 1 || (int) $row["s_force_reply"] == 2 ? true : false);
$data[$row["uid"]]["bounce"] = ((int) $row["s_force_bounce"] == 1 || (int) $row["s_force_bounce"] == 2 ? true : false);
}
return $data;
}
private function _obfuscated_7FB2B6939CACB9B7A187AC86948191A2AEA48BAB89BB81_()
{
$m = array( );
if( isset($this->mta["groups"]) )
{
foreach( $this->mta["groups"] as $key => $value )
{
foreach( $value as $akey => $avalue )
{
$m[] = $avalue;
}
}
}
return $m;
}
/**
* MTA Object
* Return all the MTA's assigned to the user.
*
* @todo Optimizar la seleccion de MTA's
* @return array The mta accounts in an array.
*/
private function _obfuscated_7F8D9291B4A09CA8819D9897BCAAB1B18895838B8BA391_()
{
$mtas = $this->_obfuscated_7FB2B6939CACB9B7A187AC86948191A2AEA48BAB89BB81_();
$user = GetUser();
$fromname = $user->Get("fullname");
$sep = (defined("MTA_MAILFROM_SEPARATOR") ? MTA_MAILFROM_SEPARATOR : ">");
$mo = array( );
if( 0 < count($mtas) )
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE uid IN(" . implode(",", $mtas) . ") AND status=1";
$qa = $this->db->Query($query);
while( ($row = $this->db->Fetch($qa)) != false )
{
$fn = explode($sep, trim($row["mail_from"]));
if( 1 < count($fn) )
{
$row["mail_from_name"] = trim($fn[0]);
$row["mail_from"] = trim($fn[1]);
}
$mo[] = $row;
}
}
return $mo;
}
private function _obfuscated_7F98969281BF88998B90BEBC8AB08792A8A1A1A8A7BA91_()
{
$next_in = MTA_NEXT_MTA_AFTER;
if( !$this->mta["current_mta"] || $this->log_send_counter % $next_in == 0 )
{
if( MTA_DEFAULT_SORT == "random" )
{
$switched_mta = $this->_obfuscated_7FA8AF9C95BCA9B9A688B5B5B498B999AD87988E9E9BA1_($this->mta["objects"]);
}
else
{
$switched_mta = $this->_obfuscated_7F919FAFBD8DAB81A0ADB0BAB1AFA6A1BE96B1B8A2A891_($this->mta["objects"]);
}
return $switched_mta;
}
return $this->mta["current_mta"];
}
private function _obfuscated_7FA8AF9C95BCA9B9A688B5B5B498B999AD87988E9E9BA1_($pool = array( ))
{
$rand_key = array_rand($pool, 1);
return $pool[$rand_key];
}
private function _obfuscated_7F919FAFBD8DAB81A0ADB0BAB1AFA6A1BE96B1B8A2A891_($pool = array( ))
{
$this->mta["current_cycle_index"]++;
if( isset($pool[$this->mta["current_cycle_index"]]) )
{
return $pool[$this->mta["current_cycle_index"]];
}
$this->mta["current_cycle_index"] = 0;
return $pool[$this->mta["current_cycle_index"]];
}
/**
* Entrada principal de todo el engine SMTP
*
* @param object $_this
* Email_API object
* @param unknown $disconnect
* We will disconnect?
*/
public function iem_switch_smtp(&$_this, &$disconnect)
{
$this->_this = $_this;
if( isset($_this->Email_API->statid) && $_this->Email_API->statid != $this->current_statid )
{
$this->el_html = "";
$this->current_statid = $_this->Email_API->statid;
}
if( empty($this->el_html) )
{
$this->el_html = $_this->Email_API->body["h"];
}
return $this->_obfuscated_7F9C9395A7B8A8B4ACB6B9A7BEA28AA5AFB292AE96B3A1_($_this, $disconnect);
}
/**
*
* Quitamos todos los valores procesados para volver a procesarlos
*
* @param object $mail_object
* Email_API
*/
public function rebuild_mail($mail_object)
{
$mail_object->_AssembledEmail["Headers"]["m"] = NULL;
$mail_object->_AssembledEmail["Headers"]["t"] = NULL;
$mail_object->_AssembledEmail["Headers"]["h"] = NULL;
$mail_object->_AssembledEmail["Body"]["t"] = NULL;
$mail_object->_AssembledEmail["Body"]["h"] = NULL;
$mail_object->_AttachmentBody = "";
$mail_object->_ImageBody = NULL;
if( !empty($this->el_html) )
{
$mail_object->body["h"] = $this->el_html;
}
}
/**
* After the email is sent
*
* @param unknown $_this
* @param unknown $mail_results
* @return unknown
*/
public function iem_log_send_pre(&$_this, $mail_results)
{
return $this->_obfuscated_7F938DAFB394B79A998795AC8DA9908591949CAB8A9EB1_($_this, $mail_results);
}
private function _obfuscated_7F938DAFB394B79A998795AC8DA9908591949CAB8A9EB1_(&$_this, $mail_results)
{
if( $this->settings["debug_mail_sent"] )
{
$this->_obfuscated_7F83889496A984BEB8AE9FB2AD92889F909EBEA3A0B291_($_this->Email_API);
}
if( isset($_this->jobdetails["mta"]) && isset($this->mta["selection"]) )
{
$mta_uid = (int) $this->mta["selection"]["mta"]["uid"];
if( !isset($_this->mta_used_to_sent) )
{
$_this->mta_used_to_sent = array( );
}
if( !isset($_this->mta_used_to_sent[$mta_uid]) )
{
$_this->mta_used_to_sent[$mta_uid] = array( "sent" => 0, "failed" => 0 );
}
if( 0 < $mail_results["success"] )
{
$_this->mta_used_to_sent[$mta_uid]["sent"]++;
}
else
{
$_this->mta_used_to_sent[$mta_uid]["failed"]++;
}
}
}
/**
*
* @param unknown $_this
* @param unknown $mail_result
* @param boolean $force
* Ask if the campaign finished.
* @return unknown
*/
public function iem_log_send(&$_this, $mail_result, $force = false)
{
return $this->_obfuscated_7F829CB6B68D9287A287AF8B93B9B29284B2858F87A681_($_this, $mail_result, $force);
}
private function _obfuscated_7F829CB6B68D9287A287AF8B93B9B29284B2858F87A681_(&$_this, $mail_result, $force = false)
{
if( ($this->log_send_counter % MTA_COUNTER_TO_UPDATE_STATS == 0 || $force == true) && MTA_COUNTER_ENABLED == true && isset($_this->jobdetails["mta"]) && isset($_this->mta_used_to_sent) )
{
MT::S()->CLI($_this->mta_used_to_sent, "mta-used-to-send");
foreach( $_this->mta_used_to_sent as $k => $v )
{
if( 0 < $v["sent"] )
{
$this->_obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($k, $v["sent"], "sent");
}
if( 0 < $v["failed"] )
{
$this->_obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($k, $v["failed"], "failed");
}
$_this->mta_used_to_sent[$k] = array( "sent" => 0, "failed" => 0 );
}
}
if( $force == true )
{
Mta_API::$instance = NULL;
$GLOBALS["addon_mta_class"] = NULL;
if( isset($GLOBALS["addon_spins_class"]) && $GLOBALS["addon_spins_class"] != NULL )
{
}
}
}
/**
* Modify the encoding content
*
* @param array $data
* [Job details]
*/
public function _obfuscated_7FB39085ABB08FA899AE8C92B58CB58BA284B38BB898A1_($data = array( ))
{
if( isset($data["headers"]) )
{
$this->encoding = "base64";
if( $this->encoding == "base64" && isset($this->_this) && isset($this->_this->Email_API) )
{
$raw_subject = $this->_this->Email_API->Subject;
if( !preg_match("/" . preg_quote("=?utf-8?B?") . "/", $raw_subject) )
{
}
}
}
else
{
$this->encoding = "8bit";
}
}
/**
* Modify the headers
*
* @param array $data
* [Job details]
*/
public function _obfuscated_7F98BCBD9683A8A79A90ABB4AAA69482B0BDB899ACBD91_($data = array( ))
{
if( isset($this->headers) )
{
$headers = $this->headers;
}
else
{
$data_header = array( "data" => array( ), "multiple" => 1, "manual" => "" );
if( isset($data["headers"]) && isset($data["headers"]["groups"]) && is_array($data["headers"]["groups"]) )
{
$groups = $data["headers"]["groups"];
$data_header["multiple"] = (int) ((isset($data["headers"]["multiple"]) ? $data["headers"]["multiple"] : 1));
foreach( $groups as $key => $value )
{
$uid = (int) $value;
$headers_data = $this->_obfuscated_7F8FB584B7A98A8296AE88B197BD94A69487838F90ACB1_($uid, false);
$data_header["data"][] = $headers_data;
}
}
$data_header["manual"] = (isset($data["headers"]["manual"]) && !empty($data["headers"]["manual"]) ? trim($data["headers"]["manual"]) : "");
$this->headers = $data_header;
}
$headers = $this->headers;
$new_headers = array( );
if( 0 < count($headers["data"]) )
{
switch( $headers["multiple"] )
{
case 1:
$rh = array_rand($headers["data"], 1);
$selected = $headers["data"][$rh];
if( 1 < count($headers["data"]) || $selected["rotation"] == 1 )
{
$this->internal_email_rebuild = true;
}
$selected["headers"] = ($selected["rotation"] == 1 ? array( $selected["headers"][array_rand($selected["headers"], 1)] ) : $selected["headers"]);
foreach( $selected["headers"] as $key => $value )
{
$new_headers[] = $value;
}
break;
default:
foreach( $headers["data"] as $k => $h )
{
$selected = $h;
if( $selected["rotation"] == 1 )
{
$this->internal_email_rebuild = true;
}
$selected["headers"] = ($selected["rotation"] == 1 ? array( $selected["headers"][array_rand($selected["headers"], 1)] ) : $selected["headers"]);
foreach( $selected["headers"] as $_k => $_v )
{
$new_headers[] = $_v;
}
}
break;
}
}
foreach( $new_headers as $key => $value )
{
MT::S()->set_extra_header($value["name"], $value["value"]);
}
if( !empty($headers["manual"]) )
{
$c = explode(PHP_EOL, $headers["manual"]);
foreach( $c as $k => $v )
{
$d = explode(":", $v);
if( 1 < count($d) )
{
$___k = trim($d[0]);
$sd = array_shift($d);
$___v = trim(implode(":", $d));
MT::S()->set_extra_header($___k, $___v);
}
}
}
}
/**
* Hacemos el el uso de los MTA's asignados
*
* @param unknown $_this
* Jobs_Send_API
* @param unknown $disconnect
*/
private function _obfuscated_7F9C9395A7B8A8B4ACB6B9A7BEA28AA5AFB292AE96B3A1_(&$_this, &$disconnect)
{
if( !isset($_this->jobdetails["mta"]) )
{
$user =& GetUser();
$mtas = array( );
$forced = $this->_obfuscated_7FA58DAD8AA48EA9B1A08BB4A2BB838E8EB48EA2AFB981_($user->userid);
$forced_mail_settings = $this->_obfuscated_7FB9B09A8786A1A6AF9987929BB7B88CA9ACA0A585B2A1_($user->userid);
$mtas["groups"] = $forced;
$mtas["groups_mail_settings"] = $forced_mail_settings;
$gnames = array( );
foreach( $mtas["groups"] as $key => $value )
{
$group_info = $this->group_info($key);
$gnames[$key] = $group_info[0]["name"];
}
$mtas["group_names"] = $gnames;
$_this->jobdetails["mta"] = $mtas;
}
if( isset($_this->jobdetails["mta"]) )
{
$this->jobdetails = $_this->jobdetails;
$this->_obfuscated_7F98BCBD9683A8A79A90ABB4AAA69482B0BDB899ACBD91_($_this->jobdetails["mta"]);
if( $this->internal_email_rebuild === true )
{
$this->rebuild_mail($_this->Email_API);
}
$this->_obfuscated_7FB39085ABB08FA899AE8C92B58CB58BA284B38BB898A1_($_this->jobdetails["mta"]);
$this->_obfuscated_7F968BA5AB96B8BEB084BB948A99A5A4868DB1B38F8581_($_this);
if( !isset($this->mta) || $this->mta == NULL )
{
$this->mta = $_this->jobdetails["mta"];
$this->mta["sort"] = 2;
$this->mta["current_mta"] = false;
$this->mta["current_cycle_index"] = -1;
}
if( $this->log_send_counter % MTA_ASK_FOR_SETTINGS_AFTER == 0 )
{
$this->mta["objects"] = $this->_obfuscated_7F8D9291B4A09CA8819D9897BCAAB1B18895838B8BA391_();
}
if( 0 < count($this->mta["objects"]) )
{
$switched_mta = $this->_obfuscated_7F98969281BF88998B90BEBC8AB08792A8A1A1A8A7BA91_();
if( $switched_mta )
{
$this->mta["current_mta"] = $switched_mta;
$this->mta["selection"] = array( "mta" => $switched_mta );
$this->_obfuscated_7F858AA39DBE8EA6838FBD829DBF90B2B8A99F8BACB991_($_this);
$this->log_send_counter++;
$GLOBALS["cmta"] = $switched_mta["hostname"];
$this->mta["last_mta"] = $this->mta["current_mta"];
}
}
}
else
{
$this->jobdetails = false;
}
}
private function _obfuscated_7FB4AFA9B08989819A99BBA7BA998F9184B99CB4B5A8B1_()
{
$mta_need_new_connection = (!isset($this->mta["last_mta"]) || $this->mta["last_mta"]["hostname"] != $this->mta["current_mta"]["hostname"] || $this->mta["last_mta"]["username"] != $this->mta["current_mta"]["username"] || $this->mta["last_mta"]["password"] != $this->mta["current_mta"]["password"] || $this->mta["last_mta"]["port"] != $this->mta["current_mta"]["port"] ? true : false);
return $mta_need_new_connection;
}
private function _obfuscated_7F858AA39DBE8EA6838FBD829DBF90B2B8A99F8BACB991_($_this)
{
$this->email_api = $_this->Email_API;
if( $this->mta_need_new_connection() )
{
$_this->Email_API->_Close_Smtp_Connection();
}
$switched_mta = $this->mta["current_mta"];
if( $this->mta_need_new_connection() )
{
$switched_mta["hostname"] = $this->_obfuscated_7FBE8A948395B3909E8AB791B3AABBB3BA8DBE848AB1A1_($switched_mta["hostname"]);
$_this->Email_API->SetSmtp(trim($switched_mta["hostname"]), trim($switched_mta["username"]), trim($switched_mta["password"]), trim($switched_mta["port"]));
}
$rebuild_mail = false;
if( isset($this->mta["groups_mail_settings"][(int) $switched_mta["mta_group"]]) )
{
$mail_settings = $this->mta["groups_mail_settings"][(int) $switched_mta["mta_group"]];
if( $mail_settings["from"] == true && !empty($switched_mta["mail_from"]) )
{
if( $_this->Email_API->FromAddress != trim($switched_mta["mail_from"]) )
{
$_this->Email_API->Set("FromAddress", trim($switched_mta["mail_from"]));
$GLOBALS["addon_mta_umf"] = true;
$rebuild_mail = true;
}
}
else
{
$GLOBALS["addon_mta_umf"] = false;
}
if( $mail_settings["from"] == true && !empty($switched_mta["mail_from"]) )
{
if( $_this->Email_API->FromName != trim($switched_mta["mail_from_name"]) && !empty($switched_mta["mail_from_name"]) )
{
$_this->Email_API->Set("FromName", trim($switched_mta["mail_from_name"]));
$GLOBALS["addon_mta_umf"] = true;
$rebuild_mail = true;
}
}
else
{
$GLOBALS["addon_mta_umf"] = false;
}
if( $mail_settings["reply"] == true && !empty($switched_mta["mail_reply"]) )
{
if( $_this->Email_API->ReplyTo != trim($switched_mta["mail_reply"]) )
{
$_this->Email_API->Set("ReplyTo", trim($switched_mta["mail_reply"]));
$GLOBALS["addon_mta_umr"] = true;
$rebuild_mail = true;
}
}
else
{
$GLOBALS["addon_mta_umr"] = false;
}
if( $mail_settings["bounce"] == true && !empty($switched_mta["mail_bounce"]) )
{
if( $_this->Email_API->BounceAddress != trim($switched_mta["mail_bounce"]) )
{
$_this->Email_API->Set("BounceAddress", trim($switched_mta["mail_bounce"]));
$GLOBALS["addon_mta_umb"] = true;
$rebuild_mail = true;
}
}
else
{
$GLOBALS["addon_mta_umb"] = false;
}
}
else
{
$GLOBALS["addon_mta_umf"] = false;
$GLOBALS["addon_mta_umr"] = false;
$GLOBALS["addon_mta_umb"] = false;
$GLOBALS["addon_mta_umn"] = false;
}
if( $rebuild_mail == true || $this->internal_email_rebuild === true )
{
$this->rebuild_mail($_this->Email_API);
}
}
private function _obfuscated_7F83889496A984BEB8AE9FB2AD92889F909EBEA3A0B291_($mail_object)
{
$log_path = IEM_ADDONS_PATH . "/mta/install/backup/maillog.txt";
$status = ($mail_object->Error ? false : true);
$t = microtime() - $this->timer;
$data = (($status ? "[SUCCESS]" : "[FAILED]")) . "[" . $mail_object->_Recipients[0]["address"] . "]" . "[" . $t . " ms]" . (($status ? "" : "[" . $mail_object->Error . "]"));
file_put_contents($log_path, $data . PHP_EOL, FILE_APPEND);
$this->timer = microtime();
}
public function iem_mta_schedule_details($details)
{
return $this->_obfuscated_7F97B197AFB28C95A7BD9DA495A3B193AEB5BDBE8C9681_($details);
}
/**
* Este metodo muestra informacion del MTA en la pagina Schedule
*
* @param [array] $details
* [detalles del MTA]
* @return [array] [description]
*/
private function _obfuscated_7F97B197AFB28C95A7BD9DA495A3B193AEB5BDBE8C9681_($details)
{
$job_details = unserialize($details["jobdetails"]);
if( MT::S()->addon_enabled("spins") )
{
require_once(IEM_ADDONS_PATH . "/spins/api/spins.php");
$_api = Spins_API::Singleton();
if( method_exists($_api, "iem_schedule_info") )
{
$_api->iem_schedule_info($details);
}
}
$real_send_size = $this->_obfuscated_7F979BACAAA0BBB3838AB4B79497B68181918FBB919481_($details["jobid"]);
$job_details["SendSize"] = (isset($real_send_size["sendsize"]) ? $real_send_size["sendsize"] : $job_details["SendSize"]);
$ar = (isset($job_details["mta"]) && isset($job_details["mta"]["resend"]) ? $job_details["mta"]["resend"]["times"] : 0);
MT::S()->mail_info(GetLang("Addon_mta_automatic_resend"), ($ar == 0 ? GetLang("Addon_mta_automatic_resend_disabled") : ($ar == -1 ? GetLang("Addon_mta_automatic_resend_100_success") : $ar . " " . GetLang("Addon_mta_automatic_resend_times") . ", " . GetLang("Addon_mta_automatic_resend_actually") . ": <b>" . $job_details["mta"]["resend"]["current_time"] . "</b> of <b>" . $ar . "</b>")));
$ar = (isset($job_details["mta"]) && isset($job_details["mta"]["reschedule"]) ? $job_details["mta"]["reschedule"]["times"] : 0);
MT::S()->mail_info(GetLang("Addon_mta_automatic_reschedule"), ($ar == 0 ? GetLang("Addon_mta_automatic_resend_disabled") : ($ar == -1 ? GetLang("Addon_mta_automatic_reschedule_infinity") : $ar . " " . GetLang("Addon_mta_automatic_resend_times") . ", " . GetLang("Addon_mta_automatic_resend_actually") . ": <b>" . $job_details["mta"]["reschedule"]["current_time"] . "</b> of <b>" . $ar . "</b>")));
$ji = (isset($job_details["mta"]) && isset($job_details["mta"]["pmtajobid"]) ? $job_details["mta"]["pmtajobid"]["enabled"] : 0);
$pmtajobid = $this->_obfuscated_7F99AF82819685B98AA688BEA182B7AF98A0B381A2A791_($details["jobid"]);
MT::S()->mail_info(GetLang("Addon_mta_pmta_jobid_add"), ($ji == 0 ? "No" : "Yes" . " <b>[</b>" . $pmtajobid . "<b>]</b>"));
MT::S()->mail_info(GetLang("Addon_mta_custom_headers"), "Yes");
if( isset($job_details["mta"]) )
{
if( isset($job_details["mta"]["groups"]) )
{
if( count($job_details["mta"]["groups"]) == 0 )
{
$job_details["mta"] = false;
}
}
else
{
$job_details["mta"] = false;
}
}
$this->template_system->Assign("mail_info", MT::S()->mail_info());
$this->template_system->Assign("job_id", $details["jobid"]);
$this->template_system->Assign("job_details", $job_details);
$GLOBALS["MTA_SCHEDULE_INFO_TITLE"] = $this->template_system->ParseTemplate("iem_mta_schedule_info_title", true);
$GLOBALS["MTA_SCHEDULE_INFO_CONTENT"] = $this->template_system->ParseTemplate("iem_mta_schedule_info_content", true);
}
public function iem_mta_stats_details_title()
{
if( defined("MTA_SHOW_INBOX") && MTA_SHOW_INBOX == true )
{
$style_datatable = $this->template_system->ParseTemplate("css", true);
if( defined("MTA_SHOW_INBOX_CONVERSIONS") && MTA_SHOW_INBOX_CONVERSIONS == true )
{
$this->conv = true;
}
$lp = "
<script type='text/javascript'>
\$(function(){
\$(\"#conversions\").parent().parent().parent().prev().before('<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" class=\"DashboardPanel\"><tr><td class=\"PanelContent\" valign=\"top\" style=\"height:auto;\"><div id=\"GraphPanel\"><div class=\"PanelHeaderBox1 IndexPage_GettingStarted_Header\" style=\"padding:0px 0px 10px 5px;\"><div id=\"HomeStartTitle\">All Conversions</div></div><hr><div id=\"ct\"></div></div></td></tr></table>');
\$.post( \"index.php?Page=Addons&Addon=mta&Action=interface&AJAX=1\",{do:\"conversions_preload\"}, function( data ) {
\$(\"#ct\").html(data);
});
});
</script>
<link rel=\"stylesheet\" href=\"addons/rbp/third/jq/css/jquery-ui.css\">
<link rel=\"stylesheet\" type=\"text/css\" href=\"addons/rbp/third/datatables/css/jquery.dataTables.css\">
<script src=\"addons/installer/third/jquery/latest.js\"></script>
<script type=\"text/javascript\" language=\"javascript\" src=\"addons/rbp/third/datatables/js/jquery.dataTables.js\"></script>" . $style_datatable;
$GLOBALS["MTA_STATS_INFO_TITLE"] = $this->template_system->ParseTemplate("iem_mta_stats_info_title", true);
}
else
{
return NULL;
}
}
public function iem_mta_stats_details($statdetails)
{
return $this->_obfuscated_7F9E818FA8B3C0AEA2A6A186AB8CAD87A7A5BE9F8AA3B1_($statdetails);
}
/**
* Este metodo muestra informacion del MTA en la pagina Schedule
*
* @param [type] $details
* [detalles del MTA]
* @return [type] [description]
*/
private function _obfuscated_7F9E818FA8B3C0AEA2A6A186AB8CAD87A7A5BE9F8AA3B1_($statdetails)
{
if( defined("MTA_SHOW_INBOX") && MTA_SHOW_INBOX == true )
{
$mta = $this->_obfuscated_7FA3B4958F9883C0BB91BDBBB6858F908FA8AE9FB68981_($statdetails["statid"]);
$opens = $this->_obfuscated_7FA0909591819C8995BC8BA792B0819C8AACAE90ABB9B1_($statdetails["statid"], true);
$clicks = $this->_obfuscated_7F89A2A783C092A5B3AAA9B1A3ADA68490A49187BAACA1_($statdetails["statid"]);
$open_percent = (0 < $opens ? number_format((int) ($opens + (int) $statdetails["unsubscribecount"]) / (int) $statdetails["multipartrecipients"] * 100, 2) : 0);
$click_percent = (0 < $clicks ? number_format((int) ($clicks + (int) $statdetails["unsubscribecount"]) / (int) $statdetails["multipartrecipients"] * 100, 2) : 0);
$this->template_system->Assign("opens", number_format($opens));
$this->template_system->Assign("opens_percent", number_format($open_percent, 2));
$this->template_system->Assign("clicks", number_format($clicks));
$this->template_system->Assign("clicks_percent", number_format($click_percent, 2));
$this->template_system->Assign("sending_time", (0 < $statdetails["finishtime"] ? $this->_obfuscated_7F9D81B1ABAA9C9F94A4A2BEA19E9DAE96B89488B8AD91_($statdetails["finishtime"] - $statdetails["starttime"]) : GetLang("NotFinishedSending")));
$this->template_system->Assign("mta", $mta);
if( $this->conv == true )
{
$c = $this->_obfuscated_7F8383BEBBAAB39D8B91B89B84A991BBBCBEBD90A29491_($statdetails["statid"]);
}
$mtas = ($mta == false || is_array($mta["group_names"]) && count($mta["group_names"]) == 0 ? "Default" : implode("<br>", $mta["group_names"]));
$this->template_system->Assign("stat_id", $statdetails["statid"]);
$GLOBALS["MTA_STATS_INFO_CONTENT"] = $this->template_system->ParseTemplate("iem_mta_stats_info_content", true);
}
else
{
return NULL;
}
}
/**
* TimeDifference
* Returns the time difference in an easy format / unit system (eg how many seconds, minutes, hours etc).
*
* @param Int $timedifference
* Time difference as an integer to transform.
*
* @return String Time difference plus units.
*/
public function _obfuscated_7F9D81B1ABAA9C9F94A4A2BEA19E9DAE96B89488B8AD91_($timedifference)
{
if( $timedifference < 60 )
{
if( $timedifference == 1 )
{
$timechange = GetLang("TimeTaken_Seconds_One");
}
else
{
$timechange = sprintf(GetLang("TimeTaken_Seconds_Many"), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($timedifference, 0));
}
}
if( 60 <= $timedifference && $timedifference < 3600 )
{
$num_mins = floor($timedifference / 60);
$secs = floor($timedifference % 60);
if( $num_mins == 1 )
{
$timechange = GetLang("TimeTaken_Minutes_One");
}
else
{
$timechange = sprintf(GetLang("TimeTaken_Minutes_Many"), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($num_mins, 0));
}
if( 0 < $secs )
{
$timechange .= ", " . sprintf(GetLang("TimeTaken_Seconds_Many"), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($secs, 0));
}
}
if( 3600 <= $timedifference )
{
$hours = floor($timedifference / 3600);
$mins = floor($timedifference % 3600) / 60;
if( $hours == 1 )
{
if( $mins == 0 )
{
$timechange = GetLang("TimeTaken_Hours_One");
}
else
{
$timechange = sprintf(GetLang("TimeTaken_Hours_One_Minutes"), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($mins, 0));
}
}
if( 1 < $hours )
{
if( $mins == 0 )
{
$timechange = sprintf(GetLang("TimeTaken_Hours_Many"), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($hours, 0));
}
else
{
$timechange = sprintf(GetLang("TimeTaken_Hours_Many_Minutes"), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($hours, 0), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($mins, 0));
}
}
}
return $timechange;
}
/**
* FormatNumber
* Formats the number passed in according to language variables and returns the value.
*
* @param Int $number
* Number to format
* @param Int $decimalplaces
* Number of decimal places to format to
*
* @see GetLang
*
* @return String The number formatted
*/
public function _obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($number = 0, $decimalplaces = 0)
{
return number_format((double) $number, $decimalplaces, GetLang("NumberFormat_Dec"), GetLang("NumberFormat_Thousands"));
}
public function _obfuscated_7F8383BEBBAAB39D8B91B89B84A991BBBCBEBD90A29491_($statid)
{
$row = $this->db->Fetch($this->db->Query("SELECT COUNT(conversion_id) as total FROM " . SENDSTUDIO_TABLEPREFIX . "conversions WHERE c_statid='" . $statid . "'"));
return (int) $row["total"];
}
public function _obfuscated_7FA0909591819C8995BC8BA792B0819C8AACAE90ABB9B1_($statid, $unique = false)
{
$row = $this->db->Fetch($this->db->Query("SELECT COUNT(DISTINCT subscriberid) as total FROM " . SENDSTUDIO_TABLEPREFIX . "stats_emailopens WHERE statid='" . $statid . "'"));
return (int) $row["total"];
}
public function _obfuscated_7F89A2A783C092A5B3AAA9B1A3ADA68490A49187BAACA1_($statid)
{
$row = $this->db->Fetch($this->db->Query("SELECT COUNT(clickid) as total FROM " . SENDSTUDIO_TABLEPREFIX . "stats_linkclicks WHERE statid='" . $statid . "'"));
return (int) $row["total"];
}
public function _obfuscated_7FA3B4958F9883C0BB91BDBBB6858F908FA8AE9FB68981_($statid = 0)
{
$result = $this->db->Query("SELECT jobid FROM " . SENDSTUDIO_TABLEPREFIX . "stats_newsletters WHERE statid='" . $statid . "'");
$row = $this->db->Fetch($result);
if( !$row )
{
return false;
}
$result = $this->db->Query("SELECT jobdetails FROM " . SENDSTUDIO_TABLEPREFIX . "jobs WHERE jobid='" . $row["jobid"] . "'");
$row = $this->db->Fetch($result);
if( !$row )
{
return false;
}
$job_details = unserialize($row["jobdetails"]);
if( !isset($job_details["mta"]) )
{
return false;
}
return $job_details["mta"];
}
public function _obfuscated_7F99AF82819685B98AA688BEA182B7AF98A0B381A2A791_($jobid = 0)
{
$d = str_replace(".", "_", MT::S()->local_domain());
return (string) $d . "-" . $jobid;
}
public function _obfuscated_7F979BACAAA0BBB3838AB4B79497B68181918FBB919481_($jobid = 0)
{
$jobid = (int) $jobid;
if( $jobid <= 0 )
{
return array( );
}
$query = "SELECT COUNT(statid) AS statcount, SUM(htmlrecipients + textrecipients + multipartrecipients) AS totalsent, SUM(sendsize) AS sendsize FROM " . SENDSTUDIO_TABLEPREFIX . "jobs j, " . SENDSTUDIO_TABLEPREFIX . "stats_newsletters n WHERE j.jobid='" . $jobid . "' AND n.queueid=j.queueid";
$result = $this->db->Query($query);
$row = $this->db->Fetch($result);
if( 1 < $row["statcount"] )
{
$row["sendsize"] = (int) $row["sendsize"] / $row["statcount"];
}
return array( "totalsent" => $row["totalsent"], "sendsize" => $row["sendsize"] );
}
public function upgrade()
{
$jobs = $this->_obfuscated_7FB5A399A0ACBB8C88A888ADA583B0B8A88D85B2A7AA91_();
foreach( $jobs as $key => $value )
{
$jobdetails = unserialize($value["jobdetails"]);
if( isset($jobdetails["mta"]) && isset($jobdetails["mta"]["mtas_uid"]) )
{
$new_details = $this->_obfuscated_7F8CB981BAA8AEA3A285BD8B92A89681A0B4898699B691_($jobdetails);
$jobdetails["mta"] = $new_details;
$q = "UPDATE " . SENDSTUDIO_TABLEPREFIX . "jobs SET jobdetails='" . $this->db->Quote(serialize($jobdetails)) . "'";
$result = $this->db->Query($q);
}
else
{
if( isset($jobdetails["mta"]) && isset($jobdetails["mta"]["groups"]) )
{
}
}
}
}
/**
* Upgrade from 3.2 to 3.4
*/
public function _obfuscated_7F8CB981BAA8AEA3A285BD8B92A89681A0B4898699B691_($jobdetails = array( ))
{
$mtas = array( );
$groups = array( );
$mtas["groups_mail_settings"] = array( );
$mtas["group_names"] = array( );
foreach( $jobdetails["mta"]["data"] as $group_key => $group )
{
$groups[$group_key] = array( );
$mtas["groups_mail_settings"][$group_key] = array( "from" => true, "reply" => true, "bounce" => true );
$mtas["group_names"][$group_key] = $group["group"]["name"];
foreach( $group["mtas"] as $a => $b )
{
$groups[$group_key][] = $b;
}
}
$mtas["groups"] = $groups;
return $mtas;
}
public function _obfuscated_7FB5A399A0ACBB8C88A888ADA583B0B8A88D85B2A7AA91_()
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "jobs WHERE jobtype='send'";
$result = $this->db->Query($query);
$data = array( );
while( $row = $this->db->Fetch($result) )
{
$data[] = $row;
}
return $data;
}
public function _obfuscated_7F99AAA7A29A8B9DB4A984B7A59795AFB384B0AB889AA1_($key = "mta_b", $type = "start")
{
if( !isset($GLOBALS["bench_" . $key]) && $type != "start" )
{
return false;
}
if( $type == "start" )
{
$GLOBALS["bench_" . $key] = array( "start" => time(), "calls" => 0 );
}
else
{
if( $type == "call" )
{
$GLOBALS["bench_" . $key]["calls"]++;
}
else
{
if( $type == "end" )
{
$GLOBALS["bench_" . $key]["end"] = time();
$GLOBALS["bench_" . $key]["time"] = $GLOBALS["bench_" . $key]["end"] - $GLOBALS["bench_" . $key]["start"];
return $GLOBALS["bench_" . $key];
}
}
}
}
private function _obfuscated_7F90BF8E8BA8B2BC9C889AA88793A3B49D9996A0A084B1_($str)
{
$str = str_replace("
", "
", $str);
$str = str_replace("
", "
", $str);
$str = str_replace("
", $this->LE, $str);
return $str;
}
/**
* Prueba del SMTP
*
* @param array $data
* [array]
* @param boolean $mta
* [false]
* @return [type] [description]
*/
public function _obfuscated_7FBBB28D95AC9AA88D8FB985C0BBA4A88D9FB4AE9685B1_($data = array( ), $mta = false)
{
$user = GetUser();
$data["hostname"] = $this->_obfuscated_7FBE8A948395B3909E8AB791B3AABBB3BA8DBE848AB1A1_($data["hostname"]);
$user_email = $user->Get("emailaddress");
$sf = new SendStudio_Functions();
$email_test = (empty($data["mail_test"]) ? MTA_DEFAULT_TEST_MAIL : $data["mail_test"]);
$subject = GetLang("TestSendingSubject");
$text = GetLang("TestSendingEmail");
$email_api = $sf->GetApi("Email");
$smtp = false;
if( !empty($data["hostname"]) )
{
$email_api->Set("SMTPServer", trim($data["hostname"]));
$smtp = true;
}
if( !empty($data["username"]) )
{
$email_api->Set("SMTPUsername", trim($data["username"]));
}
if( !empty($data["password"]) )
{
$email_api->Set("SMTPPassword", trim($data["password"]));
}
if( !empty($data["port"]) )
{
$email_api->Set("SMTPPort", urldecode($data["port"]));
}
$email_api->Set("Subject", $subject);
$email_api->Set("CharSet", SENDSTUDIO_CHARSET);
$sep = (defined("MTA_MAILFROM_SEPARATOR") ? MTA_MAILFROM_SEPARATOR : ">");
$fromaddress = (!empty($data["mail_from"]) ? $data["mail_from"] : $user_email);
$fromname = $user->Get("fullname");
$fn = explode($sep, $fromaddress);
if( 1 < count($fn) )
{
$fromname = trim($fn[0]);
$fromaddress = trim($fn[1]);
}
$email_api->Set("FromAddress", $fromaddress);
$email_api->Set("ReplyTo", (!empty($data["mail_reply"]) ? $data["mail_reply"] : $user_email));
$email_api->Set("BounceAddress", (!empty($data["mail_bounce"]) ? $data["mail_bounce"] : $user_email));
$email_api->Set("FromName", $fromname);
$email_api->Set("Multipart", true);
$email_api->AddBody("text", $text . "
Format: Text");
$email_api->AddBody("html", $text . " <BR> Format: HTML");
$email_api->AddRecipient($email_test, "", "m");
$cn = explode("@", $email_api->FromAddress);
$send_result = $email_api->Send();
if( $mta )
{
$this->_obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($mta, 1, (isset($send_result["success"]) && 0 < $send_result["success"] ? "sent" : "failed"), time());
}
$result = array( );
$result["success"] = $send_result["success"];
$result["mail_test"] = $email_test;
if( isset($send_result["success"]) && 0 < $send_result["success"] )
{
$result["msg"] = vsprintf(GetLang("TestEmailSent"), $email_test);
}
else
{
if( $smtp )
{
$failure = array_shift($send_result["fail"]);
$result["msg"] = sprintf(GetLang("TestEmailNotSent"), $email_test, htmlspecialchars($failure[1], ENT_QUOTES, SENDSTUDIO_CHARSET));
}
else
{
$result["msg"] = sprintf(GetLang("TestEmailNotSent"), $email_test, GetLang("ProblemWithLocalMailServer"));
}
}
return $result;
}
public function GUI($do = "nothing", $params = array( ), $tpl = NULL)
{
$this->url_params = $params;
switch( $do )
{
case "conversions_preload":
$tpl->ParseTemplate("conversions_preload");
break;
case "conversion_load":
$table = SENDSTUDIO_TABLEPREFIX . "conversions";
$primaryKey = "conversion_id";
$columns = array( array( "db" => "date", "dt" => 0, "process" => " FROM_UNIXTIME(date) as date" ), array( "db" => "c_subscriberid", "dt" => 1, "process" => " (SELECT emailaddress from " . SENDSTUDIO_TABLEPREFIX . "list_subscribers WHERE `subscriberid`=c_subscriberid LIMIT 1 ) as c_subscriberid " ), array( "db" => "lead_id", "dt" => 2 ), array( "db" => "affid", "dt" => 3 ), array( "db" => "campid", "dt" => 4 ), array( "db" => "oid", "dt" => 5 ), array( "db" => "cid", "dt" => 6 ), array( "db" => "price", "dt" => 7 ), array( "db" => "c_listid", "dt" => 8, "process" => "(SELECT name FROM " . SENDSTUDIO_TABLEPREFIX . "lists WHERE listid=c_listid LIMIT 1) as c_listid" ), array( "db" => "c_statid", "dt" => 9 ), array( "db" => "subid", "dt" => 10, "process" => "(SELECT data from email_subscribers_data WHERE fieldid=(SELECT fieldid FROM email_customfields WHERE name=\"subid\" LIMIT 1) AND subscriberid=c_subscriberid) as subid" ) );
$sql_details = array( "user" => SENDSTUDIO_DATABASE_USER, "pass" => SENDSTUDIO_DATABASE_PASS, "db" => SENDSTUDIO_DATABASE_NAME, "host" => SENDSTUDIO_DATABASE_HOST );
echo json_encode(_obfuscated_7F99BF81BAB4B1C0A781B9B88D9CAA9AAFA0908C878AB1_::_obfuscated_7F8DC0B4AEBFA081A099938A9BABA88BAC879285BB8C91_($_POST, $sql_details, $table, $primaryKey, $columns));
break;
default:
break;
}
}
/**
* Este es todo el handler para las peticiones
*
* @param [type] $n
* [tipo de proceso]
* @return [type] [Template]
*/
public function cf($n)
{
switch( $n )
{
case "manager":
$data = $this->group_info();
$data_json = json_encode($data);
$hc = count($data) * 70;
$hc = (!$hc ? 100 : $hc);
$hc = $hc + 70;
$this->template_system->Assign("groups", $data, true);
$this->template_system->Assign("height_count", $hc, true);
$this->template_system->Assign("data_json", $data_json);
$this->template_system->Assign("FlashMessages", GetFlashMessages(), false);
$this->template_system->ParseTemplate("main");
break;
case "group":
$id = (!empty($_GET["id"]) ? $_GET["id"] : 0);
$f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true);
if( $id != 0 && $f["exist"] == false )
{
FlashMessage(GetLang("Addon_mta_grup_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=add_group");
}
$mtas = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($id, false, false, false, false, true, true);
$usergroups = $this->_obfuscated_7F8AADA48384B38AAABDA6A8A9AB86ABABA0B3B6ABBAA1_();
foreach( $usergroups as $k => $v )
{
foreach( $v["users"] as $_k => $_v )
{
$usergroups[$k]["users"][$_k]["mta_user_in_group"] = (in_array($_v["userid"], $f["data"]["users"]) ? 1 : 0);
}
}
$mta_stats = array( );
foreach( $mtas as $k => $v )
{
}
$gc = count($mtas);
$this->template_system->Assign("group_users", $group_users, true);
$this->template_system->Assign("mtas", $mtas, true);
$this->template_system->Assign("gcmtas", $gc, true);
$this->template_system->Assign("usergroups", $usergroups, true);
$this->template_system->Assign("group_raw", $f["raw"], true);
$this->template_system->Assign("group", $f["data"], true);
$this->template_system->Assign("FlashMessages", GetFlashMessages(), false);
$this->template_system->ParseTemplate("group");
break;
case "ajax":
if( $_SERVER["REQUEST_METHOD"] == "POST" )
{
$action = $_POST["do"];
$uid = (!empty($_POST["uid"]) ? $_POST["uid"] : 0);
$uid = (int) $uid;
switch( $action )
{
case "ajax_bulk_test_load_form":
$this->template_system->assign("ajax", 1);
$this->template_system->assign("do", "display_form");
$mtas = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($uid, true);
$mta_uids = array( );
foreach( $mtas as $key => $value )
{
$mta_uids[] = $value["uid"];
}
$this->template_system->assign("mtas", $mtas);
$form = $this->template_system->ParseTemplate("test_all_mta_accounts", true);
echo json_encode(array( "table" => $form, "uids" => $mta_uids ));
break;
case "mta_test_simple":
$test_send_to = (!empty($_POST["test_send_to"]) ? $_POST["test_send_to"] : "[email protected]");
MT_TOOLS::S()->flush_session();
$mta_details = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($uid);
$mta_details["data"]["mail_test"] = $test_send_to;
$result = $this->_obfuscated_7FBBB28D95AC9AA88D8FB985C0BBA4A88D9FB4AE9685B1_($mta_details["data"]);
if( $result["success"] )
{
$message = "<span style='color:green;font-weight:bold;'>SUCCESS: </span><span style='color:#749C11;'>Email sent to " . $test_send_to . "</span>";
}
else
{
$message = "<span style='color:red;font-weight:bold;'>FAILED:</span> <span style='color:#DB4900;'>" . $result["msg"] . "</span>";
}
echo json_encode(array( "result" => $result["success"], "message" => $message ));
break;
case "header_group_list":
$this->template_system->Assign("do", "h_groups_list");
$this->template_system->Assign("headers", $this->_obfuscated_7F9B8C819FAD84AEB49E89AB9DA8A896B2B18892AAAA91_(), true);
$this->template_system->ParseTemplate("headers");
break;
case "header_group_values":
if( $this->_obfuscated_7FBE8BBAAB9DA59396C0B4A0A8858EA48785AC82AE8A81_($uid) )
{
$data = $this->_obfuscated_7F8FB584B7A98A8296AE88B197BD94A69487838F90ACB1_($uid);
}
else
{
$data = array( );
$data["name"] = "Header-" . time();
$data["status"] = 1;
$data["rotation"] = 0;
$data["headers"] = array( array( "name" => "Test", "value" => "Test-Value" ) );
}
$this->template_system->Assign("do", "h_values");
$this->template_system->Assign("data", $data, true);
$this->template_system->ParseTemplate("headers");
break;
case "header_group_delete":
if( $this->_obfuscated_7FBE8BBAAB9DA59396C0B4A0A8858EA48785AC82AE8A81_($uid) )
{
$this->_obfuscated_7FB1B3ADA6B09F848D9596AEB682C08CB39F95AFB5BE81_($uid);
}
break;
case "header_group_mass":
$hdo = (isset($_POST["headers_action"]) ? $_POST["headers_action"] : "none");
$uids = (isset($_POST["header_uids"]) ? $_POST["header_uids"] : array( ));
$uids = (is_array($uids) ? $uids : array( ));
foreach( $uids as $key => $value )
{
if( !$this->_obfuscated_7FBE8BBAAB9DA59396C0B4A0A8858EA48785AC82AE8A81_((int) $value) )
{
continue;
}
switch( $hdo )
{
case "delete":
$this->_obfuscated_7FB1B3ADA6B09F848D9596AEB682C08CB39F95AFB5BE81_($value);
break;
case "active":
$this->_obfuscated_7FB4BCAD969F969E9C81AD8284BB9B8EAEC0AE91B79581_($value, true);
break;
case "inactive":
$this->_obfuscated_7FB4BCAD969F969E9C81AD8284BB9B8EAEC0AE91B79581_($value, false);
break;
case "rotation_on":
$this->_obfuscated_7F9399B087A78E82A0AEA7A1A1A9A79C8FA5949C8AB6A1_($value, true);
break;
case "rotation_off":
$this->_obfuscated_7F9399B087A78E82A0AEA7A1A1A9A79C8FA5949C8AB6A1_($value, false);
break;
default:
break;
}
}
break;
case "header_group_save":
$data = array( );
$rd = (isset($_POST["name"]) && is_array($_POST["name"]) ? $_POST["name"] : array( ));
$vd = (isset($_POST["value"]) && is_array($_POST["value"]) ? $_POST["value"] : array( ));
foreach( $rd as $key => $value )
{
if( trim($value) == "" )
{
continue;
}
$data[] = array( "name" => $value, "value" => $vd[$key] );
}
$name = (isset($_POST["header_name"]) ? $_POST["header_name"] : "Header-NoName");
$status = (isset($_POST["status"]) ? $_POST["status"] : 1);
$rotation = (isset($_POST["rotation"]) ? $_POST["rotation"] : 0);
if( $this->_obfuscated_7FBE8BBAAB9DA59396C0B4A0A8858EA48785AC82AE8A81_($uid) )
{
$this->_obfuscated_7FB19F9EB7AEBFA69690B8A09583BFA18D98AE9DA991A1_($uid, $name, $data, $status, $rotation);
}
else
{
$this->_obfuscated_7F84AE8699AE8588A8A795B1B3AB8D9D95C0AB938F8391_($name, $data, $status, $rotation);
}
break;
case "header_group_change_status":
$value = (int) ((isset($_POST["value"]) ? $_POST["value"] : 0));
$this->_obfuscated_7FB4BCAD969F969E9C81AD8284BB9B8EAEC0AE91B79581_($uid, ($value ? true : false));
break;
case "header_group_change_rotation":
$value = (int) ((isset($_POST["value"]) ? $_POST["value"] : 0));
$this->_obfuscated_7F9399B087A78E82A0AEA7A1A1A9A79C8FA5949C8AB6A1_($uid, ($value ? true : false));
break;
case "mta_stat":
$mta = (int) ((!empty($_POST["mta"]) ? $_POST["mta"] : 0));
$data = $this->_obfuscated_7F95A290859C89A5849892A5A3AE89AFBBAE90C0BF9BB1_($mta, 20, "daily", "previous", time());
echo json_encode($data);
break;
case "mta_test":
$mta = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($uid);
if( $mta["exist"] )
{
$result = $this->_obfuscated_7FBBB28D95AC9AA88D8FB985C0BBA4A88D9FB4AE9685B1_(array_merge($mta["data"], $_POST), $mta["data"]["uid"]);
echo json_encode($result);
}
else
{
echo json_encode(array( "msg" => "mta not found" ));
}
break;
case "mta_modify":
$mta = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($uid);
if( $mta["exist"] )
{
$result = $this->_obfuscated_7F92AA8889918FB18B82AF90BFBBB1A592A990ADA39681_($_POST);
echo json_encode(array( "msg" => ($result ? "Saved" : "Failed") ));
}
else
{
echo json_encode(array( "msg" => "mta not found" ));
}
break;
default:
echo json_encode(array( "msg" => "invalid request" ));
break;
}
}
else
{
$action = $_GET["do"];
switch( $action )
{
case "mta_blacklist":
$mta_uid = (int) ((!empty($_GET["id"]) ? $_GET["id"] : 0));
$mta = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($mta_uid);
if( $mta["exist"] )
{
$bl = $this->_obfuscated_7F95ADB185BFB5BB8A9D9D99899886A89CA5AC88A09BA1_($mta_uid, time(), "daily");
$this->template_system->Assign("mta", $mta, true);
$this->template_system->Assign("dnsbl", $bl, true);
$this->template_system->ParseTemplate("mta_blacklist");
}
break;
default:
echo json_encode(array( "msg" => "invalid request" ));
break;
}
}
case "mass-mta":
$group_id = (!empty($_GET["group_id"]) ? $_GET["group_id"] : 0);
$action = (!empty($_POST["mtas_action"]) ? $_POST["mtas_action"] : "none");
$valid_actions = array( "none", "delete", "active", "inactive" );
$mtas = (!empty($_POST["mass_mta"]) ? $_POST["mass_mta"] : array( ));
if( !in_array($action, $valid_actions) || $action == "none" )
{
FlashMessage(GetLang("Addon_mta_mass_invalid_action"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
}
else
{
$affected = 0;
if( $action == "delete" )
{
$affected = $this->_obfuscated_7F9894A7BD90AA94BBA88CA9BBAF89A6BCB19E879781A1_($mtas);
FlashMessage(sprintf(GetLang("Addon_mta_mass_delete_sucess"), $affected), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
}
else
{
if( $action == "active" )
{
$affected = $this->_obfuscated_7FADB3ACAFB1BFBA978597938CA0B295A0B6A3B38D9E91_($mtas);
FlashMessage(sprintf(GetLang("Addon_mta_mass_active_sucess"), $affected), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
}
else
{
if( $action == "inactive" )
{
$affected = $this->_obfuscated_7FABB58B99BDA0BD95BEA3A7AEBF949FA9A0AAB6A8A8B1_($mtas);
FlashMessage(sprintf(GetLang("Addon_mta_mass_inactive_sucess"), $affected), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
}
}
}
}
break;
case "handle-mta":
$group_id = (!empty($_GET["group_id"]) ? $_GET["group_id"] : 0);
$id = (!empty($_GET["id"]) ? $_GET["id"] : 0);
$group = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($group_id, true);
$f = $this->mta_details($group_id, $id, true);
if( $id != 0 && $f["exist"] == false )
{
FlashMessage(GetLang("Addon_mta_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
}
if( $_SERVER["REQUEST_METHOD"] == "POST" )
{
if( isset($_POST["test_smtp"]) )
{
if( isset($_POST["uid"]) )
{
$mta = (int) $_POST["uid"];
}
else
{
$mta = false;
}
$result = $this->_obfuscated_7FBBB28D95AC9AA88D8FB985C0BBA4A88D9FB4AE9685B1_($_POST, $mta);
FlashMessage($result["msg"], (!$result["success"] ? SS_FLASH_MSG_ERROR : SS_FLASH_MSG_SUCCESS), NULL);
$group["data"]["mta_group_name"] = ($group["exist"] == false ? GetLang("Addon_mta_nongrouped") : $group["data"]["mta_group_name"]);
$this->template_system->assign("do", ($f["exist"] == false ? "add" : "update"));
$this->template_system->assign("group", $group["data"], true);
$this->template_system->assign("value", $_POST, true);
$this->template_system->Assign("FlashMessages", GetFlashMessages());
$this->template_system->ParseTemplate("mta_add_mta");
}
else
{
if( $_POST["mta_do"] == "update" )
{
$result = $this->_obfuscated_7F8DA79FB384C09E97B2B3BCA89DB2B8B896AAA5BE8E91_($_POST);
if( $result )
{
FlashMessage(GetLang("Addon_mta_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
}
else
{
FlashMessage(GetLang("Addon_mta_add_failed"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
}
}
else
{
if( $this->_obfuscated_7F93939DA59B8985AEA38A8292AD95A181829B8A81BDB1_($_POST) )
{
FlashMessage(GetLang("Addon_mta_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
}
else
{
FlashMessage(GetLang("Addon_mta_add_failed"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
}
}
}
}
else
{
$group["data"]["mta_group_name"] = ($group["exist"] == false ? GetLang("Addon_mta_nongrouped") : $group["data"]["mta_group_name"]);
$this->template_system->assign("do", ($f["exist"] == false ? "add" : "update"));
$this->template_system->assign("group", $group["data"], true);
$this->template_system->assign("value", $f["data"], true);
$this->template_system->Assign("FlashMessages", GetFlashMessages(), false);
$this->template_system->ParseTemplate("mta_add_mta");
}
break;
case "delete-mta":
$id = (!empty($_GET["id"]) ? $_GET["id"] : 0);
$group_id = (!empty($_GET["group_id"]) ? $_GET["group_id"] : 0);
$f = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($id);
if( $f["exist"] == false )
{
FlashMessage(GetLang("Addon_mta_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
}
else
{
$this->_obfuscated_7FA9C089A0A2AC91BAA7B29581AFBF99A8C0A7A1BCBB81_($id);
FlashMessage(GetLang("Addon_mta_mta_deleted"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
}
break;
case "add-group":
if( $_SERVER["REQUEST_METHOD"] == "POST" )
{
if( $_POST["mta_group_do"] == "update" )
{
$this->_obfuscated_7FACB8A1B18BBA9D95ADBF82A98BAE8AA89A8BAEA08381_($_POST);
$na = $this->db->NumAffected();
FlashMessage(GetLang("Addon_mta_group_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=manager");
}
else
{
$ng = $this->_obfuscated_7FB4BBA8B0BEB192A09086B288A89481989C9F8396A3B1_($_POST);
if( $ng )
{
FlashMessage(GetLang("Addon_mta_group_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $ng);
}
else
{
FlashMessage(GetLang("Addon_mta_group_add_failed"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=manager");
}
}
}
else
{
$id = (!empty($_GET["id"]) ? $_GET["id"] : 0);
$f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true);
if( $id != 0 && $f["exist"] == false )
{
FlashMessage(GetLang("Addon_mta_grup_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=Manager");
}
$this->template_system->assign("do", ($f["exist"] == false ? "add" : "update"));
$this->template_system->assign("value", $f["data"], true);
$this->template_system->ParseTemplate("mta_add_group");
}
break;
case "export-group":
$id = (!empty($_GET["id"]) ? $_GET["id"] : 0);
$f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true);
if( $id != 0 && $f["exist"] == false )
{
FlashMessage(GetLang("Addon_mta_grup_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=manager");
}
$mtas = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($id);
$this->template_system->Assign("mtas", $mtas, true);
$this->template_system->Assign("groupid", $id, true);
$this->template_system->ParseTemplate("group_export");
break;
case "delete-group":
$id = (!empty($_GET["id"]) ? $_GET["id"] : 0);
$f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true);
if( $id != 0 && $f["exist"] == false )
{
FlashMessage(GetLang("Addon_mta_group_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=Manager");
}
else
{
$this->_obfuscated_7FB791A7848890A3969C88B581A389A9BEA0868AA39A81_($id);
FlashMessage(GetLang("Addon_mta_group_deleted"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=Manager");
}
break;
case "add-mta-bulk":
if( $_SERVER["REQUEST_METHOD"] == "POST" )
{
if( !empty($_POST["bulk"]) && isset($_POST["mta_group_uid"]) )
{
$group = (int) $_POST["mta_group_uid"];
$data = trim($_POST["bulk"]);
$mtas = explode(PHP_EOL, $data);
foreach( $mtas as $k => $v )
{
$mta = explode("|", trim($v));
$mta_data = array( "hostname" => trim($mta[0]), "username" => trim($mta[1]), "password" => trim($mta[2]), "port" => (empty($mta[3]) ? ADDON_MTA_DEFAULT_SMTP_PORT : $mta[3]), "name" => (empty($mta[4]) ? $mta[0] : $mta[4]), "mail_from" => $mta[5], "mail_reply" => $mta[6], "mail_bounce" => $mta[7], "mail_test" => $mta[8], "mta_group_uid" => $group );
$result = $this->_obfuscated_7F93939DA59B8985AEA38A8292AD95A181829B8A81BDB1_($mta_data);
}
FlashMessage(GetLang("Addon_mta_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group);
}
else
{
if( isset($_POST["mta_group_uid"]) )
{
$group = (int) $_POST["mta_group_uid"];
FlashMessage(GetLang("Addon_mta_add_empty"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group);
}
else
{
FlashMessage(GetLang("Addon_mta_add_empty"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=manager");
}
}
}
break;
case "process":
if( $_SERVER["REQUEST_METHOD"] == "POST" )
{
$action = (!empty($_POST["do"]) ? $_POST["do"] : "none");
$data = (!empty($_POST["data"]) ? $_POST["data"] : array( ));
switch( $action )
{
case "mass_group":
$action = (!empty($data["action"]) ? $data["action"] : "none");
$valid_actions = array( "none", "delete", "active", "inactive" );
$groups = (!empty($data["groups"]) ? $data["groups"] : array( ));
if( !in_array($action, $valid_actions) || $action == "none" )
{
FlashMessage(GetLang("Addon_mta_mass_invalid_action"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
}
else
{
$affected = 0;
$mtas = array( );
foreach( $groups as $key => $value )
{
$m = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($value, true);
foreach( $m as $akey => $avalue )
{
$mtas[] = $avalue["uid"];
}
}
if( $action == "delete" )
{
foreach( $groups as $key => $id )
{
$f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true);
if( $id != 0 && $f["exist"] == false )
{
}
else
{
$this->_obfuscated_7FB791A7848890A3969C88B581A389A9BEA0868AA39A81_($id);
}
}
}
else
{
if( $action == "active" )
{
$affected = $this->_obfuscated_7FADB3ACAFB1BFBA978597938CA0B295A0B6A3B38D9E91_($mtas);
}
else
{
if( $action == "inactive" )
{
$affected = $this->_obfuscated_7FABB58B99BDA0BD95BEA3A7AEBF949FA9A0AAB6A8A8B1_($mtas);
}
}
}
}
FlashMessage(GetLang("Addon_mta_group_modified"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=manager");
break;
case "group_assign_user":
$id = (!empty($data["group_uid"]) ? $data["group_uid"] : 0);
$f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true);
if( $f["exist"] == false )
{
FlashMessage(GetLang("Addon_mta_group_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=manager");
}
else
{
$users = (empty($data["users"]) ? array( ) : $data["users"]);
$f = ((int) empty($data["force"]) ? 0 : $data["force"]);
$fms = ((int) empty($data["force_ms"]) ? 0 : $data["force_ms"]);
$users = (empty($data["users"]) ? array( ) : $data["users"]);
$this->_obfuscated_7FA7B6A0B1BB97968DB4B99E8D8FB5AD9887988BBCAA81_($id, $users, $f, $fms);
FlashMessage(GetLang("Addon_mta_group_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $id);
}
break;
case "group_settings":
$id = (!empty($data["group_uid"]) ? $data["group_uid"] : 0);
$f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true);
if( $f["exist"] == false )
{
FlashMessage(GetLang("Addon_mta_group_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=manager");
}
else
{
$force = (int) ((!empty($data["force"]) ? $data["force"] : 0));
$force_from = (int) ((!empty($data["force_from"]) ? $data["force_from"] : 0));
$force_reply = (int) ((!empty($data["force_reply"]) ? $data["force_reply"] : 0));
$force_bounce = (int) ((!empty($data["force_bounce"]) ? $data["force_bounce"] : 0));
$result = MT::S()->db->UpdateQuery("addon_mta_group", array( "s_force" => $force, "s_force_from" => $force_from, "s_force_reply" => $force_reply, "s_force_bounce" => $force_bounce ), "`uid`=" . $id);
FlashMessage(GetLang("Addon_mta_group_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $id);
}
break;
default:
break;
}
}
else
{
$action = $_GET["do"];
break;
}
case "sending-errors":
$jobid = (!empty($_GET["jobid"]) ? $_GET["jobid"] : 0);
$sending_errors = $this->sending_errors($jobid);
$this->template_system->assign("data", $sending_errors, true);
$this->template_system->ParseTemplate("sending_errors");
break;
default:
break;
}
break;
}
public function _obfuscated_7FA29589998C8EBDB29B9AAFAFA58FB38EA0B79E92B791_($host = "127.0.0.1", $type = "A", $ns = "8.8.8.8")
{
$nss = array( "8.8.8.8", "8.8.4.4", "208.67.222.222", "209.244.0.3", "4.2.2.4", "204.97.212.10", "24.244.175.2" );
$nss = ($ns ? (is_array($ns) ? $ns : array( $ns )) : $nss);
$data = false;
foreach( $nss as $key => $value )
{
$query = new _obfuscated_7FAE8BAA81A5B083A7ABBFA48BA6B69AB6B4A3A3B58E81_($value, 53, 3, true, false, false);
$result = $query->Query($host, $type);
$result_count = $result->count;
for( $a = 0; $a < $result_count; $a++ )
{
if( $result->results[$a]->typeid == $type )
{
$data = $result->results[$a]->data;
return $data;
}
}
unset($query);
}
return $data;
}
public function _obfuscated_7F92AE8F9EAABBB3B794878CB790878BA783A3B69999B1_()
{
$socket = @fsockopen("127.0.0.1", 8080, $errno, $errstr, $timeout);
fwrite($socket, pack("C3", 5, 1, 0));
$proxy_status = fread($socket, 8192);
if( $proxy_status == pack("C2", 5, 0) )
{
$proxy_status = 2;
fwrite($socket, pack("C5", 5, 1, 0, 3, strlen($server)) . $server . pack("n", $port));
$proxy_buffer = fread($socket, 8192);
if( $proxy_buffer == pack("C10", 5, 0, 0, 1, 0, 0, 0, 0, 0, 0) )
{
$proxy_status = 3;
$proxy_ready_to_connect = ($proxy_status == 3 ? true : false);
if( !$proxy_ready_to_connect )
{
$this->ErrorCode = 1;
$this->Error = sprintf(GetLang("UnableToConnectToEmailServer"), $errstr . "(" . $errno . ")");
return false;
}
}
else
{
$proxy_status = -3;
$this->ErrorCode = 3;
$this->Error = "The SOCKS server failed to connect to the specificed host and port. ( " . $server . ":" . $port . " )";
fclose($socket);
$this->_obfuscated_7FA9B4BE8DB6ACA08D8AA59DB783AC838FA6B1C087AA81_("Got error " . $this->Error);
return false;
}
}
else
{
$proxy_status = -2;
$this->ErrorCode = 2;
$this->Error = "Cannot connect to Proxy";
fclose($socket);
$this->_obfuscated_7FA9B4BE8DB6ACA08D8AA59DB783AC838FA6B1C087AA81_("Got error " . $this->Error);
return false;
}
}
}
function ___d($data)
{
}
function kio_general_mta()
{
$p = _obfuscated_0D373C03163331133B3C25073F340B17142208120B1322_();
return $p["generalk"];
}
?>
Did this file decode correctly?
Original Code
<?php
if( !defined("IEM_ADDONS_PATH") )
{
$l = "[\$Id: mta.php 3185 2017-11-17 07:46:19Z maborak \$]";
exit( "denied: " . $l );
}
require_once(IEM_ADDONS_PATH . "/installer/api/installer.php");
require_once(IEM_ADDONS_PATH . "/mta/config/config.php");
if( MT::S()->addon_enabled("mta") )
{
$installer = Installer_API::Singleton()->apply_patches("mta");
}
class _obfuscated_7F99BF81BAB4B1C0A781B9B88D9CAA9AAFA0908C878AB1_
{
/**
* Create the data output array for the DataTables rows
*
* @param array $columns
* Column information array
* @param array $data
* Data from the SQL get
* @return array Formatted data in a row based format
*/
public static function _obfuscated_7FB2BBA6B3B09894AA88C08D9C91B7ABAAB098B5AE9EB1_($columns, $data)
{
$out = array( );
$i = 0;
for( $ien = count($data); $i < $ien; $i++ )
{
$row = array( );
$j = 0;
for( $jen = count($columns); $j < $jen; $j++ )
{
$column = $columns[$j];
if( isset($column["formatter"]) )
{
$row[$column["dt"]] = $column["formatter"]($data[$i][$column["db"]], $data[$i]);
}
else
{
$row[$column["dt"]] = $data[$i][$columns[$j]["db"]];
}
}
$out[] = $row;
}
return $out;
}
/**
* Database connection
*
* Obtain an PHP PDO connection from a connection details array
*
* @param array $conn
* SQL connection details. The array should have
* the following properties
* * host - host name
* * db - database name
* * user - user name
* * pass - user password
* @return resource PDO connection
*/
public static function db($conn)
{
if( is_array($conn) )
{
return self::_obfuscated_7FAF8E85A2C098ABB686AE9DB69194B7A8B4A198B8A581_($conn);
}
return $conn;
}
/**
* Paging
*
* Construct the LIMIT clause for server-side processing SQL query
*
* @param array $request
* Data sent to server by DataTables
* @param array $columns
* Column information array
* @return string SQL limit clause
*/
public static function _obfuscated_7FA69FB1A39AB493BB9CBF9384AEC08B8886B288BF9F81_($request, $columns)
{
$limit = "";
if( isset($request["start"]) && $request["length"] != -1 )
{
$limit = "LIMIT " . intval($request["start"]) . ", " . intval($request["length"]);
}
return $limit;
}
/**
* Ordering
*
* Construct the ORDER BY clause for server-side processing SQL query
*
* @param array $request
* Data sent to server by DataTables
* @param array $columns
* Column information array
* @return string SQL order by clause
*/
public static function _obfuscated_7FBA8893ADBA9E94A59AA4AE95A1BEB4888A868CB689B1_($request, $columns)
{
$order = "";
if( isset($request["order"]) && count($request["order"]) )
{
$orderBy = array( );
$dtColumns = self::_obfuscated_7FA889B9A592AE88B8949282A494B69BB8A18A92C0B281_($columns, "dt");
$i = 0;
for( $ien = count($request["order"]); $i < $ien; $i++ )
{
$columnIdx = intval($request["order"][$i]["column"]);
$requestColumn = $request["columns"][$columnIdx];
$columnIdx = array_search($requestColumn["data"], $dtColumns);
$column = $columns[$columnIdx];
if( $requestColumn["orderable"] == "true" )
{
$dir = ($request["order"][$i]["dir"] === "asc" ? "ASC" : "DESC");
$orderBy[] = "`" . $column["db"] . "` " . $dir;
}
}
$order = "ORDER BY " . implode(", ", $orderBy);
}
return $order;
}
/**
* Searching / Filtering
*
* Construct the WHERE clause for server-side processing SQL query.
*
* NOTE this does not match the built-in DataTables filtering which does it
* word by word on any field. It's possible to do here performance on large
* databases would be very poor
*
* @param array $request
* Data sent to server by DataTables
* @param array $columns
* Column information array
* @param array $bindings
* Array of values for PDO bindings, used in the
* sql_exec() function
* @return string SQL where clause
*/
public static function _obfuscated_7FB7B4B189B98EAAAEAB939FAA829587B48D879A9A8581_($request, $columns, &$bindings)
{
$globalSearch = array( );
$columnSearch = array( );
$dtColumns = self::_obfuscated_7FA889B9A592AE88B8949282A494B69BB8A18A92C0B281_($columns, "dt");
if( isset($request["search"]) && $request["search"]["value"] != "" )
{
$str = $request["search"]["value"];
$i = 0;
for( $ien = count($request["columns"]); $i < $ien; $i++ )
{
$requestColumn = $request["columns"][$i];
$columnIdx = array_search($requestColumn["data"], $dtColumns);
$column = $columns[$columnIdx];
if( $requestColumn["searchable"] == "true" )
{
$binding = self::_obfuscated_7F86A0BB818CBEA188ABB486B5C09A9497AB9DA18AAA81_($bindings, "%" . $str . "%", PDO::PARAM_STR);
$globalSearch[] = "`" . $column["db"] . "` LIKE " . $binding;
}
}
}
if( isset($request["columns"]) )
{
$i = 0;
for( $ien = count($request["columns"]); $i < $ien; $i++ )
{
$requestColumn = $request["columns"][$i];
$columnIdx = array_search($requestColumn["data"], $dtColumns);
$column = $columns[$columnIdx];
$str = $requestColumn["search"]["value"];
if( $requestColumn["searchable"] == "true" && $str != "" )
{
$binding = self::_obfuscated_7F86A0BB818CBEA188ABB486B5C09A9497AB9DA18AAA81_($bindings, "%" . $str . "%", PDO::PARAM_STR);
$columnSearch[] = "`" . $column["db"] . "` LIKE " . $binding;
}
}
}
$where = "";
if( count($globalSearch) )
{
$where = "(" . implode(" OR ", $globalSearch) . ")";
}
if( count($columnSearch) )
{
$where = ($where === "" ? implode(" AND ", $columnSearch) : $where . " AND " . implode(" AND ", $columnSearch));
}
if( $where !== "" )
{
$where = "HAVING " . $where;
}
return $where;
}
/**
* Perform the SQL queries needed for an server-side processing requested,
* utilising the helper functions of this class, limit(), order() and
* filter() among others.
* The returned array is ready to be encoded as JSON
* in response to an SSP request, or can be modified if needed before
* sending back to the client.
*
* @param array $request
* Data sent to server by DataTables
* @param array|PDO $conn
* PDO connection resource or connection parameters array
* @param string $table
* SQL table to query
* @param string $primaryKey
* Primary key of the table
* @param array $columns
* Column information array
* @return array Server-side processing response array
*/
public static function _obfuscated_7F8D999B908AA58EC0B9B8AAB188AA999790ACA5A28EB1_($request, $conn, $table, $primaryKey, $columns)
{
$bindings = array( );
$db = self::db($conn);
$limit = self::limit($request, $columns);
$order = self::order($request, $columns);
$where = self::_obfuscated_7FB7B4B189B98EAAAEAB939FAA829587B48D879A9A8581_($request, $columns, $bindings);
$data = self::_obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, $bindings, "SELECT SQL_CALC_FOUND_ROWS `" . implode("`, `", self::_obfuscated_7FA889B9A592AE88B8949282A494B69BB8A18A92C0B281_($columns, "db")) . "`\r\n FROM `" . $table . "`\r\n " . $where . "\r\n " . $order . "\r\n " . $limit);
$resFilterLength = self::_obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, "SELECT FOUND_ROWS()");
$recordsFiltered = $resFilterLength[0][0];
$resTotalLength = self::_obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, "SELECT COUNT(`" . $primaryKey . "`)\r\n FROM `" . $table . "`");
$recordsTotal = $resTotalLength[0][0];
return array( "draw" => (isset($request["draw"]) ? intval($request["draw"]) : 0), "recordsTotal" => intval($recordsTotal), "recordsFiltered" => intval($recordsFiltered), "data" => self::_obfuscated_7FB2BBA6B3B09894AA88C08D9C91B7ABAAB098B5AE9EB1_($columns, $data) );
}
/**
* The difference between this method and the `simple` one, is that you can
* apply additional `where` conditions to the SQL queries.
* These can be in
* one of two forms:
*
* * 'Result condition' - This is applied to the result set, but not the
* overall paging information query - i.e. it will not effect the number
* of records that a user sees they can have access to. This should be
* used when you want apply a filtering condition that the user has sent.
* * 'All condition' - This is applied to all queries that are made and
* reduces the number of records that the user can access. This should be
* used in conditions where you don't want the user to ever have access to
* particular records (for example, restricting by a login id).
*
* @param array $request
* Data sent to server by DataTables
* @param array|PDO $conn
* PDO connection resource or connection parameters array
* @param string $table
* SQL table to query
* @param string $primaryKey
* Primary key of the table
* @param array $columns
* Column information array
* @param string $whereResult
* WHERE condition to apply to the result set
* @param string $whereAll
* WHERE condition to apply to all queries
* @return array Server-side processing response array
*/
public static function _obfuscated_7F8DC0B4AEBFA081A099938A9BABA88BAC879285BB8C91_($request, $conn, $table, $primaryKey, $columns, $whereResult = NULL, $whereAll = NULL)
{
$bindings = array( );
$db = self::db($conn);
$localWhereResult = array( );
$localWhereAll = array( );
$whereAllSql = "";
$limit = self::limit($request, $columns);
$order = self::order($request, $columns);
$where = self::_obfuscated_7FB7B4B189B98EAAAEAB939FAA829587B48D879A9A8581_($request, $columns, $bindings);
$whereResult = self::_obfuscated_7F8990B1B382B381819C939788ACACA5BDC0868A8EA691_($whereResult);
$whereAll = self::_obfuscated_7F8990B1B382B381819C939788ACACA5BDC0868A8EA691_($whereAll);
if( $whereResult )
{
$where = ($where ? $where . " AND " . $whereResult : "WHERE " . $whereResult);
}
if( $whereAll )
{
$where = ($where ? $where . " AND " . $whereAll : "WHERE " . $whereAll);
$whereAllSql = "WHERE " . $whereAll;
}
$pp = self::_obfuscated_7FA889B9A592AE88B8949282A494B69BB8A18A92C0B281_($columns, "process");
$process = (0 < count($pp) ? " , " . implode(" , ", $pp) : "");
$data = self::_obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, $bindings, "SELECT SQL_CALC_FOUND_ROWS `" . implode("`, `", self::_obfuscated_7FA889B9A592AE88B8949282A494B69BB8A18A92C0B281_($columns, "db", "process")) . "` " . $process . " \r\n FROM `" . $table . "`\r\n " . $where . "\r\n " . $order . "\r\n " . $limit);
$resFilterLength = self::_obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, "SELECT FOUND_ROWS()");
$recordsFiltered = $resFilterLength[0][0];
$resTotalLength = self::_obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, $bindings, "SELECT COUNT(`" . $primaryKey . "`)\r\n FROM `" . $table . "` " . $whereAllSql);
$recordsTotal = $resTotalLength[0][0];
return array( "draw" => (isset($request["draw"]) ? intval($request["draw"]) : 0), "recordsTotal" => intval($recordsTotal), "recordsFiltered" => intval($recordsFiltered), "data" => self::_obfuscated_7FB2BBA6B3B09894AA88C08D9C91B7ABAAB098B5AE9EB1_($columns, $data) );
}
/**
* Connect to the database
*
* @param array $sql_details
* SQL server connection details array, with the
* properties:
* * host - host name
* * db - database name
* * user - user name
* * pass - user password
* @return resource Database connection handle
*/
public static function _obfuscated_7FAF8E85A2C098ABB686AE9DB69194B7A8B4A198B8A581_($sql_details)
{
try
{
$db = @new PDO("mysql:host=" . $sql_details["host"] . ";dbname=" . $sql_details["db"], $sql_details["user"], $sql_details["pass"], array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ));
}
catch( _obfuscated_7FBE87A2BCB8B2A7A5A1B596BF85869A838B898B9FA681_ $e )
{
self::fatal("An error occurred while connecting to the database. " . "The error reported by the server was: " . $e->_obfuscated_7FB9B397B884B5ADA0BF8DA0B08292C084B59CAFAFAB81_());
}
return $db;
}
/**
* Execute an SQL query on the database
*
* @param resource $db
* Database handler
* @param array $bindings
* Array of PDO binding values from bind() to be
* used for safely escaping strings. Note that this can be given as the
* SQL query string if no bindings are required.
* @param string $sql
* SQL query to execute.
* @return array Result from the query (all rows)
*/
public static function _obfuscated_7F878FBDC0B886B4838D988BB598B894BC878C969584B1_($db, $bindings, $sql = NULL)
{
if( $sql === NULL )
{
$sql = $bindings;
}
$stmt = $db->prepare($sql);
if( is_array($bindings) )
{
$i = 0;
for( $ien = count($bindings); $i < $ien; $i++ )
{
$binding = $bindings[$i];
$stmt->bindValue($binding["key"], $binding["val"], $binding["type"]);
}
}
try
{
$stmt->execute();
}
catch( _obfuscated_7FBE87A2BCB8B2A7A5A1B596BF85869A838B898B9FA681_ $e )
{
self::fatal("An SQL error occurred: " . $e->_obfuscated_7FB9B397B884B5ADA0BF8DA0B08292C084B59CAFAFAB81_());
}
return $stmt->fetchAll(PDO::FETCH_BOTH);
}
/**
* Throw a fatal error.
*
* This writes out an error message in a JSON string which DataTables will
* see and show to the user in the browser.
*
* @param string $msg
* Message to send to the client
*/
public static function fatal($msg)
{
echo json_encode(array( "error" => $msg ));
exit( 0 );
}
/**
* Create a PDO binding key which can be used for escaping variables safely
* when executing a query with sql_exec()
*
* @param
* array &$a Array of bindings
* @param * $val
* Value to bind
* @param int $type
* PDO field type
* @return string Bound key to be used in the SQL where this parameter
* would be used.
*/
public static function _obfuscated_7F86A0BB818CBEA188ABB486B5C09A9497AB9DA18AAA81_(&$a, $val, $type)
{
$key = ":binding_" . count($a);
$a[] = array( "key" => $key, "val" => $val, "type" => $type );
return $key;
}
/**
* Pull a particular property from each assoc.
* array in a numeric array,
* returning and array of the property values from each item.
*
* @param array $a
* Array to get data from
* @param string $prop
* Property to read
* @return array Array of property values
*/
public static function _obfuscated_7FA889B9A592AE88B8949282A494B69BB8A18A92C0B281_($a, $prop, $ignore = "none")
{
$out = array( );
$i = 0;
for( $len = count($a); $i < $len; $i++ )
{
if( isset($a[$i][$ignore]) )
{
continue;
}
if( isset($a[$i][$prop]) )
{
$out[] = $a[$i][$prop];
}
}
return $out;
}
/**
* Return a string from an array or a string
*
* @param array|string $a
* Array to join
* @param string $join
* Glue for the concatenation
* @return string Joined string
*/
public static function _obfuscated_7F8990B1B382B381819C939788ACACA5BDC0868A8EA691_($a, $join = " AND ")
{
if( !$a )
{
return "";
}
if( $a && is_array($a) )
{
return implode($join, $a);
}
return $a;
}
}
class _obfuscated_7FBDBFA68A85BB81B187B4969FB195BC9FA28E9A9A96A1_
{
public $current_statid = 0;
public function _obfuscated_7FBC999E8583A38EAAB2B799B59CB3A4A6BF86A0A98F81_()
{
$r = 5;
$v = MT::S()->version();
if( $r <= $v )
{
}
else
{
exit( sprintf(base64_decode("RXJyb3I6IEFkZG9uIEluc3RhbGxlciB2ZXJzaW9uICUuMUYgaXMgcmVxdWlyZWQuIFBsZWFzZSBjb250YWN0IHRvIHlvdXIgYWRtaW5pc3RyYXRvci4="), $r) );
}
}
public function _obfuscated_7FB8898BA5A888A2BCBA8DA0A5C0AC88B0A187AC8BBBB1_($raw = array( ))
{
$data = array( );
foreach( $raw as $key => $value )
{
$uid = (int) $value;
$d = MT::S()->db->Fetch(MT::S()->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers WHERE uid='" . $uid . "'"));
if( $d )
{
$hd = array( );
$hd["name"] = $d["name"];
$hd["size"] = $this->_obfuscated_7FB097BA9E9390A496ACADA2B6858A8683B28CB7B3BEA1_($uid);
$data[] = $hd;
}
}
return $data;
}
public function _obfuscated_7F8FB584B7A98A8296AE88B197BD94A69487838F90ACB1_($uid = 0, $all = true)
{
$uid = (int) $uid;
$all = ($all ? "" : " AND status=1");
$data = MT::S()->db->Fetch(MT::S()->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers WHERE uid='" . $uid . "'" . $all));
if( $data )
{
$hs = array( );
$h = MT::S()->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers_data WHERE header_uid='" . $uid . "'");
while( $row = MT::S()->db->Fetch($h) )
{
$hs[] = array( "name" => $row["name"], "value" => $row["value"] );
}
$data["headers"] = $hs;
return $data;
}
return array( );
}
public function _obfuscated_7F87B7A58583A29D9F9A92AC9E9882B8B8889F959D89B1_($uid = 0)
{
$hs = array( );
$h = MT::S()->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers_data WHERE header_uid='" . $uid . "'");
while( $row = MT::S()->db->Fetch($h) )
{
$hs[] = array( "name" => $row["name"], "value" => $row["value"] );
}
return $hs;
}
public function _obfuscated_7F9B8C819FAD84AEB49E89AB9DA8A896B2B18892AAAA91_($all = true)
{
$all = ($all ? "" : " WHERE status=1");
$d = MT::S()->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers" . $all);
$data = array( );
while( $row = MT::S()->db->Fetch($d) )
{
$row["total"] = $this->_obfuscated_7FB097BA9E9390A496ACADA2B6858A8683B28CB7B3BEA1_($row["uid"]);
$row["values"] = $this->_obfuscated_7F87B7A58583A29D9F9A92AC9E9882B8B8889F959D89B1_($row["uid"]);
$data[] = $row;
}
return $data;
}
public function _obfuscated_7FB097BA9E9390A496ACADA2B6858A8683B28CB7B3BEA1_($header_uid = 0)
{
$header_uid = (int) $header_uid;
$t = MT::S()->db->Fetch(MT::S()->db->Query("SELECT COUNT(uid) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers_data WHERE header_uid='" . $header_uid . "'"));
return (int) $t["total"];
}
public function _obfuscated_7F97AEA3A39D94B0A28B9CB29793AE949789B5B2908A91_()
{
$t = MT::S()->db->Fetch(MT::S()->db->Query("SELECT COUNT(uid) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_ipguard"));
return (int) $t["total"];
}
public function _obfuscated_7FBE8BBAAB9DA59396C0B4A0A8858EA48785AC82AE8A81_($uid = 0)
{
$header_uid = (int) $uid;
return (MT::S()->db->Fetch(MT::S()->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers WHERE uid='" . $header_uid . "'")) ? true : false);
}
public function _obfuscated_7FB4BCAD969F969E9C81AD8284BB9B8EAEC0AE91B79581_($uid = 0, $value = false)
{
MT::S()->db->Query("UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers SET status='" . (($value ? 1 : 0)) . "' WHERE uid='" . (int) $uid . "'");
}
public function _obfuscated_7F9399B087A78E82A0AEA7A1A1A9A79C8FA5949C8AB6A1_($uid = 0, $value = false)
{
MT::S()->db->Query("UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers SET rotation='" . (($value ? 1 : 0)) . "' WHERE uid='" . (int) $uid . "'");
}
public function _obfuscated_7F84AE8699AE8588A8A795B1B3AB8D9D95C0AB938F8391_($name = "no-name", $data = array( ), $status = 1, $rotation = 0)
{
$id = MT::S()->db->InsertQuery("addon_mta_headers", array( "name" => MT::S()->db->Quote($name), "status" => (int) $status, "rotation" => (int) $rotation ));
if( $id )
{
foreach( $data as $key => $value )
{
$h_id = MT::S()->db->InsertQuery("addon_mta_headers_data", array( "header_uid" => $id, "name" => $value["name"], "value" => $value["value"] ));
}
}
}
public function _obfuscated_7FB1B3ADA6B09F848D9596AEB682C08CB39F95AFB5BE81_($uid = 0)
{
MT::S()->db->Query("DELETE FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers WHERE uid='" . (int) $uid . "'");
MT::S()->db->Query("DELETE FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers_data WHERE header_uid='" . (int) $uid . "'");
}
public function _obfuscated_7FB19F9EB7AEBFA69690B8A09583BFA18D98AE9DA991A1_($uid = 0, $name = "no-name", $data = array( ), $status = 1, $rotation = 0)
{
$result = MT::S()->db->UpdateQuery("addon_mta_headers", array( "name" => $name, "status" => $status, "rotation" => $rotation ), "`uid`=" . MT::S()->db->Quote($uid));
MT::S()->db->Query("DELETE FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_headers_data WHERE header_uid='" . (int) $uid . "'");
foreach( $data as $key => $value )
{
$h_id = MT::S()->db->InsertQuery("addon_mta_headers_data", array( "header_uid" => $uid, "name" => $value["name"], "value" => $value["value"] ));
}
}
public function _obfuscated_7FBE8A948395B3909E8AB791B3AABBB3BA8DBE848AB1A1_($hostname)
{
if( preg_match("/" . preg_quote("->") . "/", $hostname) )
{
$a = explode("->", $hostname);
return trim($a[0]);
}
return $hostname;
}
public function _obfuscated_7F85A6BB8D849798908AA68F81AEB6968CB7AE90BA95B1_($hostname)
{
if( preg_match("/" . preg_quote("->") . "/", $hostname) )
{
$a = explode("->", $hostname);
return trim($a[1]);
}
return $hostname;
}
}
class Mta_API extends _obfuscated_7FBDBFA68A85BB81B187B4969FB195BC9FA28E9A9A96A1_
{
public $internal_email_rebuild = false;
private $db = NULL;
private $log_send_counter = 0;
private $mta_data_temp = array( );
private $LE = "\n";
public $bbs = NULL;
public $bbe = NULL;
public $encoding = false;
public $data_type_reputation = array( "reputation", "reputation_volume", "reputation_complaint", "reputation_unknown", "reputation_filtered", "blacklist", "whitelist" );
public static $instance = false;
public $log_method = array( );
/**
* Launch Encoding Options
*
* @param [string] $m
* [String]
* @return [function] [Function]
*/
public function _obfuscated_7FB1B89799B896B3919CAD94B6BD9C87AAAF9F90A3A7B1_()
{
if( !$this->bbs )
{
$this->bbs = "IEMB" . getmypid();
}
return $this->bbs;
}
public function _obfuscated_7F89B6A2959AABB2AB9282BE94B39BBBB1AF8AACBF92B1_()
{
if( !$this->bbe )
{
$this->bbe = "IEME" . getmypid();
}
return $this->bbe;
}
public function public_splittest_cron(&$_this, $send_results)
{
return $this->_obfuscated_7FB589A99F859495C0A88CA6888AAF8985898DAAA385B1_($_this, $send_results);
}
private function _obfuscated_7FB589A99F859495C0A88CA6888AAF8985898DAAA385B1_(&$_this, $send_results)
{
$this->iem_log_send_pre($_this, $send_results);
$this->iem_log_send($_this, $send_results, true);
}
public function public_splittest_setupemail(&$_this)
{
return $this->_obfuscated_7FA0C094BBA3B19D9A84B791BD8E84AEAF9CA8B583AC81_($_this);
}
private function _obfuscated_7FA0C094BBA3B19D9A84B791BD8E84AEAF9CA8B583AC81_(&$_this)
{
$_this->email_objects = array( );
}
public function mta_encode_pre_body(&$_this)
{
$encode_type = $this->_obfuscated_7F9181B193B89FBC9BB481BE97A09FBEB1A39D89BCBAB1_();
if( $encode_type == "quoted-printable" || $encode_type == "base64" || $encode_type == "binary" )
{
$_this->wrap_length = 90000;
}
if( !empty($_this->body["h"]) )
{
$_this->body["h"] = $this->_obfuscated_7FB4BBAA928B90A5BF8B93AB88ACA18BAAAF9AAF989AB1_($_this->body["h"]);
$_this->body["h"] = $this->_obfuscated_7FB1B89799B896B3919CAD94B6BD9C87AAAF9F90A3A7B1_() . trim($_this->body["h"]) . $this->_obfuscated_7F89B6A2959AABB2AB9282BE94B39BBBB1AF8AACBF92B1_();
}
if( !empty($_this->body["t"]) )
{
$_this->body["t"] = $this->_obfuscated_7FB4BBAA928B90A5BF8B93AB88ACA18BAAAF9AAF989AB1_($_this->body["t"]);
$_this->body["t"] = $this->_obfuscated_7FB1B89799B896B3919CAD94B6BD9C87AAAF9F90A3A7B1_() . trim($_this->body["t"]) . $this->_obfuscated_7F89B6A2959AABB2AB9282BE94B39BBBB1AF8AACBF92B1_();
}
}
private function _obfuscated_7FB4BBAA928B90A5BF8B93AB88ACA18BAAAF9AAF989AB1_($str)
{
$str2 = str_replace(array( $this->_obfuscated_7FB1B89799B896B3919CAD94B6BD9C87AAAF9F90A3A7B1_(), $this->_obfuscated_7F89B6A2959AABB2AB9282BE94B39BBBB1AF8AACBF92B1_() ), "", $str);
return $str2;
}
public function mta_encode_post_body($body)
{
if( isset($this->old_boundary) )
{
}
if( isset($this->email_api) )
{
}
$body = preg_replace_callback("/" . $this->_obfuscated_7FB1B89799B896B3919CAD94B6BD9C87AAAF9F90A3A7B1_() . "(.*?)" . $this->_obfuscated_7F89B6A2959AABB2AB9282BE94B39BBBB1AF8AACBF92B1_() . "/msi", array( $this, "__Zend__Launcher_merb" ), $body);
return $body;
}
private function __Zend__Launcher_merb($m)
{
$r = $this->_obfuscated_7FAEA9B59DB4B8AFA8A68B929D83B4928FB695ADA391B1_($m);
return $r;
}
public function _obfuscated_7FAEA9B59DB4B8AFA8A68B929D83B4928FB695ADA391B1_($matches)
{
$mime = $this->_obfuscated_7F9181B193B89FBC9BB481BE97A09FBEB1A39D89BCBAB1_();
switch( $mime )
{
case "base64":
$body = chunk_split(base64_encode($matches[1]), 76, $this->LE);
break;
case "binary":
$body = $matches[1];
break;
case "7bit":
case "8bit":
$body = $this->_obfuscated_7F90BF8E8BA8B2BC9C889AA88793A3B49D9996A0A084B1_($matches[1]);
if( substr($body, 0 - strlen($this->LE)) != $this->LE )
{
$body .= $this->LE;
}
break;
case "quoted-printable":
$body = $matches[1];
$body = quoted_printable_encode($body);
break;
default:
$body = $matches[1];
break;
}
return $body;
}
public function mta_encode_set_header(&$_this)
{
$this->_obfuscated_7FA4AF9FB990BE9ABBAEBABD92A19FB6978BA896828281_($_this);
}
private function _obfuscated_7FA4AF9FB990BE9ABBAEBABD92A19FB6978BA896828281_(&$_this)
{
$_this->ContentEncoding = $this->_obfuscated_7F9181B193B89FBC9BB481BE97A09FBEB1A39D89BCBAB1_($_this);
return true;
}
private function _obfuscated_7F9181B193B89FBC9BB481BE97A09FBEB1A39D89BCBAB1_()
{
if( isset($this->jobdetails) && isset($this->jobdetails["mta"]) && isset($this->jobdetails["mta"]["mime"]) )
{
$mime_post = (int) $this->jobdetails["mta"]["mime"];
switch( $mime_post )
{
case 0:
$mime = "8bit";
break;
case 1:
$mime = "quoted-printable";
break;
case 2:
$mime = "base64";
break;
case 3:
$mime = "binary";
break;
default:
$mime = "8bit";
break;
}
}
else
{
$mime = "8bit";
}
return $mime;
}
public static function Singleton()
{
if( !self::$instance )
{
self::$instance = new Mta_API();
self::$instance->db = MT::S()->db;
$GLOBALS["addon_mta_class"] = self::$instance;
self::$instance->settings = array( );
self::$instance->settings["debug_mail_sent"] = ADDON_MTA_MAIL_SENT_DEBUG;
self::$instance->timer = microtime();
self::$instance->nosql = MT_TOOLS::S()->nosql("mta");
self::$instance->_obfuscated_7FBC999E8583A38EAAB2B799B59CB3A4A6BF86A0A98F81_();
MT::S()->l("mta");
if( defined("MTA_LOG_METHOD") )
{
self::$instance->log_method = array( "addon" => "mta", "method" => MTA_LOG_METHOD );
}
}
return self::$instance;
}
public function __construct()
{
}
public function cron()
{
return $this->_obfuscated_7FB4878D9086A495B48EB38D89A582839A98928AA48F91_();
}
public function _obfuscated_7FB4878D9086A495B48EB38D89A582839A98928AA48F91_()
{
}
public function _obfuscated_7F968BA5AB96B8BEB084BB948A99A5A4868DB1B38F8581_($job)
{
if( isset($job->jobdetails["mta"]["pmtajobid"]) && $job->jobdetails["mta"]["pmtajobid"]["enabled"] == 1 )
{
$jobid = $this->_obfuscated_7FAF9083BC8ABE9BA8B08A8EAE8E82BB9CA38AAABDA1A1_($job->statid);
MT::S()->set_extra_header("x-job", $this->_obfuscated_7F99AF82819685B98AA688BEA182B7AF98A0B381A2A791_($jobid));
}
}
public function _obfuscated_7FAF9083BC8ABE9BA8B08A8EAE8E82BB9CA38AAABDA1A1_($statid)
{
if( isset($this->statid) && isset($this->jobid) && $this->statid == $statid )
{
return $this->jobid;
}
$this->jobid = $this->_obfuscated_7FBF97A69CB1B8AA91A78B969F839389A186BEB3999D81_($statid);
$this->statid = $statid;
return $this->jobid;
}
public function _obfuscated_7FBF97A69CB1B8AA91A78B969F839389A186BEB3999D81_($statid)
{
$query = "SELECT jobid FROM " . SENDSTUDIO_TABLEPREFIX . "stats_newsletters WHERE statid='" . $statid . "'";
$result = $this->db->Query($query);
$row = $this->db->Fetch($result);
return ($row ? (int) $row["jobid"] : 0);
}
public function _obfuscated_7FB592BBBEBAB6918DBFB5A6A78EBCB19ABDAABD8597A1_()
{
$result = $this->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "jobs WHERE jobtype='send' AND jobstatus='c'");
if( $result )
{
while( $row = $this->db->Fetch($result) )
{
$queues_unsent = MT::S()->queues_unsent($row["queueid"]);
if( 0 < $queues_unsent )
{
$job_details = unserialize($row["jobdetails"]);
if( isset($job_details["mta"]["resend"]) && $job_details["mta"]["resend"]["current_time"] < $job_details["mta"]["resend"]["times"] )
{
$job_details["mta"]["resend"]["current_time"]++;
$result = $this->db->UpdateQuery("jobs", array( "jobstatus" => "r", "jobdetails" => serialize($job_details) ), "`jobid`=" . $this->db->Quote($row["jobid"]));
MT::S()->FLOG("Jobid=" . $row["jobid"] . ",Unsent=" . $queues_unsent . ",Times=[" . $job_details["mta"]["resend"]["current_time"] . "/" . $job_details["mta"]["resend"]["times"] . "]", "Automatic-resend");
}
}
}
}
}
public function _obfuscated_7FA7B6A0B1BB97968DB4B99E8D8FB5AD9887988BBCAA81_($uid = 0, $users = array( ), $force = 0, $force_ms = 0)
{
$uid = (int) $uid;
$users = (!$users || !is_array($users) ? array( ) : $users);
$this->db->Query("DELETE FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_users WHERE mta_group_uid=" . $uid);
foreach( $users as $k => $v )
{
$result = $this->db->InsertQuery("addon_mta_users", array( "mta_group_uid" => $this->db->Quote($uid), "user_uid" => $this->db->Quote((int) $v) ));
}
return true;
}
public function _obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($mta_uid = 0, $value = 0, $type = "sent", $time = false, $extra = "")
{
$ct = (!$time ? time() : $time);
if( !is_numeric($value) )
{
return false;
}
$mt = $this->get_date_info($ct, "hour");
$tmpk = md5($mt . $mta_uid . $type);
if( !isset($this->mta_data_temp[$tmpk]) )
{
$dc = $this->_obfuscated_7F86A8B789A88CAEA2BF87A2AA86A693B18DBB898EA7A1_($mt, $mta_uid, $type);
if( $dc )
{
$this->mta_data_temp[$tmpk] = true;
}
}
if( $type == "sent" || $type == "failed" || $type == "bounced" )
{
$q = "UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats SET value=value+" . $value . ", extra='" . $this->db->Quote($extra) . "' WHERE `mta_uid`=" . $this->db->Quote($mta_uid) . " AND `time`='" . $this->db->Quote($mt) . "' AND `type`='" . $this->db->Quote($type) . "' ";
$result = $this->db->Query($q);
$q = "UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data SET " . $type . "=" . $type . "+" . $value . " WHERE `uid`=" . $this->db->Quote($mta_uid) . "";
$result = $this->db->Query($q);
}
else
{
if( in_array($type, $this->data_type_reputation) )
{
$result = $this->db->Query("UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats SET value=" . $value . ", extra='" . $this->db->Quote($extra) . "' WHERE `mta_uid`=" . $this->db->Quote($mta_uid) . " AND `time`='" . $this->db->Quote($mt) . "' AND `type`='" . $this->db->Quote($type) . "' ");
if( $type == "blacklist" )
{
$result = $this->db->Query("SELECT blacklist_extra FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data LIMIT 1");
if( !$result )
{
$result = $this->db->Query("ALTER TABLE `" . SENDSTUDIO_TABLEPREFIX . "addon_mta_data` ADD `blacklist_extra` TEXT");
}
$result = $this->db->Query("UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data SET " . $type . "='" . $value . "', blacklist_data='" . $this->db->Quote($extra) . "' WHERE `uid`=" . $this->db->Quote($mta_uid) . "");
}
else
{
if( $type == "whitelist" )
{
$result = $this->db->Query("UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data SET " . $type . "='" . $value . "', whitelist_data='" . $this->db->Quote($extra) . "' WHERE `uid`=" . $this->db->Quote($mta_uid) . "");
}
else
{
$result = $this->db->Query("UPDATE " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data SET " . $type . "='" . $value . "' WHERE `uid`=" . $this->db->Quote($mta_uid) . "");
}
}
}
}
return $result;
}
public function _obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid = 0, $type = "sent", $time = false)
{
$time = $this->get_date_info((!$time ? time() : $time), "hour");
$this->_obfuscated_7F86A8B789A88CAEA2BF87A2AA86A693B18DBB898EA7A1_($time, $mta_uid, $type);
$result = $this->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats WHERE mta_uid='" . $mta_uid . "' AND time='" . $time . "' AND type='" . $type . "'");
$result = $this->db->Fetch($result);
return ($result ? (int) $result["value"] : 0);
}
public function _obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid = 0, $type = "sent", $time = false, $arr = false)
{
$time = $this->get_date_info((!$time ? time() : $time), "day");
$time2 = $time + 3600 * 24;
$this->_obfuscated_7F86A8B789A88CAEA2BF87A2AA86A693B18DBB898EA7A1_($time, $mta_uid, $type);
if( preg_match("/reputation/i", $type) || $type == "blacklist" )
{
$result = $this->db->Query("SELECT value as total,extra FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats WHERE mta_uid='" . $mta_uid . "' AND time >= '" . $time . "' AND time < '" . $time2 . "' AND type='" . $type . "' ORDER BY time DESC LIMIT 1");
}
else
{
$result = $this->db->Query("SELECT SUM(value) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats WHERE mta_uid='" . $mta_uid . "' AND time >= '" . $time . "' AND time < '" . $time2 . "' AND type='" . $type . "'");
}
$result = $this->db->Fetch($result);
return ($arr ? $result : ($result ? (int) $result["total"] : 0));
}
/**
* FIXME: ARREGLAR CUANDO DEVUELVE EMPTY
*
* @param integer $mta_uid
* [description]
* @param boolean $time
* [description]
* @param string $date
* [description]
* @param boolean $data
* [description]
* @return [type] [description]
*/
public function _obfuscated_7F83ADBA938B81AAB8BAA6898FAA8DB2B4A7A9A68DB481_($mta_uid = 0, $time = false, $date = "daily", $data = false)
{
if( !$data )
{
$time = ($time ? $time : time());
if( $date == "daily" )
{
$bl = $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "whitelist", $time, true);
}
$data = array( );
$blids = explode(",", trim($bl["extra"]));
if( trim($bl["extra"]) == "" )
{
return $data;
}
}
else
{
$blids = $data;
}
$processed_data = array( );
$blids = implode(",", $blids);
if( empty($blids) )
{
return array( );
}
$result = $this->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_ipguard WHERE uid IN (" . $blids . ")");
while( $row = $this->db->Fetch($result) )
{
$processed_data[] = $row;
}
return $processed_data;
}
public function _obfuscated_7F95ADB185BFB5BB8A9D9D99899886A89CA5AC88A09BA1_($mta_uid = 0, $time = false, $date = "daily", $data = false)
{
if( !$data )
{
$time = ($time ? $time : time());
if( $date == "daily" )
{
$bl = $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "blacklist", $time, true);
}
$data = array( );
$blids = explode(",", trim($bl["extra"]));
if( trim($bl["extra"]) == "" )
{
return $data;
}
}
else
{
$blids = $data;
}
$processed_data = array( );
$blids = implode(",", $blids);
if( empty($blids) )
{
return array( );
}
$result = $this->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_ipguard WHERE uid IN (" . $blids . ")");
while( $row = $this->db->Fetch($result) )
{
$processed_data[] = $row;
}
return $processed_data;
}
public function _obfuscated_7F95A290859C89A5849892A5A3AE89AFBBAE90C0BF9BB1_($mta_uid = 0, $hm = 7, $from = "daily", $when = "previous", $time = false)
{
$_time = (!$time ? time() : $time);
$data = array( "time" => array( ), "sent" => array( ), "failed" => array( ), "bounced" => array( ), "reputation" => array( ), "blacklist" => array( ) );
for( $i = 0; $i < $hm; $i++ )
{
$interval = ($from == "daily" ? 24 * 60 * 60 * $i : 24 * 60 * 60 * $i);
$time = ($when == "previous" ? $_time - $interval : $_time + $interval);
$data["time"][] = date("M j", $time);
$data["sent"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "sent", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "sent", $time)));
$data["failed"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "failed", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "failed", $time)));
$data["bounced"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "bounced", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "bounced", $time)));
$data["reputation"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "reputation", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "reputation", $time)));
$complaint = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "reputation_complaint", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "reputation_complaint", $time)));
$complaint_reversed = (0 < $complaint ? 100 - $complaint : $complaint);
$data["reputation_complaint"][] = $complaint;
$volume = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "reputation_volume", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "reputation_volume", $time)));
$volume_reversed = (0 < $volume ? 100 - $volume : $volume);
$data["reputation_volume"][] = $volume;
$unknown = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "reputation_unknown", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "reputation_unknown", $time)));
$data["reputation_unknown"][] = $unknown;
$data["reputation_filtered"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "reputation_filtered", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "reputation_filtered", $time)));
$data["blacklist"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "blacklist", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "blacklist", $time)));
$data["whitelist"][] = (int) (($from == "daily" ? $this->_obfuscated_7F84B8AC90B49E89A1BCB18CA6AC819EB79DAFB4AFA281_($mta_uid, "whitelist", $time) : $this->_obfuscated_7F8DA18DB08BB6A5A692A3B0A188B19185B690A9BFB4A1_($mta_uid, "whitelist", $time)));
}
$data["time"] = array_reverse($data["time"]);
$data["sent"] = array_reverse($data["sent"]);
$data["failed"] = array_reverse($data["failed"]);
$data["bounced"] = array_reverse($data["bounced"]);
$data["reputation"] = array_reverse($data["reputation"]);
$data["reputation_complaint"] = array_reverse($data["reputation_complaint"]);
$data["reputation_volume"] = array_reverse($data["reputation_volume"]);
$data["reputation_unknown"] = array_reverse($data["reputation_unknown"]);
$data["reputation_filtered"] = array_reverse($data["reputation_filtered"]);
$data["blacklist"] = array_reverse($data["blacklist"]);
$data["whitelist"] = array_reverse($data["whitelist"]);
return $data;
}
public function _obfuscated_7F86A8B789A88CAEA2BF87A2AA86A693B18DBB898EA7A1_($time = 0, $mta_uid = 0, $type = "send")
{
if( !$this->_obfuscated_7FB4AE92B583B5B4818993939194AA8D82A3B1A2B7B9B1_($time, $mta_uid, $type) )
{
$result = $this->db->InsertQuery("addon_mta_stats", array( "mta_uid" => $mta_uid, "time" => $time, "type" => $type ));
return true;
}
return false;
}
public function _obfuscated_7FB4AE92B583B5B4818993939194AA8D82A3B1A2B7B9B1_($time = 0, $mta_uid = 0, $type = "send")
{
$result = $this->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats WHERE mta_uid='" . $mta_uid . "' AND time='" . $time . "' AND type='" . $type . "'");
$ex = ($this->db->Fetch($result) ? true : false);
return $ex;
}
public function _obfuscated_7F81B58BA1A7B083BB93AFB782B98A8C999A87B587B381_($timestam = 0, $g = "day", $hm = 40, $t = "-")
{
}
public function _obfuscated_7F85AB928E93A0868598868B94A4AFB5ACB9C0BAAF8581_($jobid = 0)
{
$result = $this->db->Query("SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "jobs WHERE jobid='" . $jobid . "'");
$jobinfo = $this->db->Fetch($result);
if( !$jobinfo )
{
return array( );
}
$result = $this->db->Query("SELECT COUNT(*) as total,queueid,reasoncode,reason FROM " . SENDSTUDIO_TABLEPREFIX . "queues_unsent WHERE queueid='" . $jobinfo["queueid"] . "' group by reason ORDER BY total DESC LIMIT 1000");
$data = array( );
while( $row = $this->db->Fetch($result) )
{
$row["total_format"] = number_format((int) $row["total"]);
$row["reason"] = (trim($row["reason"]) == "" ? "Unknown reason" : $row["reason"]);
$data[] = $row;
}
return $data;
}
public function get_date_info($timestamp = 0, $g = "day")
{
$timestamp = ($timestamp ? $timestamp : time());
$ta = explode("-", date("Y-n-d-H-i-s", $timestamp));
$t = 0;
if( $g == "day" )
{
$t = mktime(0, 0, 0, $ta[1], $ta[2], $ta[0]);
}
else
{
if( $g == "hour" )
{
$t = mktime($ta[3], 0, 0, $ta[1], $ta[2], $ta[0]);
}
else
{
if( $g == "month" )
{
$t = mktime(0, 0, 0, $ta[1], 0, $ta[0]);
}
}
}
return $t;
}
public function _obfuscated_7FB4BBA8B0BEB192A09086B288A89481989C9F8396A3B1_($data = array( ))
{
$name = (empty($data["mta_group_name"]) ? time() : $data["mta_group_name"]);
$method = (is_numeric($data["mta_group_rotation"]) ? $data["mta_group_rotation"] : 1);
$result = $this->db->InsertQuery("addon_mta_group", array( "name" => $name, "rotation" => $method ));
return $result;
}
public function _obfuscated_7FACB8A1B18BBA9D95ADBF82A98BAE8AA89A8BAEA08381_($data = array( ))
{
$name = (empty($data["mta_group_name"]) ? time() : $data["mta_group_name"]);
$method = (is_numeric($data["mta_group_rotation"]) ? $data["mta_group_rotation"] : 1);
$result = $this->db->UpdateQuery("addon_mta_group", array( "name" => $name, "rotation" => $method ), "`uid`=" . $data["mta_group_uid"]);
return $result;
}
public function _obfuscated_7FB791A7848890A3969C88B581A389A9BEA0868AA39A81_($id = 0)
{
$mtas = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($id, true);
foreach( $mtas as $k => $value )
{
$this->db->DeleteQuery("addon_mta_data", "WHERE `uid`=" . $value["uid"]);
$this->db->DeleteQuery("addon_mta_stats", "WHERE `mta_uid`=" . $value["uid"]);
}
return $this->db->DeleteQuery("addon_mta_group", "WHERE `uid`=" . $id, 1);
}
public function _obfuscated_7FAD8697ABA3A0BDAFA7B7B082BE8AAEB189B69388A281_($r = 1)
{
$ro = array( 1 => "Random", 2 => "Cycle" );
return $ro[$r];
}
public function _obfuscated_7FB6A2B7B8B4BB8CB9908BA4B19B909E85BCBA9F8CB381_($id = false)
{
$id = ($id ? "WHERE uid='" . $id . "'" : "");
$data = array( );
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group " . $id;
$result = $this->db->Query($query);
while( $row = $this->db->Fetch($result) )
{
$row["rotation_raw"] = $row["rotation"];
$row["rotation"] = $this->_obfuscated_7FAD8697ABA3A0BDAFA7B7B082BE8AAEB189B69388A281_($row["rotation"]);
$row["inactives"] = $this->_obfuscated_7F9DAAADA0B0BD8E8A96B2BA9F8D8587BFAD9D82B5A691_($row["uid"]);
$row = array_merge($row, $this->_obfuscated_7F9E94B8BF89AD9C89A49E9C90A8B1A69484B1BAA9BE81_($row["uid"]));
$row["total"] = (int) $row["inactives"] + (int) $row["mtas"];
$data[] = $row;
}
if( !$id )
{
}
return $data;
}
public function _obfuscated_7F9DAAADA0B0BD8E8A96B2BA9F8D8587BFAD9D82B5A691_($guid)
{
$total = 0;
$query = "SELECT COUNT(*) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group=" . $guid . " AND status=2";
$result = $this->db->Query($query);
$row = $this->db->Fetch($result);
if( $row )
{
$total = $row["total"];
}
return $total;
}
public function _obfuscated_7FB98998AFB8BCAE9EA4B79FAF9BA8AFAC8FBEA19BAA81_($id = false, $mtas = false, $blacklistdata = false, $user = false)
{
$user =& GetUser();
$is_admin = $user->isAdmin();
$disabled_is_admin = true;
if( $is_admin && $disabled_is_admin == false )
{
$id = ($id ? "WHERE uid='" . $id . "'" : "");
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group " . $id;
}
else
{
$id = ($id ? "WHERE uid='" . $id . "'" : "");
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group a LEFT JOIN " . SENDSTUDIO_TABLEPREFIX . "addon_mta_users b ON a.uid=b.mta_group_uid WHERE b.user_uid=" . $user->userid;
}
$data = array( );
$result = $this->db->Query($query);
while( $row = $this->db->Fetch($result) )
{
$row["rotation"] = $this->_obfuscated_7FAD8697ABA3A0BDAFA7B7B082BE8AAEB189B69388A281_($row["rotation"]);
if( $mtas )
{
$row["mtas_data"] = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($row["uid"], false, true, false, false, $blacklistdata);
}
$data[] = array_merge($row, $this->_obfuscated_7F9E94B8BF89AD9C89A49E9C90A8B1A69484B1BAA9BE81_($row["uid"]));
}
return $data;
}
public function _obfuscated_7F84AAAFA6B78796B1B194BAB286A384C082B4B396A4A1_()
{
$data = array( );
$data["uid"] = 0;
$data["name"] = GetLang("Addon_mta_nongrouped");
$data["rotation"] = "N/A";
return array_merge($data, $this->_obfuscated_7F9E94B8BF89AD9C89A49E9C90A8B1A69484B1BAA9BE81_(0));
}
public function _obfuscated_7F9E94B8BF89AD9C89A49E9C90A8B1A69484B1BAA9BE81_($id = 0)
{
$data = array( );
$data["mtas"] = $this->_obfuscated_7FB6AD96AF859082869395B387BA87A194AF88B98EB9A1_($id);
$data["users"] = $this->_obfuscated_7F849A89A5859EA89B9E9FA0A78BB1A4A4A786A08EBA81_($id);
$data = array_merge($data, $this->_obfuscated_7FADA3B9A890A392BF899385888BB7A39E9CB3B6A5B5B1_($id));
return $data;
}
public function _obfuscated_7FB6AD96AF859082869395B387BA87A194AF88B98EB9A1_($id = 0)
{
$query = "SELECT COUNT(*) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $id . "' AND status=1";
$result = $this->db->Query($query);
if( $result )
{
$row = $this->db->Fetch($result);
return (int) $row["total"];
}
return 0;
}
public function _obfuscated_7F849A89A5859EA89B9E9FA0A78BB1A4A4A786A08EBA81_($id = 0)
{
$query = "SELECT COUNT(*) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_users WHERE mta_group_uid='" . $id . "'";
$result = $this->db->Query($query);
if( $result )
{
$row = $this->db->Fetch($result);
return (int) $row["total"];
}
return 0;
}
public function _obfuscated_7FADA3B9A890A392BF899385888BB7A39E9CB3B6A5B5B1_($id = 0)
{
$query = "SELECT SUM(sent) as sent,SUM(failed) as failed, SUM(bounced) as bounced FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $id . "'";
$result = $this->db->Query($query);
if( $result )
{
$row = $this->db->Fetch($result);
$row["sent"] = (int) $row["sent"];
$row["failed"] = (int) $row["failed"];
$row["bounced"] = (int) $row["bounced"];
return $row;
}
return 0;
}
public function _obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, $partial = false)
{
if( $id )
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group WHERE uid='" . $id . "'";
$result = $this->db->Query($query);
if( $result )
{
$row = $this->db->Fetch($result);
return array( "raw" => $row, "exist" => true, "data" => array( "mta_group_uid" => $id, "mta_group_name" => $row["name"], "mta_group_rotation" => $row["rotation"], "users" => $this->_obfuscated_7FB8BEC0A8BCB6ABAEBCB08EB1A5B38888A2869AAC8581_($id) ) );
}
return $this->_obfuscated_7FA6929DB8A5BEA98185B0AAB39B8681BE9BBFBA858AB1_();
}
return $this->_obfuscated_7FA6929DB8A5BEA98185B0AAB39B8681BE9BBFBA858AB1_();
}
public function _obfuscated_7FB8BEC0A8BCB6ABAEBCB08EB1A5B38888A2869AAC8581_($id = 0)
{
$id = (int) $id;
$users = array( );
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_users WHERE mta_group_uid='" . $id . "'";
$result = $this->db->Query($query);
if( $result )
{
while( $row = $this->db->Fetch($result) )
{
$users[] = (int) $row["user_uid"];
}
}
return $users;
}
public function _obfuscated_7F9CBDB2B98F97818C92B6AA8698A5B2A2BE9CB296A381_($group, $id, $partial = false)
{
if( $id )
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $this->db->Quote($group) . "' AND uid='" . $this->db->Quote($id) . "'";
$result = $this->db->Query($query);
if( $result )
{
$row = $this->db->Fetch($result);
return array( "exist" => true, "data" => $row );
}
return $this->_obfuscated_7FA98E84B68CBF9DAA9AB7A7AD84B8B5A08DA287BFC091_();
}
return $this->_obfuscated_7FA98E84B68CBF9DAA9AB7A7AD84B8B5A08DA287BFC091_();
}
public function _obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($uid = 0)
{
if( $uid )
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE uid='" . $this->db->Quote($uid) . "'";
$result = $this->db->Query($query);
if( $result )
{
$row = $this->db->Fetch($result);
return array( "exist" => true, "data" => $row );
}
return $this->_obfuscated_7FA98E84B68CBF9DAA9AB7A7AD84B8B5A08DA287BFC091_();
}
return $this->_obfuscated_7FA98E84B68CBF9DAA9AB7A7AD84B8B5A08DA287BFC091_();
}
public function _obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($id = 0, $lite = false, $active = false, $random = false, $limit = false, $blacklistdata = false, $whitelistdata = false)
{
$active = ($active ? " AND status=1" : "");
$order = ($random ? " ORDER BY RAND()" : "");
$limit = ($limit && is_numeric($limit) ? " LIMIT " . $limit : "");
if( !$lite )
{
$mtas = array( );
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $id . "' " . $active . " " . $order . " " . $limit;
$result = $this->db->Query($query);
while( $row = $this->db->Fetch($result) )
{
$row["sent"] = number_format($row["sent"]);
$row["failed"] = number_format($row["failed"]);
$row["bounced"] = number_format($row["bounced"]);
$row["reputation"] = number_format($row["reputation"]);
$row["blacklist"] = number_format($row["blacklist"]);
if( $blacklistdata )
{
$row["blacklist_data"] = $this->_obfuscated_7F95ADB185BFB5BB8A9D9D99899886A89CA5AC88A09BA1_($row["uid"], time(), "daily", explode(",", $row["blacklist_data"]));
}
if( $whitelistdata )
{
$wl_data = explode(",", $row["whitelist_data"]);
$row["whitelist_data"] = $this->_obfuscated_7F83ADBA938B81AAB8BAA6898FAA8DB2B4A7A9A68DB481_($row["uid"], time(), "daily", $wl_data);
}
$mtas[] = $row;
}
}
else
{
$mtas = array( );
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $id . "' " . $active . " " . $order . " " . $limit;
$result = $this->db->Query($query);
while( $row = $this->db->Fetch($result) )
{
$mtas[] = $row;
}
}
return $mtas;
}
public function _obfuscated_7F839F86AE9B9686B49EA5A8B9BDA58DAE8A9F98A29C91_($mta_uid, $type)
{
if( $type == "reputation" || $type == "blacklist" )
{
$sent = $this->db->Fetch($this->db->Query("SELECT value as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats WHERE mta_uid='" . $mta_uid . "' AND type='" . $type . "' ORDER BY time DESC LIMIT 1"));
}
else
{
$sent = $this->db->Fetch($this->db->Query("SELECT SUM(value) as total FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_stats WHERE mta_uid='" . $mta_uid . "' AND type='" . $type . "'"));
}
return (int) $sent["total"];
}
public function _obfuscated_7F98B6AEAD81B5BF90998DC0BBA68C899197A299AF9281_($mta_uid, $value, $key)
{
$result = $this->db->UpdateQuery("addon_mta_data", array( $key => $value ), "`uid`=" . $mta_uid);
return $value;
}
public function _obfuscated_7F97898C81AD9292B1A7A8A4AEAE9CB383BF9387A6B191_($group_id = 0, $type = "sent")
{
$total = 0;
if( $type == "reputation" )
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $group_id . "'";
$result = $this->db->Query($query);
while( $row = $this->db->Fetch($result) )
{
$total = $total + (int) $this->_obfuscated_7F839F86AE9B9686B49EA5A8B9BDA58DAE8A9F98A29C91_($row["uid"], $type);
}
}
else
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE mta_group='" . $group_id . "'";
$result = $this->db->Query($query);
while( $row = $this->db->Fetch($result) )
{
$total = $total + (int) $this->_obfuscated_7F839F86AE9B9686B49EA5A8B9BDA58DAE8A9F98A29C91_($row["uid"], $type);
}
}
return $total;
}
public function _obfuscated_7FA98E84B68CBF9DAA9AB7A7AD84B8B5A08DA287BFC091_()
{
return array( "exist" => false, "data" => array( "name" => time() ) );
}
public function _obfuscated_7FA6929DB8A5BEA98185B0AAB39B8681BE9BBFBA858AB1_()
{
return array( "exist" => false, "data" => array( "mta_group_name" => time(), "mta_group_rotation" => 1 ) );
}
public function _obfuscated_7F858EA1A196868597B79BB4BE889D9DA0A5B2B59FAAB1_($job = 0)
{
$job = $this->db->Quote($job);
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "jobs WHERE jobid='" . $job . "'";
$result = $this->db->Query($query);
$r = array( );
$mta = 0;
$row = $this->db->Fetch($result);
if( !$row )
{
return "None";
}
$mta = $this->_obfuscated_7FB2AF8BB7B1A0B19591AC88C0A09BC0B194A5A1BC8EA1_($row["ownerid"]);
if( $mta == 0 )
{
$md = unserialize($row["jobdetails"]);
return $this->_obfuscated_7F868292A78BAEAAB3BAAF989F93B6819A8288BC91BE91_($md["mta"], "J");
}
return $this->_obfuscated_7F868292A78BAEAAB3BAAF989F93B6819A8288BC91BE91_($mta, "U");
}
public function _obfuscated_7FAEB7858EA59181A09892B7B5A79897BE9FB29AB9ADA1_($stat = 0)
{
$stat = $this->db->Quote($stat);
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "stats_newsletters WHERE statid='" . $stat . "'";
$result = $this->db->Query($query);
$r = array( );
$mta = 0;
$row = $this->db->Fetch($result);
if( !$row )
{
return "None";
}
return $this->_obfuscated_7F858EA1A196868597B79BB4BE889D9DA0A5B2B59FAAB1_($row["jobid"]);
}
public function _obfuscated_7FB2AF8BB7B1A0B19591AC88C0A09BC0B194A5A1BC8EA1_($user)
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "users WHERE userid='" . $user . "'";
$result = $this->db->Query($query);
$mta = 0;
while( $row = $this->db->Fetch($result) )
{
$mta = (int) $row["mta"];
}
return $mta;
}
public function _obfuscated_7F868292A78BAEAAB3BAAF989F93B6819A8288BC91BE91_($mta = 0, $default = "None", $type = "J")
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "smtp WHERE uid='" . $mta . "'";
$result = $this->db->Query($query);
$mta = $default;
while( $row = $this->db->Fetch($result) )
{
$mta = "<img src='images/" . (($type == "J" ? "mnu_contactlist_button" : "user")) . ".gif'> " . $row["name"];
}
return $mta;
}
public function _obfuscated_7F93939DA59B8985AEA38A8292AD95A181829B8A81BDB1_($data = array( ))
{
$mta_data = array( "hostname" => trim($data["hostname"]), "username" => trim($data["username"]), "password" => trim($data["password"]), "port" => (int) trim($data["port"]), "name" => trim($data["name"]), "mail_from" => trim($data["mail_from"]), "mail_reply" => trim($data["mail_reply"]), "mail_bounce" => trim($data["mail_bounce"]), "mail_test" => trim($data["mail_test"]), "mta_group" => (int) $data["mta_group_uid"] );
$result = $this->db->InsertQuery("addon_mta_data", $mta_data);
return $result;
}
public function _obfuscated_7FA9C089A0A2AC91BAA7B29581AFBF99A8C0A7A1BCBB81_($id = 0)
{
$result = $this->db->DeleteQuery("addon_mta_stats", "WHERE `mta_uid`=" . $id);
$result = $this->db->DeleteQuery("addon_mta_data", "WHERE `uid`=" . $id);
return $result;
}
public function _obfuscated_7F9894A7BD90AA94BBA88CA9BBAF89A6BCB19E879781A1_($ids = array( ))
{
$i = 0;
foreach( $ids as $k => $v )
{
$id = (int) $v;
if( $this->_obfuscated_7FA5A990ACAF9495B38DA7AE9995ACB1B788B2918E8E91_($id) && $this->_obfuscated_7FA9C089A0A2AC91BAA7B29581AFBF99A8C0A7A1BCBB81_($id) )
{
$i++;
}
}
return $i;
}
public function _obfuscated_7FADB3ACAFB1BFBA978597938CA0B295A0B6A3B38D9E91_($ids = array( ))
{
$i = 0;
foreach( $ids as $k => $v )
{
$id = (int) $v;
if( $this->_obfuscated_7FA5A990ACAF9495B38DA7AE9995ACB1B788B2918E8E91_($id) && $this->_obfuscated_7F92AA8889918FB18B82AF90BFBBB1A592A990ADA39681_(array( "uid" => $id, "status" => 1 )) )
{
$i++;
}
}
return $i;
}
public function _obfuscated_7FABB58B99BDA0BD95BEA3A7AEBF949FA9A0AAB6A8A8B1_($ids = array( ))
{
$i = 0;
foreach( $ids as $k => $v )
{
$id = (int) $v;
if( $this->_obfuscated_7FA5A990ACAF9495B38DA7AE9995ACB1B788B2918E8E91_($id) && $this->_obfuscated_7F92AA8889918FB18B82AF90BFBBB1A592A990ADA39681_(array( "uid" => $id, "status" => 2 )) )
{
$i++;
}
}
return $i;
}
public function _obfuscated_7F8DA79FB384C09E97B2B3BCA89DB2B8B896AAA5BE8E91_($data = array( ))
{
$result = $this->db->UpdateQuery("addon_mta_data", array( "hostname" => $data["hostname"], "username" => $data["username"], "password" => $data["password"], "port" => (int) $data["port"], "name" => $data["name"], "mail_from" => $data["mail_from"], "mail_reply" => $data["mail_reply"], "mail_bounce" => $data["mail_bounce"], "mail_test" => $data["mail_test"] ), "`uid`=" . $data["uid"]);
return $result;
}
public function _obfuscated_7FA5A990ACAF9495B38DA7AE9995ACB1B788B2918E8E91_($id)
{
$f = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($id);
return ($f["exist"] == false ? false : true);
}
public function _obfuscated_7F92AA8889918FB18B82AF90BFBBB1A592A990ADA39681_($data = array( ))
{
$valid = array( "hostname", "username", "password", "port", "name", "status", "mail_from", "mail_reply", "mail_bounce", "mail_test" );
$fields = array( );
foreach( $data as $k => $v )
{
if( in_array($k, $valid) )
{
$fields[$k] = $v;
}
}
$result = $this->db->UpdateQuery("addon_mta_data", $fields, "`uid`=" . (int) $data["uid"]);
return $result;
}
public function _obfuscated_7F889A98A1AEAC82A7A8A8A8BDAAB098A988869AA793B1_()
{
if( defined("MTA_POPULATE_IPGUARD_IP_BINDING") && MTA_POPULATE_IPGUARD_IP_BINDING != false )
{
$opts = array( "socket" => array( "bindto" => MTA_POPULATE_IPGUARD_IP_BINDING ) );
$context = stream_context_create($opts);
MT::S()->CLI("binding to: " . MTA_POPULATE_IPGUARD_IP_BINDING, "mta-addon-populate-binding", false, $this->log_method);
return $context;
}
MT::S()->CLI("binding to: FALSE", "mta-addon-populate-binding", false, $this->log_method);
}
public function _obfuscated_7FA889A98E90829D8DA6B6B5B3B5A48DB4AFA6B38FB681_()
{
require_once(dirname(__FILE__) . "/class.dom.php");
if( defined("MTA_POPULATE_IPGUARD_URL") && MTA_POPULATE_IPGUARD_URL != false )
{
$furl = MTA_POPULATE_IPGUARD_URL;
}
else
{
$furl = "http://multirbl.valli.org/lookup/184.154.76.66.html";
}
MT::S()->CLI($furl, "mta-populate-url", false, $this->log_method);
if( defined("MTA_POPULATE_IPGUARD_CONTEXT") && MTA_POPULATE_IPGUARD_CONTEXT == true )
{
$html = _obfuscated_0D2A37351D191D2D2C1903131B2933272E0D2626021032_($furl, false, $this->_obfuscated_7F889A98A1AEAC82A7A8A8A8BDAAB098A988869AA793B1_());
}
else
{
$html = _obfuscated_0D2A37351D191D2D2C1903131B2933272E0D2626021032_($furl);
}
if( $html == false )
{
return false;
}
$data = array( "blacklist" => array( ), "combined" => array( ), "whitelist" => array( ), "informational" => array( ) );
foreach( $html->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("table[id=dnsbl_data]") as $a )
{
foreach( $a->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("tr") as $b )
{
$trid = $b->id;
if( preg_match("/DNSBLBlacklistTest/i", $trid) )
{
$data["blacklist"][] = array( "name" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->plaintext, "url" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("a", 0)->href, "dns" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 3)->plaintext );
}
else
{
if( preg_match("/DNSBLCombined/i", $trid) )
{
$data["combined"][] = array( "name" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->plaintext, "url" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("a", 0)->href, "dns" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 3)->plaintext );
}
else
{
if( preg_match("/DNSBLWhitelist/i", $trid) )
{
$data["whitelist"][] = array( "name" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->plaintext, "url" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("a", 0)->href, "dns" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 3)->plaintext );
}
else
{
if( preg_match("/DNSBLInformational/i", $trid) )
{
$data["informational"][] = array( "name" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->plaintext, "url" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 2)->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("a", 0)->href, "dns" => $b->_obfuscated_7FB9BF968599A6ACA093BFABA9AF9384BD96B3929EBDA1_("td", 3)->plaintext );
}
}
}
}
}
}
$data["reputation"] = array( array( "name" => "SenderScore score", "url" => "https://www.senderscore.org/faq/", "dns" => "score.senderscore.com" ), array( "name" => "SenderScore complaint", "url" => "https://www.senderscore.org/faq/", "dns" => "cmplt.rating.senderscore.com" ), array( "name" => "SenderScore volume", "url" => "https://www.senderscore.org/faq/", "dns" => "vol.rating.senderscore.com" ), array( "name" => "SenderScore unknown", "url" => "https://www.senderscore.org/faq/", "dns" => "uus.rating.senderscore.com" ), array( "name" => "SenderScore filtered", "url" => "https://www.senderscore.org/faq/", "dns" => "filtered.rating.senderscore.com" ) );
return $data;
}
public function _obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_($data)
{
MT::S()->ECH0(PHP_EOL . print_r($data, true), $this->log_method);
}
public function _obfuscated_7FB29DBB8C9E9BA4AEA6AD9F85A2BDA58E8FB49FB28581_()
{
$this->_obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_("Download RBL data");
$data = $this->_obfuscated_7FA889A98E90829D8DA6B6B5B3B5A48DB4AFA6B38FB681_();
if( is_array($data) == false )
{
return false;
}
foreach( $data as $k => $v )
{
foreach( $v as $_k => $_v )
{
if( !$this->_obfuscated_7F8B9885AEBEAEA08A8C8591AE92ABB29DB683839E8681_($_v["dns"], $k) && !empty($_v["dns"]) )
{
$rbl = array( "name" => $_v["name"], "url" => $_v["url"], "dns" => $_v["dns"], "type" => $k );
$result = $this->db->InsertQuery("addon_mta_ipguard", $rbl);
if( $result )
{
$this->_obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_("Added new entry: " . print_r($rbl, true));
}
}
else
{
$this->_obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_("Already Added [" . $k . "]: " . print_r($_v, true));
}
}
}
}
public function _obfuscated_7F8B9885AEBEAEA08A8C8591AE92ABB29DB683839E8681_($dns, $type)
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_ipguard WHERE `dns`='" . $this->db->Quote(trim($dns)) . "' AND `type`='" . $this->db->Quote(trim($type)) . "'";
$result = $this->db->Query($query);
return ($this->db->Fetch($result) ? true : false);
}
public function _obfuscated_7FB78DB5A6A7B2B5AFA7B6908F9684B4898A99988CA1A1_($type = false)
{
$type = ($type ? "WHERE `type`='" . $this->db->Quote(trim($type)) . "'" : "");
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_ipguard " . $type . " ORDER BY dns";
$result = $this->db->Query($query);
$rbls = array( );
while( $row = $this->db->Fetch($result) )
{
$rbls[] = $row;
}
return $rbls;
}
public function _obfuscated_7F82B5BE92A2BB89A5AFB29EB7ACBC9BA1A3AD89B2A9A1_($type = false)
{
$type = ($type ? "WHERE `type`='" . $this->db->Quote(trim($type)) . "'" : "");
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_ipguard " . $type;
$result = $this->db->Query($query);
$rbls = array( );
while( $row = $this->db->Fetch($result) )
{
$rbls[] = $row;
}
return $rbls;
}
public function _obfuscated_7F86978692BB938497B2BDB786B4B1AABF9995919A9EB1_($ip)
{
switch( MTA_DNS_QUERY_METHOD )
{
case "php":
$r = gethostbyname($ip);
if( !empty($r) )
{
$d = explode(".", $r);
$rp = ((int) $d[0] == 127 ? (int) $d[3] : false);
$res = array( "reply" => $rp, "reply_inet" => $r );
}
else
{
$res = array( "reply" => false, "reply_inet" => false );
}
break;
case "dig":
$op = exec("dig +short " . $ip, $r);
if( $r && !empty($r[0]) )
{
$r = $r[0];
$d = explode(".", $r);
$rp = ((int) $d[0] == 127 ? (int) $d[3] : false);
$res = array( "reply" => $rp, "reply_inet" => $r );
}
else
{
$res = array( "reply" => false, "reply_inet" => false );
}
break;
default:
$com = MTA_NSLOOKUP_BIN . " " . $ip;
if( MT_TOOLS::S()->_obfuscated_7F8E8F9AAE8A90979F949A868D88C08FABB4A186ACA8A1_() )
{
exec($com, $op);
if( is_array($op) && 5 < count($op) )
{
$a = trim(str_replace("\"", "", $op[4]));
$b = explode(" ", $a);
$c = $b[2];
$d = explode(".", $c);
$res = ((int) $d[0] == 127 ? (int) $d[3] : false);
$res = array( "reply" => $res, "reply_inet" => $c );
}
}
else
{
exec($com, $op);
if( is_array($op) && 5 < count($op) )
{
$a = trim(str_replace("\"", "", $op[5]));
$b = explode(" ", $a);
$c = $b[1];
$d = explode(".", $c);
$res = ((int) $d[0] == 127 ? (int) $d[3] : false);
$res = array( "reply" => $res, "reply_inet" => $c );
}
}
break;
}
return $res;
}
public function _obfuscated_7FAD88B7B490A590ABBEAF8991B89BBF84859C84949F81_($dns, $result, $result_inet)
{
if( preg_match("/uribl/i", $dns) && $result_inet == "127.0.0.1" )
{
return false;
}
if( 0 < (int) $result && (int) $result < 100 )
{
return true;
}
return false;
}
public function _obfuscated_7F8D9197B69B968EB6B5B79EB5A29C9083998DA9859B91_($ip, $rbl)
{
$rip = explode(".", $ip);
$reverse_ip = $rip[3] . "." . $rip[2] . "." . $rip[1] . "." . $rip[0];
$res = $this->_obfuscated_7F86978692BB938497B2BDB786B4B1AABF9995919A9EB1_($reverse_ip . "." . $rbl);
return $res;
}
public function _obfuscated_7FA691A893979E93B5A5AA97AA84918D98A6A8BCA39091_($ip = "0.0")
{
return (filter_var($ip, FILTER_VALIDATE_IP) ? true : false);
}
public function _obfuscated_7F8298A7A487BC8BA4ADAC9FBAB8A09F8BC0A98E9C9991_($tld = false)
{
if( !$tld )
{
return false;
}
return (preg_match("/^(?:[-A-Za-z0-9]+\\.)+[A-Za-z]{2,6}\$/", trim($tld)) ? true : false);
}
public function _obfuscated_7F929E89B5AE958FBEBBBAB1AD9C9F9C89BDBB9EB2B381_($ip, $dns, $type = "rbl", $_return = false)
{
if( $type == "rbl" )
{
if( !$this->_obfuscated_7FA691A893979E93B5A5AA97AA84918D98A6A8BCA39091_($ip) || !$this->_obfuscated_7F8298A7A487BC8BA4ADAC9FBAB8A09F8BC0A98E9C9991_($dns) )
{
return false;
}
$rip = explode(".", $ip);
$reverse_ip = $rip[3] . "." . $rip[2] . "." . $rip[1] . "." . $rip[0];
$ip = $reverse_ip;
}
else
{
if( $type == "dbl" && (!$this->_obfuscated_7F8298A7A487BC8BA4ADAC9FBAB8A09F8BC0A98E9C9991_($ip) || !$this->_obfuscated_7F8298A7A487BC8BA4ADAC9FBAB8A09F8BC0A98E9C9991_($dns)) )
{
return false;
}
}
$ns_result = $this->_obfuscated_7F86978692BB938497B2BDB786B4B1AABF9995919A9EB1_($ip . "." . $dns);
return ($_return ? array( "query" => $ip . "." . $dns, "result" => $ns_result ) : $ns_result);
}
private function _obfuscated_7F839195A78FA290B18A9EA58DB9898AAC83B2888B8C91_()
{
$groups = $this->_obfuscated_7FB6A2B7B8B4BB8CB9908BA4B19B909E85BCBA9F8CB381_();
foreach( $groups as $g => $k )
{
MT::S()->ECH0(PHP_EOL . "|\tGroup: " . MT::S()->color($k["name"], "yellow"), $this->log_method);
$mtas = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($k["uid"]);
foreach( $mtas as $_k => $_v )
{
$rep = $this->_obfuscated_7F9DB09B9EA2838AB0B3B2BB8D87B181B08782A3AD8A91_($_v, "reputation", $time);
}
}
}
private function _obfuscated_7F9389839EB39AADA7BBA7978FC0AFA3B38EAE86A7BAA1_()
{
$groups = $this->_obfuscated_7FB6A2B7B8B4BB8CB9908BA4B19B909E85BCBA9F8CB381_();
foreach( $groups as $g => $k )
{
MT::S()->ECH0(PHP_EOL . "|\tGroup: " . MT::S()->color($k["name"], "yellow"), $this->log_method);
$mtas = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($k["uid"]);
foreach( $mtas as $_k => $_v )
{
$rep = $this->_obfuscated_7F9DB09B9EA2838AB0B3B2BB8D87B181B08782A3AD8A91_($_v, "blacklist", $time);
}
}
}
/**
* New IP monitoring API
*/
private function _obfuscated_7F819BAC93B7839D8A8EB1A99197A498B78FACBDB4AEA1_()
{
$sp = "{first sentence|second sentence} { {His|Her} {car|truck} is {blue|red}. | {She|He} is {feeling|doing} {much|a lot} better.}";
$data = array( "api_key" => 123, "ip" => "maborak.com" );
echo 234;
print_r(MT_TOOLS::S()->api("https://platform.maborak.com/api/dnsbl_service", $data));
exit();
}
public function _obfuscated_7F9DB09B9EA2838AB0B3B2BB8D87B181B08782A3AD8A91_($mta = array( ), $type = "reputation", $time = false, $run = false)
{
$time = (!$time ? time() : $time);
$type = (!$type ? "reputation" : $type);
$rbls = $this->_obfuscated_7FB78DB5A6A7B2B5AFA7B6908F9684B4898A99988CA1A1_($type);
$result = array( );
$ip = gethostbyname($mta["hostname"]);
if( filter_var($ip, FILTER_VALIDATE_IP) )
{
$bl = array( );
$wl = array( );
$this->_obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_("\tChecking " . $type . " for " . $ip . ":");
$j = 1;
$total = count($rbls);
foreach( $rbls as $k => $v )
{
if( $type == "reputation" )
{
if( $v["dns"] != "score.senderscore.com" )
{
continue;
}
$result = $this->_obfuscated_7F8D9197B69B968EB6B5B79EB5A29C9083998DA9859B91_($ip, $v["dns"]);
$value = $result["reply"];
$this->_obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_("\t\t" . $v["dns"] . "[" . $result["reply_inet"] . "] : " . $result["reply"]);
if( $type == "reputation" && $v["dns"] == "score.senderscore.com" )
{
$this->_obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($mta["uid"], (int) $value, "reputation", $time);
}
}
else
{
if( $type == "blacklist" )
{
$result_query = $this->_obfuscated_7F929E89B5AE958FBEBBBAB1AD9C9F9C89BDBB9EB2B381_($ip, $v["dns"], "rbl", true);
if( $result_query )
{
$value = $result_query["result"]["reply"];
$listed = $this->_obfuscated_7FAD88B7B490A590ABBEAF8991B89BBF84859C84949F81_($v["dns"], $result_query["result"]["reply"], $result_query["result"]["reply_inet"]);
if( $listed )
{
$bl[] = $v["uid"];
}
$o = MT::S()->color("OK", "green");
$l = MT::S()->color("LISTED", "light_red");
$inet_reply = ($result_query["result"]["reply_inet"] ? $result_query["result"]["reply_inet"] : "empty");
MT::S()->CLI((($listed ? "[" . $result_query["result"]["reply_inet"] . "]" : "")) . "[" . ((!$listed ? $o : $l)) . "]" . "[" . MT::S()->color($inet_reply, "dark_gray") . "]", MT::S()->color("RBL", "light_blue") . "][" . $j . "/" . $total . "][" . (($listed ? MT::S()->color($result_query["query"], "light_red") : $result_query["query"])), false, $this->log_method);
$listed = false;
}
}
else
{
if( $type == "whitelist" )
{
$result_query = $this->_obfuscated_7F929E89B5AE958FBEBBBAB1AD9C9F9C89BDBB9EB2B381_($ip, $v["dns"], "rbl", true);
if( $result_query )
{
$value = $result_query["result"]["reply"];
$listed = $this->_obfuscated_7FAD88B7B490A590ABBEAF8991B89BBF84859C84949F81_($v["dns"], $result_query["result"]["reply"], $result_query["result"]["reply_inet"]);
if( $listed )
{
$wl[] = $v["uid"];
}
$o = MT::S()->color("NOT-LISTED", "light_red");
$l = MT::S()->color("LISTED", "green");
$inet_reply = ($result_query["result"]["reply_inet"] ? $result_query["result"]["reply_inet"] : "empty");
MT::S()->CLI((($listed ? "[" . $result_query["result"]["reply_inet"] . "]" : "")) . "[" . ((!$listed ? $o : $l)) . "]" . "[" . MT::S()->color($inet_reply, "dark_gray") . "]", MT::S()->color("RBL", "light_blue") . "][" . $j . "/" . $total . "][" . (($listed ? MT::S()->color($result_query["query"], "green") : $result_query["query"])), false, $this->log_method);
$listed = false;
}
}
}
}
$j++;
}
if( $type == "blacklist" )
{
$this->_obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($mta["uid"], count($bl), "blacklist", $time, implode(",", $bl));
}
else
{
if( $type == "whitelist" )
{
$this->_obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($mta["uid"], count($wl), "whitelist", $time, implode(",", $wl));
}
}
}
else
{
$this->_obfuscated_7FBEA190AE94AB96A886999D8898BBAB94B2ADB8899D91_("Invalid IP: " . $ip);
$result["result"] = false;
}
return $result;
}
public function _obfuscated_7F8AADA48384B38AAABDA6A8A9AB86ABABA0B3B6ABBAA1_()
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "usergroups";
$result = $this->db->Query($query);
$groups = array( );
while( $row = $this->db->Fetch($result) )
{
$row["users"] = $this->_obfuscated_7F81C0A3B19593999EB5A2A4ABA2A696AF9AB89E9CA991_($row["groupid"]);
$groups[] = $row;
}
return $groups;
}
public function _obfuscated_7F81C0A3B19593999EB5A2A4ABA2A696AF9AB89E9CA991_($group = 0)
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "users WHERE groupid='" . $group . "'";
$result = $this->db->Query($query);
$users = array( );
while( $row = $this->db->Fetch($result) )
{
$users[] = $row;
}
return $users;
}
public function _obfuscated_7FC0B4B699B981BDA2B3ADAAAFB3B89EA5A7B88B9C93B1_($mtas)
{
$optional = 1;
foreach( $mtas["groups"] as $key => $value )
{
if( (int) $value["s_force"] != 4 )
{
return 0;
}
}
return $optional;
}
public function _obfuscated_7FA59F97AA9B97A4A284ADA5A9A595B2A9BC978F8DADA1_($mtas)
{
$f = 0;
foreach( $mtas["groups"] as $key => $value )
{
if( (int) $value["s_force"] == 1 )
{
return 1;
}
}
return $f;
}
/**
* Este metodo muestra los MTA Selection en el Email Campaign Step
*
* @return [type] [description]
* @see $this->__Zend__iem_email_campaign_save_mta()
*/
private function _obfuscated_7F81B1B2A699B38A93AA95BDB0B488AF988FB39B86B3B1_()
{
$mtas = array( );
$mtas["groups"] = $this->_obfuscated_7FB98998AFB8BCAE9EA4B79FAF9BA8AFAC8FBEA19BAA81_(false, true, false, false);
$filtered_group = array( );
foreach( $mtas["groups"] as $key => $value )
{
if( (int) $value["s_force"] != 2 && (int) $value["s_force"] != 0 )
{
$filtered_group[] = $value;
}
}
$mtas["groups"] = $filtered_group;
$this->template_system->Assign("default", $this->_obfuscated_7FC0B4B699B981BDA2B3ADAAAFB3B89EA5A7B88B9C93B1_($mtas));
$this->template_system->Assign("is_forcing", $this->_obfuscated_7FA59F97AA9B97A4A284ADA5A9A595B2A9BC978F8DADA1_($mtas));
$this->template_system->Assign("mtas", $mtas, true);
$this->template_system->Assign("headers", $this->_obfuscated_7F9B8C819FAD84AEB49E89AB9DA8A896B2B18892AAAA91_(false), true);
$GLOBALS["MTA_SEND_SELECT_MTA"] = $this->template_system->ParseTemplate("iem_mta_send_select_mta", true);
}
public function iem_show_mtas_in_email_campaign()
{
$this->_obfuscated_7F81B1B2A699B38A93AA95BDB0B488AF988FB39B86B3B1_();
}
private function _obfuscated_7FB696C08A848C9C88848A94B4AA9CB3BE9B959F8C83B1_($triggerid, $data = array( ))
{
$data = $this->_obfuscated_7FBFAAAEB6BB86958298B6BE94B2B1898DB489ACB5B4A1_();
$this->_obfuscated_7FAF9F9798B9AEB094A39CB9B1A185849FAF8CA8AB9EB1_($triggerid, $data);
print_r($data);
print_r($this->_obfuscated_7F8C95929A8BAEBFBCA884A4B7A4A39F9F9C9BBDB394A1_($triggerid));
exit();
}
private function _obfuscated_7F8C95929A8BAEBFBCA884A4B7A4A39F9F9C9BBDB394A1_($triggerid = 0)
{
$nosql = MT_TOOLS::S()->nosql("mta/trigger_" . $triggerid);
return $nosql->public_getNode("data");
}
private function _obfuscated_7FAF9F9798B9AEB094A39CB9B1A185849FAF8CA8AB9EB1_($triggerid = 0, $data = array( ))
{
$nosql = MT_TOOLS::S()->nosql("mta/trigger_" . $triggerid);
return $nosql->public_setNode("data", $data);
}
private function _obfuscated_7FBFAAAEB6BB86958298B6BE94B2B1898DB489ACB5B4A1_($data = array( ))
{
$log = array( );
$user =& GetUser();
$mtas = array( );
$send_details = array( );
$forced = $this->_obfuscated_7FA58DAD8AA48EA9B1A08BB4A2BB838E8EB48EA2AFB981_($user->userid);
$forced_mail_settings = $this->_obfuscated_7FB9B09A8786A1A6AF9987929BB7B88CA9ACA0A585B2A1_($user->userid);
$mtas["groups"] = $forced;
$mtas["groups_mail_settings"] = $forced_mail_settings;
$log["username"] = $user->username;
$log["ip"] = $_SERVER["REMOTE_ADDR"];
$send_details["log"] = $log;
$send_mta = array( "mtas_uid" => array( ) );
$mta_raw = array( );
if( isset($data["mta"]) && is_array($data["mta"]) )
{
foreach( $data["mta"] as $key => $value )
{
$_mta = explode("_", $value);
if( count($_mta) != 2 || $_mta[0] != "s" )
{
continue;
}
$_m = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($_mta[1]);
if( $_m["exist"] )
{
$group_id = $_m["data"]["mta_group"];
if( !isset($mta_raw[$group_id]) )
{
$group_info = $this->group_info($group_id);
$mta_raw[$group_id] = array( "group" => $group_info[0], "mtas" => array( ) );
}
$mta_raw[$group_id]["mtas"][] = $_m["data"]["uid"];
}
}
}
foreach( $mta_raw as $key => $value )
{
if( array_key_exists($key, $mtas["groups"]) )
{
}
else
{
$mtas["groups"][$key] = array( );
foreach( $value["mtas"] as $akey => $avalue )
{
$mtas["groups"][$key][] = $avalue;
}
}
}
$ms = (isset($_POST["mail_settings"]) ? $_POST["mail_settings"] : array( ));
foreach( $ms as $key => $value )
{
if( array_key_exists($key, $mtas["groups_mail_settings"]) )
{
if( !$this->_obfuscated_7F88B59FBCA69CB0AB8AA1B9A9A0C0B989868BB7A3B9A1_($key) )
{
$mtas["groups_mail_settings"][$key]["from"] = (isset($value["from"]) ? true : false);
}
if( !$this->_obfuscated_7FA7B8A499AFA2B5ADC085A2AAA1A4BF9CAC8292BA86B1_($key) )
{
$mtas["groups_mail_settings"][$key]["reply"] = (isset($value["reply"]) ? true : false);
}
if( !$this->_obfuscated_7F9A9EB499ACABAEA492A6BBA4ABBC988BB788A5B889A1_($key) )
{
$mtas["groups_mail_settings"][$key]["bounce"] = (isset($value["bounce"]) ? true : false);
}
}
else
{
$mtas["groups_mail_settings"][$key] = array( );
$mtas["groups_mail_settings"][$key]["from"] = (isset($value["from"]) ? true : false);
$mtas["groups_mail_settings"][$key]["reply"] = (isset($value["reply"]) ? true : false);
$mtas["groups_mail_settings"][$key]["bounce"] = (isset($value["bounce"]) ? true : false);
}
}
$gnames = array( );
foreach( $mtas["groups"] as $key => $value )
{
$group_info = $this->group_info($key);
$gnames[$key] = $group_info[0]["name"];
}
$mtas["group_names"] = $gnames;
$mtas["resend"] = array( "times" => (isset($_POST["resend"]) ? (int) $_POST["resend"] : 0), "current_time" => 0 );
$mtas["reschedule"] = array( "times" => (isset($_POST["reschedule"]) ? (int) $_POST["reschedule"] : 0), "current_time" => 0 );
$mtas["pmtajobid"] = array( "enabled" => (isset($_POST["pmtajobid"]) ? ((int) $_POST["pmtajobid"] == 1 ? 1 : 0) : 0) );
$mtas["mime"] = (isset($_POST["mime"]) ? $_POST["mime"] : false);
$mtas["headers"] = (isset($_POST["header"]) ? $_POST["header"] : array( "groups" => array( ), "manual" => "None" ));
$send_details["mta"] = $mtas;
return $send_details;
}
/**
* Save MTA Accounts in JobDetails
*
* @param unknown $send_details
* @param array $data
* @param string $is_trigger
*/
private function _obfuscated_7FB79191BB82B2AB86ABBC8994AD938DA3BCBABC91B6A1_(&$send_details, $data = array( ), $is_trigger = false)
{
$log = array( );
$user =& GetUser();
$mtas = array( );
$forced = $this->_obfuscated_7FA58DAD8AA48EA9B1A08BB4A2BB838E8EB48EA2AFB981_($user->userid);
$forced_mail_settings = $this->_obfuscated_7FB9B09A8786A1A6AF9987929BB7B88CA9ACA0A585B2A1_($user->userid);
$mtas["groups"] = $forced;
$mtas["groups_mail_settings"] = $forced_mail_settings;
$log["username"] = $user->username;
$log["ip"] = $_SERVER["REMOTE_ADDR"];
$send_details["log"] = $log;
$send_mta = array( "mtas_uid" => array( ) );
$mta_raw = array( );
if( isset($data["mta"]) && is_array($data["mta"]) )
{
foreach( $data["mta"] as $key => $value )
{
$_mta = explode("_", $value);
if( count($_mta) != 2 || $_mta[0] != "s" )
{
continue;
}
$_m = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($_mta[1]);
if( $_m["exist"] )
{
$group_id = $_m["data"]["mta_group"];
if( !isset($mta_raw[$group_id]) )
{
$group_info = $this->group_info($group_id);
$mta_raw[$group_id] = array( "group" => $group_info[0], "mtas" => array( ) );
}
$mta_raw[$group_id]["mtas"][] = $_m["data"]["uid"];
}
}
}
foreach( $mta_raw as $key => $value )
{
if( array_key_exists($key, $mtas["groups"]) )
{
}
else
{
$mtas["groups"][$key] = array( );
foreach( $value["mtas"] as $akey => $avalue )
{
$mtas["groups"][$key][] = $avalue;
}
}
}
$ms = (isset($_POST["mail_settings"]) ? $_POST["mail_settings"] : array( ));
foreach( $ms as $key => $value )
{
if( array_key_exists($key, $mtas["groups_mail_settings"]) )
{
if( !$this->_obfuscated_7F88B59FBCA69CB0AB8AA1B9A9A0C0B989868BB7A3B9A1_($key) )
{
$mtas["groups_mail_settings"][$key]["from"] = (isset($value["from"]) ? true : false);
}
if( !$this->_obfuscated_7FA7B8A499AFA2B5ADC085A2AAA1A4BF9CAC8292BA86B1_($key) )
{
$mtas["groups_mail_settings"][$key]["reply"] = (isset($value["reply"]) ? true : false);
}
if( !$this->_obfuscated_7F9A9EB499ACABAEA492A6BBA4ABBC988BB788A5B889A1_($key) )
{
$mtas["groups_mail_settings"][$key]["bounce"] = (isset($value["bounce"]) ? true : false);
}
}
else
{
$mtas["groups_mail_settings"][$key] = array( );
$mtas["groups_mail_settings"][$key]["from"] = (isset($value["from"]) ? true : false);
$mtas["groups_mail_settings"][$key]["reply"] = (isset($value["reply"]) ? true : false);
$mtas["groups_mail_settings"][$key]["bounce"] = (isset($value["bounce"]) ? true : false);
}
}
$gnames = array( );
foreach( $mtas["groups"] as $key => $value )
{
$group_info = $this->group_info($key);
$gnames[$key] = $group_info[0]["name"];
}
$mtas["group_names"] = $gnames;
$mtas["resend"] = array( "times" => (isset($_POST["resend"]) ? (int) $_POST["resend"] : 0), "current_time" => 0 );
$mtas["reschedule"] = array( "times" => (isset($_POST["reschedule"]) ? (int) $_POST["reschedule"] : 0), "current_time" => 0 );
$mtas["pmtajobid"] = array( "enabled" => (isset($_POST["pmtajobid"]) ? ((int) $_POST["pmtajobid"] == 1 ? 1 : 0) : 0) );
$mtas["mime"] = (isset($_POST["mime"]) ? $_POST["mime"] : false);
$mtas["headers"] = (isset($_POST["header"]) ? $_POST["header"] : array( "groups" => array( ), "manual" => "None" ));
$headers = $this->_obfuscated_7FB8898BA5A888A2BCBA8DA0A5C0AC88B0A187AC8BBBB1_($mtas["headers"]["groups"]);
$this->template_system->Assign("mta_headers", $headers, true);
$this->template_system->Assign("mta_headers_manual", (!empty($mtas["headers"]["manual"]) ? $mtas["headers"]["manual"] : "none"), true);
$send_details["mta"] = $mtas;
$this->template_system->Assign("mta", $send_details["mta"], true);
$GLOBALS["MTA_SEND_SELECT_MTA_CONFIRM"] = $this->template_system->ParseTemplate("iem_mta_send_select_mta_confirm", true);
}
public function iem_email_campaign_save_mta(&$a, $b)
{
return $this->_obfuscated_7FB79191BB82B2AB86ABBC8994AD938DA3BCBABC91B6A1_($a, $b);
}
public function _obfuscated_7F8191B5968AB783879993B0A6ADB2BCA8B687B09DA1B1_($triggerid, $b)
{
return $this->_obfuscated_7FB696C08A848C9C88848A94B4AA9CB3BE9B959F8C83B1_($triggerid, $b);
}
public function _obfuscated_7FA58DAD8AA48EA9B1A08BB4A2BB838E8EB48EA2AFB981_($id = 0)
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group a LEFT JOIN " . SENDSTUDIO_TABLEPREFIX . "addon_mta_users b ON a.uid=b.mta_group_uid WHERE b.user_uid=" . $id . " AND (a.s_force=1 OR a.s_force=2)";
$data = array( );
$result = $this->db->Query($query);
while( $row = $this->db->Fetch($result) )
{
$data[$row["uid"]] = array( );
$row["rotation"] = $this->_obfuscated_7FAD8697ABA3A0BDAFA7B7B082BE8AAEB189B69388A281_($row["rotation"]);
$row["mtas_data"] = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($row["uid"], false, true, false, false, false);
foreach( $row["mtas_data"] as $key => $value )
{
$data[$row["uid"]][] = $value["uid"];
}
}
return $data;
}
public function _obfuscated_7F88B59FBCA69CB0AB8AA1B9A9A0C0B989868BB7A3B9A1_($gid)
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group WHERE uid=" . (int) $gid . " AND (s_force_from=1 OR s_force_from=2)";
$result = $this->db->Fetch($this->db->Query($query));
return ($result ? true : false);
}
public function _obfuscated_7FA7B8A499AFA2B5ADC085A2AAA1A4BF9CAC8292BA86B1_($gid)
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group WHERE uid=" . (int) $gid . " AND (s_force_reply=1 OR s_force_reply=2)";
$result = $this->db->Fetch($this->db->Query($query));
return ($result ? true : false);
}
public function _obfuscated_7F9A9EB499ACABAEA492A6BBA4ABBC988BB788A5B889A1_($gid)
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group WHERE uid=" . (int) $gid . " AND (s_force_bounce=1 OR s_force_bounce=2)";
$result = $this->db->Fetch($this->db->Query($query));
return ($result ? true : false);
}
public function _obfuscated_7FB9B09A8786A1A6AF9987929BB7B88CA9ACA0A585B2A1_($id = 0)
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_group a LEFT JOIN " . SENDSTUDIO_TABLEPREFIX . "addon_mta_users b ON a.uid=b.mta_group_uid WHERE b.user_uid=" . $id . " AND (a.s_force=1 OR a.s_force=2) OR (s_force_from=1 OR s_force_from=2 OR s_force_reply=1 OR s_force_reply=2 OR s_force_bounce=1 OR s_force_bounce=2)";
$data = array( );
$result = $this->db->Query($query);
while( $row = $this->db->Fetch($result) )
{
$data[$row["uid"]] = array( );
$data[$row["uid"]]["from"] = ((int) $row["s_force_from"] == 1 || (int) $row["s_force_from"] == 2 ? true : false);
$data[$row["uid"]]["reply"] = ((int) $row["s_force_reply"] == 1 || (int) $row["s_force_reply"] == 2 ? true : false);
$data[$row["uid"]]["bounce"] = ((int) $row["s_force_bounce"] == 1 || (int) $row["s_force_bounce"] == 2 ? true : false);
}
return $data;
}
private function _obfuscated_7FB2B6939CACB9B7A187AC86948191A2AEA48BAB89BB81_()
{
$m = array( );
if( isset($this->mta["groups"]) )
{
foreach( $this->mta["groups"] as $key => $value )
{
foreach( $value as $akey => $avalue )
{
$m[] = $avalue;
}
}
}
return $m;
}
/**
* MTA Object
* Return all the MTA's assigned to the user.
*
* @todo Optimizar la seleccion de MTA's
* @return array The mta accounts in an array.
*/
private function _obfuscated_7F8D9291B4A09CA8819D9897BCAAB1B18895838B8BA391_()
{
$mtas = $this->_obfuscated_7FB2B6939CACB9B7A187AC86948191A2AEA48BAB89BB81_();
$user = GetUser();
$fromname = $user->Get("fullname");
$sep = (defined("MTA_MAILFROM_SEPARATOR") ? MTA_MAILFROM_SEPARATOR : ">");
$mo = array( );
if( 0 < count($mtas) )
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "addon_mta_data WHERE uid IN(" . implode(",", $mtas) . ") AND status=1";
$qa = $this->db->Query($query);
while( ($row = $this->db->Fetch($qa)) != false )
{
$fn = explode($sep, trim($row["mail_from"]));
if( 1 < count($fn) )
{
$row["mail_from_name"] = trim($fn[0]);
$row["mail_from"] = trim($fn[1]);
}
$mo[] = $row;
}
}
return $mo;
}
private function _obfuscated_7F98969281BF88998B90BEBC8AB08792A8A1A1A8A7BA91_()
{
$next_in = MTA_NEXT_MTA_AFTER;
if( !$this->mta["current_mta"] || $this->log_send_counter % $next_in == 0 )
{
if( MTA_DEFAULT_SORT == "random" )
{
$switched_mta = $this->_obfuscated_7FA8AF9C95BCA9B9A688B5B5B498B999AD87988E9E9BA1_($this->mta["objects"]);
}
else
{
$switched_mta = $this->_obfuscated_7F919FAFBD8DAB81A0ADB0BAB1AFA6A1BE96B1B8A2A891_($this->mta["objects"]);
}
return $switched_mta;
}
return $this->mta["current_mta"];
}
private function _obfuscated_7FA8AF9C95BCA9B9A688B5B5B498B999AD87988E9E9BA1_($pool = array( ))
{
$rand_key = array_rand($pool, 1);
return $pool[$rand_key];
}
private function _obfuscated_7F919FAFBD8DAB81A0ADB0BAB1AFA6A1BE96B1B8A2A891_($pool = array( ))
{
$this->mta["current_cycle_index"]++;
if( isset($pool[$this->mta["current_cycle_index"]]) )
{
return $pool[$this->mta["current_cycle_index"]];
}
$this->mta["current_cycle_index"] = 0;
return $pool[$this->mta["current_cycle_index"]];
}
/**
* Entrada principal de todo el engine SMTP
*
* @param object $_this
* Email_API object
* @param unknown $disconnect
* We will disconnect?
*/
public function iem_switch_smtp(&$_this, &$disconnect)
{
$this->_this = $_this;
if( isset($_this->Email_API->statid) && $_this->Email_API->statid != $this->current_statid )
{
$this->el_html = "";
$this->current_statid = $_this->Email_API->statid;
}
if( empty($this->el_html) )
{
$this->el_html = $_this->Email_API->body["h"];
}
return $this->_obfuscated_7F9C9395A7B8A8B4ACB6B9A7BEA28AA5AFB292AE96B3A1_($_this, $disconnect);
}
/**
*
* Quitamos todos los valores procesados para volver a procesarlos
*
* @param object $mail_object
* Email_API
*/
public function rebuild_mail($mail_object)
{
$mail_object->_AssembledEmail["Headers"]["m"] = NULL;
$mail_object->_AssembledEmail["Headers"]["t"] = NULL;
$mail_object->_AssembledEmail["Headers"]["h"] = NULL;
$mail_object->_AssembledEmail["Body"]["t"] = NULL;
$mail_object->_AssembledEmail["Body"]["h"] = NULL;
$mail_object->_AttachmentBody = "";
$mail_object->_ImageBody = NULL;
if( !empty($this->el_html) )
{
$mail_object->body["h"] = $this->el_html;
}
}
/**
* After the email is sent
*
* @param unknown $_this
* @param unknown $mail_results
* @return unknown
*/
public function iem_log_send_pre(&$_this, $mail_results)
{
return $this->_obfuscated_7F938DAFB394B79A998795AC8DA9908591949CAB8A9EB1_($_this, $mail_results);
}
private function _obfuscated_7F938DAFB394B79A998795AC8DA9908591949CAB8A9EB1_(&$_this, $mail_results)
{
if( $this->settings["debug_mail_sent"] )
{
$this->_obfuscated_7F83889496A984BEB8AE9FB2AD92889F909EBEA3A0B291_($_this->Email_API);
}
if( isset($_this->jobdetails["mta"]) && isset($this->mta["selection"]) )
{
$mta_uid = (int) $this->mta["selection"]["mta"]["uid"];
if( !isset($_this->mta_used_to_sent) )
{
$_this->mta_used_to_sent = array( );
}
if( !isset($_this->mta_used_to_sent[$mta_uid]) )
{
$_this->mta_used_to_sent[$mta_uid] = array( "sent" => 0, "failed" => 0 );
}
if( 0 < $mail_results["success"] )
{
$_this->mta_used_to_sent[$mta_uid]["sent"]++;
}
else
{
$_this->mta_used_to_sent[$mta_uid]["failed"]++;
}
}
}
/**
*
* @param unknown $_this
* @param unknown $mail_result
* @param boolean $force
* Ask if the campaign finished.
* @return unknown
*/
public function iem_log_send(&$_this, $mail_result, $force = false)
{
return $this->_obfuscated_7F829CB6B68D9287A287AF8B93B9B29284B2858F87A681_($_this, $mail_result, $force);
}
private function _obfuscated_7F829CB6B68D9287A287AF8B93B9B29284B2858F87A681_(&$_this, $mail_result, $force = false)
{
if( ($this->log_send_counter % MTA_COUNTER_TO_UPDATE_STATS == 0 || $force == true) && MTA_COUNTER_ENABLED == true && isset($_this->jobdetails["mta"]) && isset($_this->mta_used_to_sent) )
{
MT::S()->CLI($_this->mta_used_to_sent, "mta-used-to-send");
foreach( $_this->mta_used_to_sent as $k => $v )
{
if( 0 < $v["sent"] )
{
$this->_obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($k, $v["sent"], "sent");
}
if( 0 < $v["failed"] )
{
$this->_obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($k, $v["failed"], "failed");
}
$_this->mta_used_to_sent[$k] = array( "sent" => 0, "failed" => 0 );
}
}
if( $force == true )
{
Mta_API::$instance = NULL;
$GLOBALS["addon_mta_class"] = NULL;
if( isset($GLOBALS["addon_spins_class"]) && $GLOBALS["addon_spins_class"] != NULL )
{
}
}
}
/**
* Modify the encoding content
*
* @param array $data
* [Job details]
*/
public function _obfuscated_7FB39085ABB08FA899AE8C92B58CB58BA284B38BB898A1_($data = array( ))
{
if( isset($data["headers"]) )
{
$this->encoding = "base64";
if( $this->encoding == "base64" && isset($this->_this) && isset($this->_this->Email_API) )
{
$raw_subject = $this->_this->Email_API->Subject;
if( !preg_match("/" . preg_quote("=?utf-8?B?") . "/", $raw_subject) )
{
}
}
}
else
{
$this->encoding = "8bit";
}
}
/**
* Modify the headers
*
* @param array $data
* [Job details]
*/
public function _obfuscated_7F98BCBD9683A8A79A90ABB4AAA69482B0BDB899ACBD91_($data = array( ))
{
if( isset($this->headers) )
{
$headers = $this->headers;
}
else
{
$data_header = array( "data" => array( ), "multiple" => 1, "manual" => "" );
if( isset($data["headers"]) && isset($data["headers"]["groups"]) && is_array($data["headers"]["groups"]) )
{
$groups = $data["headers"]["groups"];
$data_header["multiple"] = (int) ((isset($data["headers"]["multiple"]) ? $data["headers"]["multiple"] : 1));
foreach( $groups as $key => $value )
{
$uid = (int) $value;
$headers_data = $this->_obfuscated_7F8FB584B7A98A8296AE88B197BD94A69487838F90ACB1_($uid, false);
$data_header["data"][] = $headers_data;
}
}
$data_header["manual"] = (isset($data["headers"]["manual"]) && !empty($data["headers"]["manual"]) ? trim($data["headers"]["manual"]) : "");
$this->headers = $data_header;
}
$headers = $this->headers;
$new_headers = array( );
if( 0 < count($headers["data"]) )
{
switch( $headers["multiple"] )
{
case 1:
$rh = array_rand($headers["data"], 1);
$selected = $headers["data"][$rh];
if( 1 < count($headers["data"]) || $selected["rotation"] == 1 )
{
$this->internal_email_rebuild = true;
}
$selected["headers"] = ($selected["rotation"] == 1 ? array( $selected["headers"][array_rand($selected["headers"], 1)] ) : $selected["headers"]);
foreach( $selected["headers"] as $key => $value )
{
$new_headers[] = $value;
}
break;
default:
foreach( $headers["data"] as $k => $h )
{
$selected = $h;
if( $selected["rotation"] == 1 )
{
$this->internal_email_rebuild = true;
}
$selected["headers"] = ($selected["rotation"] == 1 ? array( $selected["headers"][array_rand($selected["headers"], 1)] ) : $selected["headers"]);
foreach( $selected["headers"] as $_k => $_v )
{
$new_headers[] = $_v;
}
}
break;
}
}
foreach( $new_headers as $key => $value )
{
MT::S()->set_extra_header($value["name"], $value["value"]);
}
if( !empty($headers["manual"]) )
{
$c = explode(PHP_EOL, $headers["manual"]);
foreach( $c as $k => $v )
{
$d = explode(":", $v);
if( 1 < count($d) )
{
$___k = trim($d[0]);
$sd = array_shift($d);
$___v = trim(implode(":", $d));
MT::S()->set_extra_header($___k, $___v);
}
}
}
}
/**
* Hacemos el el uso de los MTA's asignados
*
* @param unknown $_this
* Jobs_Send_API
* @param unknown $disconnect
*/
private function _obfuscated_7F9C9395A7B8A8B4ACB6B9A7BEA28AA5AFB292AE96B3A1_(&$_this, &$disconnect)
{
if( !isset($_this->jobdetails["mta"]) )
{
$user =& GetUser();
$mtas = array( );
$forced = $this->_obfuscated_7FA58DAD8AA48EA9B1A08BB4A2BB838E8EB48EA2AFB981_($user->userid);
$forced_mail_settings = $this->_obfuscated_7FB9B09A8786A1A6AF9987929BB7B88CA9ACA0A585B2A1_($user->userid);
$mtas["groups"] = $forced;
$mtas["groups_mail_settings"] = $forced_mail_settings;
$gnames = array( );
foreach( $mtas["groups"] as $key => $value )
{
$group_info = $this->group_info($key);
$gnames[$key] = $group_info[0]["name"];
}
$mtas["group_names"] = $gnames;
$_this->jobdetails["mta"] = $mtas;
}
if( isset($_this->jobdetails["mta"]) )
{
$this->jobdetails = $_this->jobdetails;
$this->_obfuscated_7F98BCBD9683A8A79A90ABB4AAA69482B0BDB899ACBD91_($_this->jobdetails["mta"]);
if( $this->internal_email_rebuild === true )
{
$this->rebuild_mail($_this->Email_API);
}
$this->_obfuscated_7FB39085ABB08FA899AE8C92B58CB58BA284B38BB898A1_($_this->jobdetails["mta"]);
$this->_obfuscated_7F968BA5AB96B8BEB084BB948A99A5A4868DB1B38F8581_($_this);
if( !isset($this->mta) || $this->mta == NULL )
{
$this->mta = $_this->jobdetails["mta"];
$this->mta["sort"] = 2;
$this->mta["current_mta"] = false;
$this->mta["current_cycle_index"] = -1;
}
if( $this->log_send_counter % MTA_ASK_FOR_SETTINGS_AFTER == 0 )
{
$this->mta["objects"] = $this->_obfuscated_7F8D9291B4A09CA8819D9897BCAAB1B18895838B8BA391_();
}
if( 0 < count($this->mta["objects"]) )
{
$switched_mta = $this->_obfuscated_7F98969281BF88998B90BEBC8AB08792A8A1A1A8A7BA91_();
if( $switched_mta )
{
$this->mta["current_mta"] = $switched_mta;
$this->mta["selection"] = array( "mta" => $switched_mta );
$this->_obfuscated_7F858AA39DBE8EA6838FBD829DBF90B2B8A99F8BACB991_($_this);
$this->log_send_counter++;
$GLOBALS["cmta"] = $switched_mta["hostname"];
$this->mta["last_mta"] = $this->mta["current_mta"];
}
}
}
else
{
$this->jobdetails = false;
}
}
private function _obfuscated_7FB4AFA9B08989819A99BBA7BA998F9184B99CB4B5A8B1_()
{
$mta_need_new_connection = (!isset($this->mta["last_mta"]) || $this->mta["last_mta"]["hostname"] != $this->mta["current_mta"]["hostname"] || $this->mta["last_mta"]["username"] != $this->mta["current_mta"]["username"] || $this->mta["last_mta"]["password"] != $this->mta["current_mta"]["password"] || $this->mta["last_mta"]["port"] != $this->mta["current_mta"]["port"] ? true : false);
return $mta_need_new_connection;
}
private function _obfuscated_7F858AA39DBE8EA6838FBD829DBF90B2B8A99F8BACB991_($_this)
{
$this->email_api = $_this->Email_API;
if( $this->mta_need_new_connection() )
{
$_this->Email_API->_Close_Smtp_Connection();
}
$switched_mta = $this->mta["current_mta"];
if( $this->mta_need_new_connection() )
{
$switched_mta["hostname"] = $this->_obfuscated_7FBE8A948395B3909E8AB791B3AABBB3BA8DBE848AB1A1_($switched_mta["hostname"]);
$_this->Email_API->SetSmtp(trim($switched_mta["hostname"]), trim($switched_mta["username"]), trim($switched_mta["password"]), trim($switched_mta["port"]));
}
$rebuild_mail = false;
if( isset($this->mta["groups_mail_settings"][(int) $switched_mta["mta_group"]]) )
{
$mail_settings = $this->mta["groups_mail_settings"][(int) $switched_mta["mta_group"]];
if( $mail_settings["from"] == true && !empty($switched_mta["mail_from"]) )
{
if( $_this->Email_API->FromAddress != trim($switched_mta["mail_from"]) )
{
$_this->Email_API->Set("FromAddress", trim($switched_mta["mail_from"]));
$GLOBALS["addon_mta_umf"] = true;
$rebuild_mail = true;
}
}
else
{
$GLOBALS["addon_mta_umf"] = false;
}
if( $mail_settings["from"] == true && !empty($switched_mta["mail_from"]) )
{
if( $_this->Email_API->FromName != trim($switched_mta["mail_from_name"]) && !empty($switched_mta["mail_from_name"]) )
{
$_this->Email_API->Set("FromName", trim($switched_mta["mail_from_name"]));
$GLOBALS["addon_mta_umf"] = true;
$rebuild_mail = true;
}
}
else
{
$GLOBALS["addon_mta_umf"] = false;
}
if( $mail_settings["reply"] == true && !empty($switched_mta["mail_reply"]) )
{
if( $_this->Email_API->ReplyTo != trim($switched_mta["mail_reply"]) )
{
$_this->Email_API->Set("ReplyTo", trim($switched_mta["mail_reply"]));
$GLOBALS["addon_mta_umr"] = true;
$rebuild_mail = true;
}
}
else
{
$GLOBALS["addon_mta_umr"] = false;
}
if( $mail_settings["bounce"] == true && !empty($switched_mta["mail_bounce"]) )
{
if( $_this->Email_API->BounceAddress != trim($switched_mta["mail_bounce"]) )
{
$_this->Email_API->Set("BounceAddress", trim($switched_mta["mail_bounce"]));
$GLOBALS["addon_mta_umb"] = true;
$rebuild_mail = true;
}
}
else
{
$GLOBALS["addon_mta_umb"] = false;
}
}
else
{
$GLOBALS["addon_mta_umf"] = false;
$GLOBALS["addon_mta_umr"] = false;
$GLOBALS["addon_mta_umb"] = false;
$GLOBALS["addon_mta_umn"] = false;
}
if( $rebuild_mail == true || $this->internal_email_rebuild === true )
{
$this->rebuild_mail($_this->Email_API);
}
}
private function _obfuscated_7F83889496A984BEB8AE9FB2AD92889F909EBEA3A0B291_($mail_object)
{
$log_path = IEM_ADDONS_PATH . "/mta/install/backup/maillog.txt";
$status = ($mail_object->Error ? false : true);
$t = microtime() - $this->timer;
$data = (($status ? "[SUCCESS]" : "[FAILED]")) . "[" . $mail_object->_Recipients[0]["address"] . "]" . "[" . $t . " ms]" . (($status ? "" : "[" . $mail_object->Error . "]"));
file_put_contents($log_path, $data . PHP_EOL, FILE_APPEND);
$this->timer = microtime();
}
public function iem_mta_schedule_details($details)
{
return $this->_obfuscated_7F97B197AFB28C95A7BD9DA495A3B193AEB5BDBE8C9681_($details);
}
/**
* Este metodo muestra informacion del MTA en la pagina Schedule
*
* @param [array] $details
* [detalles del MTA]
* @return [array] [description]
*/
private function _obfuscated_7F97B197AFB28C95A7BD9DA495A3B193AEB5BDBE8C9681_($details)
{
$job_details = unserialize($details["jobdetails"]);
if( MT::S()->addon_enabled("spins") )
{
require_once(IEM_ADDONS_PATH . "/spins/api/spins.php");
$_api = Spins_API::Singleton();
if( method_exists($_api, "iem_schedule_info") )
{
$_api->iem_schedule_info($details);
}
}
$real_send_size = $this->_obfuscated_7F979BACAAA0BBB3838AB4B79497B68181918FBB919481_($details["jobid"]);
$job_details["SendSize"] = (isset($real_send_size["sendsize"]) ? $real_send_size["sendsize"] : $job_details["SendSize"]);
$ar = (isset($job_details["mta"]) && isset($job_details["mta"]["resend"]) ? $job_details["mta"]["resend"]["times"] : 0);
MT::S()->mail_info(GetLang("Addon_mta_automatic_resend"), ($ar == 0 ? GetLang("Addon_mta_automatic_resend_disabled") : ($ar == -1 ? GetLang("Addon_mta_automatic_resend_100_success") : $ar . " " . GetLang("Addon_mta_automatic_resend_times") . ", " . GetLang("Addon_mta_automatic_resend_actually") . ": <b>" . $job_details["mta"]["resend"]["current_time"] . "</b> of <b>" . $ar . "</b>")));
$ar = (isset($job_details["mta"]) && isset($job_details["mta"]["reschedule"]) ? $job_details["mta"]["reschedule"]["times"] : 0);
MT::S()->mail_info(GetLang("Addon_mta_automatic_reschedule"), ($ar == 0 ? GetLang("Addon_mta_automatic_resend_disabled") : ($ar == -1 ? GetLang("Addon_mta_automatic_reschedule_infinity") : $ar . " " . GetLang("Addon_mta_automatic_resend_times") . ", " . GetLang("Addon_mta_automatic_resend_actually") . ": <b>" . $job_details["mta"]["reschedule"]["current_time"] . "</b> of <b>" . $ar . "</b>")));
$ji = (isset($job_details["mta"]) && isset($job_details["mta"]["pmtajobid"]) ? $job_details["mta"]["pmtajobid"]["enabled"] : 0);
$pmtajobid = $this->_obfuscated_7F99AF82819685B98AA688BEA182B7AF98A0B381A2A791_($details["jobid"]);
MT::S()->mail_info(GetLang("Addon_mta_pmta_jobid_add"), ($ji == 0 ? "No" : "Yes" . " <b>[</b>" . $pmtajobid . "<b>]</b>"));
MT::S()->mail_info(GetLang("Addon_mta_custom_headers"), "Yes");
if( isset($job_details["mta"]) )
{
if( isset($job_details["mta"]["groups"]) )
{
if( count($job_details["mta"]["groups"]) == 0 )
{
$job_details["mta"] = false;
}
}
else
{
$job_details["mta"] = false;
}
}
$this->template_system->Assign("mail_info", MT::S()->mail_info());
$this->template_system->Assign("job_id", $details["jobid"]);
$this->template_system->Assign("job_details", $job_details);
$GLOBALS["MTA_SCHEDULE_INFO_TITLE"] = $this->template_system->ParseTemplate("iem_mta_schedule_info_title", true);
$GLOBALS["MTA_SCHEDULE_INFO_CONTENT"] = $this->template_system->ParseTemplate("iem_mta_schedule_info_content", true);
}
public function iem_mta_stats_details_title()
{
if( defined("MTA_SHOW_INBOX") && MTA_SHOW_INBOX == true )
{
$style_datatable = $this->template_system->ParseTemplate("css", true);
if( defined("MTA_SHOW_INBOX_CONVERSIONS") && MTA_SHOW_INBOX_CONVERSIONS == true )
{
$this->conv = true;
}
$lp = "\r\n<script type='text/javascript'>\r\n\$(function(){\r\n\t\$(\"#conversions\").parent().parent().parent().prev().before('<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" class=\"DashboardPanel\"><tr><td class=\"PanelContent\" valign=\"top\" style=\"height:auto;\"><div id=\"GraphPanel\"><div class=\"PanelHeaderBox1 IndexPage_GettingStarted_Header\" style=\"padding:0px 0px 10px 5px;\"><div id=\"HomeStartTitle\">All Conversions</div></div><hr><div id=\"ct\"></div></div></td></tr></table>');\r\n\t\$.post( \"index.php?Page=Addons&Addon=mta&Action=interface&AJAX=1\",{do:\"conversions_preload\"}, function( data ) {\r\n\t \t\$(\"#ct\").html(data);\r\n\t});\r\n\r\n});\r\n</script>\r\n<link rel=\"stylesheet\" href=\"addons/rbp/third/jq/css/jquery-ui.css\">\r\n<link rel=\"stylesheet\" type=\"text/css\" href=\"addons/rbp/third/datatables/css/jquery.dataTables.css\">\r\n<script src=\"addons/installer/third/jquery/latest.js\"></script>\r\n<script type=\"text/javascript\" language=\"javascript\" src=\"addons/rbp/third/datatables/js/jquery.dataTables.js\"></script>" . $style_datatable;
$GLOBALS["MTA_STATS_INFO_TITLE"] = $this->template_system->ParseTemplate("iem_mta_stats_info_title", true);
}
else
{
return NULL;
}
}
public function iem_mta_stats_details($statdetails)
{
return $this->_obfuscated_7F9E818FA8B3C0AEA2A6A186AB8CAD87A7A5BE9F8AA3B1_($statdetails);
}
/**
* Este metodo muestra informacion del MTA en la pagina Schedule
*
* @param [type] $details
* [detalles del MTA]
* @return [type] [description]
*/
private function _obfuscated_7F9E818FA8B3C0AEA2A6A186AB8CAD87A7A5BE9F8AA3B1_($statdetails)
{
if( defined("MTA_SHOW_INBOX") && MTA_SHOW_INBOX == true )
{
$mta = $this->_obfuscated_7FA3B4958F9883C0BB91BDBBB6858F908FA8AE9FB68981_($statdetails["statid"]);
$opens = $this->_obfuscated_7FA0909591819C8995BC8BA792B0819C8AACAE90ABB9B1_($statdetails["statid"], true);
$clicks = $this->_obfuscated_7F89A2A783C092A5B3AAA9B1A3ADA68490A49187BAACA1_($statdetails["statid"]);
$open_percent = (0 < $opens ? number_format((int) ($opens + (int) $statdetails["unsubscribecount"]) / (int) $statdetails["multipartrecipients"] * 100, 2) : 0);
$click_percent = (0 < $clicks ? number_format((int) ($clicks + (int) $statdetails["unsubscribecount"]) / (int) $statdetails["multipartrecipients"] * 100, 2) : 0);
$this->template_system->Assign("opens", number_format($opens));
$this->template_system->Assign("opens_percent", number_format($open_percent, 2));
$this->template_system->Assign("clicks", number_format($clicks));
$this->template_system->Assign("clicks_percent", number_format($click_percent, 2));
$this->template_system->Assign("sending_time", (0 < $statdetails["finishtime"] ? $this->_obfuscated_7F9D81B1ABAA9C9F94A4A2BEA19E9DAE96B89488B8AD91_($statdetails["finishtime"] - $statdetails["starttime"]) : GetLang("NotFinishedSending")));
$this->template_system->Assign("mta", $mta);
if( $this->conv == true )
{
$c = $this->_obfuscated_7F8383BEBBAAB39D8B91B89B84A991BBBCBEBD90A29491_($statdetails["statid"]);
}
$mtas = ($mta == false || is_array($mta["group_names"]) && count($mta["group_names"]) == 0 ? "Default" : implode("<br>", $mta["group_names"]));
$this->template_system->Assign("stat_id", $statdetails["statid"]);
$GLOBALS["MTA_STATS_INFO_CONTENT"] = $this->template_system->ParseTemplate("iem_mta_stats_info_content", true);
}
else
{
return NULL;
}
}
/**
* TimeDifference
* Returns the time difference in an easy format / unit system (eg how many seconds, minutes, hours etc).
*
* @param Int $timedifference
* Time difference as an integer to transform.
*
* @return String Time difference plus units.
*/
public function _obfuscated_7F9D81B1ABAA9C9F94A4A2BEA19E9DAE96B89488B8AD91_($timedifference)
{
if( $timedifference < 60 )
{
if( $timedifference == 1 )
{
$timechange = GetLang("TimeTaken_Seconds_One");
}
else
{
$timechange = sprintf(GetLang("TimeTaken_Seconds_Many"), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($timedifference, 0));
}
}
if( 60 <= $timedifference && $timedifference < 3600 )
{
$num_mins = floor($timedifference / 60);
$secs = floor($timedifference % 60);
if( $num_mins == 1 )
{
$timechange = GetLang("TimeTaken_Minutes_One");
}
else
{
$timechange = sprintf(GetLang("TimeTaken_Minutes_Many"), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($num_mins, 0));
}
if( 0 < $secs )
{
$timechange .= ", " . sprintf(GetLang("TimeTaken_Seconds_Many"), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($secs, 0));
}
}
if( 3600 <= $timedifference )
{
$hours = floor($timedifference / 3600);
$mins = floor($timedifference % 3600) / 60;
if( $hours == 1 )
{
if( $mins == 0 )
{
$timechange = GetLang("TimeTaken_Hours_One");
}
else
{
$timechange = sprintf(GetLang("TimeTaken_Hours_One_Minutes"), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($mins, 0));
}
}
if( 1 < $hours )
{
if( $mins == 0 )
{
$timechange = sprintf(GetLang("TimeTaken_Hours_Many"), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($hours, 0));
}
else
{
$timechange = sprintf(GetLang("TimeTaken_Hours_Many_Minutes"), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($hours, 0), $this->_obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($mins, 0));
}
}
}
return $timechange;
}
/**
* FormatNumber
* Formats the number passed in according to language variables and returns the value.
*
* @param Int $number
* Number to format
* @param Int $decimalplaces
* Number of decimal places to format to
*
* @see GetLang
*
* @return String The number formatted
*/
public function _obfuscated_7F858D8D8F9BA8818AB48DADAEAE8AA8A2BC8E9393A881_($number = 0, $decimalplaces = 0)
{
return number_format((double) $number, $decimalplaces, GetLang("NumberFormat_Dec"), GetLang("NumberFormat_Thousands"));
}
public function _obfuscated_7F8383BEBBAAB39D8B91B89B84A991BBBCBEBD90A29491_($statid)
{
$row = $this->db->Fetch($this->db->Query("SELECT COUNT(conversion_id) as total FROM " . SENDSTUDIO_TABLEPREFIX . "conversions WHERE c_statid='" . $statid . "'"));
return (int) $row["total"];
}
public function _obfuscated_7FA0909591819C8995BC8BA792B0819C8AACAE90ABB9B1_($statid, $unique = false)
{
$row = $this->db->Fetch($this->db->Query("SELECT COUNT(DISTINCT subscriberid) as total FROM " . SENDSTUDIO_TABLEPREFIX . "stats_emailopens WHERE statid='" . $statid . "'"));
return (int) $row["total"];
}
public function _obfuscated_7F89A2A783C092A5B3AAA9B1A3ADA68490A49187BAACA1_($statid)
{
$row = $this->db->Fetch($this->db->Query("SELECT COUNT(clickid) as total FROM " . SENDSTUDIO_TABLEPREFIX . "stats_linkclicks WHERE statid='" . $statid . "'"));
return (int) $row["total"];
}
public function _obfuscated_7FA3B4958F9883C0BB91BDBBB6858F908FA8AE9FB68981_($statid = 0)
{
$result = $this->db->Query("SELECT jobid FROM " . SENDSTUDIO_TABLEPREFIX . "stats_newsletters WHERE statid='" . $statid . "'");
$row = $this->db->Fetch($result);
if( !$row )
{
return false;
}
$result = $this->db->Query("SELECT jobdetails FROM " . SENDSTUDIO_TABLEPREFIX . "jobs WHERE jobid='" . $row["jobid"] . "'");
$row = $this->db->Fetch($result);
if( !$row )
{
return false;
}
$job_details = unserialize($row["jobdetails"]);
if( !isset($job_details["mta"]) )
{
return false;
}
return $job_details["mta"];
}
public function _obfuscated_7F99AF82819685B98AA688BEA182B7AF98A0B381A2A791_($jobid = 0)
{
$d = str_replace(".", "_", MT::S()->local_domain());
return (string) $d . "-" . $jobid;
}
public function _obfuscated_7F979BACAAA0BBB3838AB4B79497B68181918FBB919481_($jobid = 0)
{
$jobid = (int) $jobid;
if( $jobid <= 0 )
{
return array( );
}
$query = "SELECT COUNT(statid) AS statcount, SUM(htmlrecipients + textrecipients + multipartrecipients) AS totalsent, SUM(sendsize) AS sendsize FROM " . SENDSTUDIO_TABLEPREFIX . "jobs j, " . SENDSTUDIO_TABLEPREFIX . "stats_newsletters n WHERE j.jobid='" . $jobid . "' AND n.queueid=j.queueid";
$result = $this->db->Query($query);
$row = $this->db->Fetch($result);
if( 1 < $row["statcount"] )
{
$row["sendsize"] = (int) $row["sendsize"] / $row["statcount"];
}
return array( "totalsent" => $row["totalsent"], "sendsize" => $row["sendsize"] );
}
public function upgrade()
{
$jobs = $this->_obfuscated_7FB5A399A0ACBB8C88A888ADA583B0B8A88D85B2A7AA91_();
foreach( $jobs as $key => $value )
{
$jobdetails = unserialize($value["jobdetails"]);
if( isset($jobdetails["mta"]) && isset($jobdetails["mta"]["mtas_uid"]) )
{
$new_details = $this->_obfuscated_7F8CB981BAA8AEA3A285BD8B92A89681A0B4898699B691_($jobdetails);
$jobdetails["mta"] = $new_details;
$q = "UPDATE " . SENDSTUDIO_TABLEPREFIX . "jobs SET jobdetails='" . $this->db->Quote(serialize($jobdetails)) . "'";
$result = $this->db->Query($q);
}
else
{
if( isset($jobdetails["mta"]) && isset($jobdetails["mta"]["groups"]) )
{
}
}
}
}
/**
* Upgrade from 3.2 to 3.4
*/
public function _obfuscated_7F8CB981BAA8AEA3A285BD8B92A89681A0B4898699B691_($jobdetails = array( ))
{
$mtas = array( );
$groups = array( );
$mtas["groups_mail_settings"] = array( );
$mtas["group_names"] = array( );
foreach( $jobdetails["mta"]["data"] as $group_key => $group )
{
$groups[$group_key] = array( );
$mtas["groups_mail_settings"][$group_key] = array( "from" => true, "reply" => true, "bounce" => true );
$mtas["group_names"][$group_key] = $group["group"]["name"];
foreach( $group["mtas"] as $a => $b )
{
$groups[$group_key][] = $b;
}
}
$mtas["groups"] = $groups;
return $mtas;
}
public function _obfuscated_7FB5A399A0ACBB8C88A888ADA583B0B8A88D85B2A7AA91_()
{
$query = "SELECT * FROM " . SENDSTUDIO_TABLEPREFIX . "jobs WHERE jobtype='send'";
$result = $this->db->Query($query);
$data = array( );
while( $row = $this->db->Fetch($result) )
{
$data[] = $row;
}
return $data;
}
public function _obfuscated_7F99AAA7A29A8B9DB4A984B7A59795AFB384B0AB889AA1_($key = "mta_b", $type = "start")
{
if( !isset($GLOBALS["bench_" . $key]) && $type != "start" )
{
return false;
}
if( $type == "start" )
{
$GLOBALS["bench_" . $key] = array( "start" => time(), "calls" => 0 );
}
else
{
if( $type == "call" )
{
$GLOBALS["bench_" . $key]["calls"]++;
}
else
{
if( $type == "end" )
{
$GLOBALS["bench_" . $key]["end"] = time();
$GLOBALS["bench_" . $key]["time"] = $GLOBALS["bench_" . $key]["end"] - $GLOBALS["bench_" . $key]["start"];
return $GLOBALS["bench_" . $key];
}
}
}
}
private function _obfuscated_7F90BF8E8BA8B2BC9C889AA88793A3B49D9996A0A084B1_($str)
{
$str = str_replace("\r\n", "\n", $str);
$str = str_replace("\r", "\n", $str);
$str = str_replace("\n", $this->LE, $str);
return $str;
}
/**
* Prueba del SMTP
*
* @param array $data
* [array]
* @param boolean $mta
* [false]
* @return [type] [description]
*/
public function _obfuscated_7FBBB28D95AC9AA88D8FB985C0BBA4A88D9FB4AE9685B1_($data = array( ), $mta = false)
{
$user = GetUser();
$data["hostname"] = $this->_obfuscated_7FBE8A948395B3909E8AB791B3AABBB3BA8DBE848AB1A1_($data["hostname"]);
$user_email = $user->Get("emailaddress");
$sf = new SendStudio_Functions();
$email_test = (empty($data["mail_test"]) ? MTA_DEFAULT_TEST_MAIL : $data["mail_test"]);
$subject = GetLang("TestSendingSubject");
$text = GetLang("TestSendingEmail");
$email_api = $sf->GetApi("Email");
$smtp = false;
if( !empty($data["hostname"]) )
{
$email_api->Set("SMTPServer", trim($data["hostname"]));
$smtp = true;
}
if( !empty($data["username"]) )
{
$email_api->Set("SMTPUsername", trim($data["username"]));
}
if( !empty($data["password"]) )
{
$email_api->Set("SMTPPassword", trim($data["password"]));
}
if( !empty($data["port"]) )
{
$email_api->Set("SMTPPort", urldecode($data["port"]));
}
$email_api->Set("Subject", $subject);
$email_api->Set("CharSet", SENDSTUDIO_CHARSET);
$sep = (defined("MTA_MAILFROM_SEPARATOR") ? MTA_MAILFROM_SEPARATOR : ">");
$fromaddress = (!empty($data["mail_from"]) ? $data["mail_from"] : $user_email);
$fromname = $user->Get("fullname");
$fn = explode($sep, $fromaddress);
if( 1 < count($fn) )
{
$fromname = trim($fn[0]);
$fromaddress = trim($fn[1]);
}
$email_api->Set("FromAddress", $fromaddress);
$email_api->Set("ReplyTo", (!empty($data["mail_reply"]) ? $data["mail_reply"] : $user_email));
$email_api->Set("BounceAddress", (!empty($data["mail_bounce"]) ? $data["mail_bounce"] : $user_email));
$email_api->Set("FromName", $fromname);
$email_api->Set("Multipart", true);
$email_api->AddBody("text", $text . "\r\nFormat: Text");
$email_api->AddBody("html", $text . " <BR> Format: HTML");
$email_api->AddRecipient($email_test, "", "m");
$cn = explode("@", $email_api->FromAddress);
$send_result = $email_api->Send();
if( $mta )
{
$this->_obfuscated_7FB69F8390A2BBB1B1A39DB882AE83AFBEB582BE8FA681_($mta, 1, (isset($send_result["success"]) && 0 < $send_result["success"] ? "sent" : "failed"), time());
}
$result = array( );
$result["success"] = $send_result["success"];
$result["mail_test"] = $email_test;
if( isset($send_result["success"]) && 0 < $send_result["success"] )
{
$result["msg"] = vsprintf(GetLang("TestEmailSent"), $email_test);
}
else
{
if( $smtp )
{
$failure = array_shift($send_result["fail"]);
$result["msg"] = sprintf(GetLang("TestEmailNotSent"), $email_test, htmlspecialchars($failure[1], ENT_QUOTES, SENDSTUDIO_CHARSET));
}
else
{
$result["msg"] = sprintf(GetLang("TestEmailNotSent"), $email_test, GetLang("ProblemWithLocalMailServer"));
}
}
return $result;
}
public function GUI($do = "nothing", $params = array( ), $tpl = NULL)
{
$this->url_params = $params;
switch( $do )
{
case "conversions_preload":
$tpl->ParseTemplate("conversions_preload");
break;
case "conversion_load":
$table = SENDSTUDIO_TABLEPREFIX . "conversions";
$primaryKey = "conversion_id";
$columns = array( array( "db" => "date", "dt" => 0, "process" => " FROM_UNIXTIME(date) as date" ), array( "db" => "c_subscriberid", "dt" => 1, "process" => " (SELECT emailaddress from " . SENDSTUDIO_TABLEPREFIX . "list_subscribers WHERE `subscriberid`=c_subscriberid LIMIT 1 ) as c_subscriberid " ), array( "db" => "lead_id", "dt" => 2 ), array( "db" => "affid", "dt" => 3 ), array( "db" => "campid", "dt" => 4 ), array( "db" => "oid", "dt" => 5 ), array( "db" => "cid", "dt" => 6 ), array( "db" => "price", "dt" => 7 ), array( "db" => "c_listid", "dt" => 8, "process" => "(SELECT name FROM " . SENDSTUDIO_TABLEPREFIX . "lists WHERE listid=c_listid LIMIT 1) as c_listid" ), array( "db" => "c_statid", "dt" => 9 ), array( "db" => "subid", "dt" => 10, "process" => "(SELECT data from email_subscribers_data WHERE fieldid=(SELECT fieldid FROM email_customfields WHERE name=\"subid\" LIMIT 1) AND subscriberid=c_subscriberid) as subid" ) );
$sql_details = array( "user" => SENDSTUDIO_DATABASE_USER, "pass" => SENDSTUDIO_DATABASE_PASS, "db" => SENDSTUDIO_DATABASE_NAME, "host" => SENDSTUDIO_DATABASE_HOST );
echo json_encode(_obfuscated_7F99BF81BAB4B1C0A781B9B88D9CAA9AAFA0908C878AB1_::_obfuscated_7F8DC0B4AEBFA081A099938A9BABA88BAC879285BB8C91_($_POST, $sql_details, $table, $primaryKey, $columns));
break;
default:
break;
}
}
/**
* Este es todo el handler para las peticiones
*
* @param [type] $n
* [tipo de proceso]
* @return [type] [Template]
*/
public function cf($n)
{
switch( $n )
{
case "manager":
$data = $this->group_info();
$data_json = json_encode($data);
$hc = count($data) * 70;
$hc = (!$hc ? 100 : $hc);
$hc = $hc + 70;
$this->template_system->Assign("groups", $data, true);
$this->template_system->Assign("height_count", $hc, true);
$this->template_system->Assign("data_json", $data_json);
$this->template_system->Assign("FlashMessages", GetFlashMessages(), false);
$this->template_system->ParseTemplate("main");
break;
case "group":
$id = (!empty($_GET["id"]) ? $_GET["id"] : 0);
$f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true);
if( $id != 0 && $f["exist"] == false )
{
FlashMessage(GetLang("Addon_mta_grup_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=add_group");
}
$mtas = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($id, false, false, false, false, true, true);
$usergroups = $this->_obfuscated_7F8AADA48384B38AAABDA6A8A9AB86ABABA0B3B6ABBAA1_();
foreach( $usergroups as $k => $v )
{
foreach( $v["users"] as $_k => $_v )
{
$usergroups[$k]["users"][$_k]["mta_user_in_group"] = (in_array($_v["userid"], $f["data"]["users"]) ? 1 : 0);
}
}
$mta_stats = array( );
foreach( $mtas as $k => $v )
{
}
$gc = count($mtas);
$this->template_system->Assign("group_users", $group_users, true);
$this->template_system->Assign("mtas", $mtas, true);
$this->template_system->Assign("gcmtas", $gc, true);
$this->template_system->Assign("usergroups", $usergroups, true);
$this->template_system->Assign("group_raw", $f["raw"], true);
$this->template_system->Assign("group", $f["data"], true);
$this->template_system->Assign("FlashMessages", GetFlashMessages(), false);
$this->template_system->ParseTemplate("group");
break;
case "ajax":
if( $_SERVER["REQUEST_METHOD"] == "POST" )
{
$action = $_POST["do"];
$uid = (!empty($_POST["uid"]) ? $_POST["uid"] : 0);
$uid = (int) $uid;
switch( $action )
{
case "ajax_bulk_test_load_form":
$this->template_system->assign("ajax", 1);
$this->template_system->assign("do", "display_form");
$mtas = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($uid, true);
$mta_uids = array( );
foreach( $mtas as $key => $value )
{
$mta_uids[] = $value["uid"];
}
$this->template_system->assign("mtas", $mtas);
$form = $this->template_system->ParseTemplate("test_all_mta_accounts", true);
echo json_encode(array( "table" => $form, "uids" => $mta_uids ));
break;
case "mta_test_simple":
$test_send_to = (!empty($_POST["test_send_to"]) ? $_POST["test_send_to"] : "[email protected]");
MT_TOOLS::S()->flush_session();
$mta_details = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($uid);
$mta_details["data"]["mail_test"] = $test_send_to;
$result = $this->_obfuscated_7FBBB28D95AC9AA88D8FB985C0BBA4A88D9FB4AE9685B1_($mta_details["data"]);
if( $result["success"] )
{
$message = "<span style='color:green;font-weight:bold;'>SUCCESS: </span><span style='color:#749C11;'>Email sent to " . $test_send_to . "</span>";
}
else
{
$message = "<span style='color:red;font-weight:bold;'>FAILED:</span> <span style='color:#DB4900;'>" . $result["msg"] . "</span>";
}
echo json_encode(array( "result" => $result["success"], "message" => $message ));
break;
case "header_group_list":
$this->template_system->Assign("do", "h_groups_list");
$this->template_system->Assign("headers", $this->_obfuscated_7F9B8C819FAD84AEB49E89AB9DA8A896B2B18892AAAA91_(), true);
$this->template_system->ParseTemplate("headers");
break;
case "header_group_values":
if( $this->_obfuscated_7FBE8BBAAB9DA59396C0B4A0A8858EA48785AC82AE8A81_($uid) )
{
$data = $this->_obfuscated_7F8FB584B7A98A8296AE88B197BD94A69487838F90ACB1_($uid);
}
else
{
$data = array( );
$data["name"] = "Header-" . time();
$data["status"] = 1;
$data["rotation"] = 0;
$data["headers"] = array( array( "name" => "Test", "value" => "Test-Value" ) );
}
$this->template_system->Assign("do", "h_values");
$this->template_system->Assign("data", $data, true);
$this->template_system->ParseTemplate("headers");
break;
case "header_group_delete":
if( $this->_obfuscated_7FBE8BBAAB9DA59396C0B4A0A8858EA48785AC82AE8A81_($uid) )
{
$this->_obfuscated_7FB1B3ADA6B09F848D9596AEB682C08CB39F95AFB5BE81_($uid);
}
break;
case "header_group_mass":
$hdo = (isset($_POST["headers_action"]) ? $_POST["headers_action"] : "none");
$uids = (isset($_POST["header_uids"]) ? $_POST["header_uids"] : array( ));
$uids = (is_array($uids) ? $uids : array( ));
foreach( $uids as $key => $value )
{
if( !$this->_obfuscated_7FBE8BBAAB9DA59396C0B4A0A8858EA48785AC82AE8A81_((int) $value) )
{
continue;
}
switch( $hdo )
{
case "delete":
$this->_obfuscated_7FB1B3ADA6B09F848D9596AEB682C08CB39F95AFB5BE81_($value);
break;
case "active":
$this->_obfuscated_7FB4BCAD969F969E9C81AD8284BB9B8EAEC0AE91B79581_($value, true);
break;
case "inactive":
$this->_obfuscated_7FB4BCAD969F969E9C81AD8284BB9B8EAEC0AE91B79581_($value, false);
break;
case "rotation_on":
$this->_obfuscated_7F9399B087A78E82A0AEA7A1A1A9A79C8FA5949C8AB6A1_($value, true);
break;
case "rotation_off":
$this->_obfuscated_7F9399B087A78E82A0AEA7A1A1A9A79C8FA5949C8AB6A1_($value, false);
break;
default:
break;
}
}
break;
case "header_group_save":
$data = array( );
$rd = (isset($_POST["name"]) && is_array($_POST["name"]) ? $_POST["name"] : array( ));
$vd = (isset($_POST["value"]) && is_array($_POST["value"]) ? $_POST["value"] : array( ));
foreach( $rd as $key => $value )
{
if( trim($value) == "" )
{
continue;
}
$data[] = array( "name" => $value, "value" => $vd[$key] );
}
$name = (isset($_POST["header_name"]) ? $_POST["header_name"] : "Header-NoName");
$status = (isset($_POST["status"]) ? $_POST["status"] : 1);
$rotation = (isset($_POST["rotation"]) ? $_POST["rotation"] : 0);
if( $this->_obfuscated_7FBE8BBAAB9DA59396C0B4A0A8858EA48785AC82AE8A81_($uid) )
{
$this->_obfuscated_7FB19F9EB7AEBFA69690B8A09583BFA18D98AE9DA991A1_($uid, $name, $data, $status, $rotation);
}
else
{
$this->_obfuscated_7F84AE8699AE8588A8A795B1B3AB8D9D95C0AB938F8391_($name, $data, $status, $rotation);
}
break;
case "header_group_change_status":
$value = (int) ((isset($_POST["value"]) ? $_POST["value"] : 0));
$this->_obfuscated_7FB4BCAD969F969E9C81AD8284BB9B8EAEC0AE91B79581_($uid, ($value ? true : false));
break;
case "header_group_change_rotation":
$value = (int) ((isset($_POST["value"]) ? $_POST["value"] : 0));
$this->_obfuscated_7F9399B087A78E82A0AEA7A1A1A9A79C8FA5949C8AB6A1_($uid, ($value ? true : false));
break;
case "mta_stat":
$mta = (int) ((!empty($_POST["mta"]) ? $_POST["mta"] : 0));
$data = $this->_obfuscated_7F95A290859C89A5849892A5A3AE89AFBBAE90C0BF9BB1_($mta, 20, "daily", "previous", time());
echo json_encode($data);
break;
case "mta_test":
$mta = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($uid);
if( $mta["exist"] )
{
$result = $this->_obfuscated_7FBBB28D95AC9AA88D8FB985C0BBA4A88D9FB4AE9685B1_(array_merge($mta["data"], $_POST), $mta["data"]["uid"]);
echo json_encode($result);
}
else
{
echo json_encode(array( "msg" => "mta not found" ));
}
break;
case "mta_modify":
$mta = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($uid);
if( $mta["exist"] )
{
$result = $this->_obfuscated_7F92AA8889918FB18B82AF90BFBBB1A592A990ADA39681_($_POST);
echo json_encode(array( "msg" => ($result ? "Saved" : "Failed") ));
}
else
{
echo json_encode(array( "msg" => "mta not found" ));
}
break;
default:
echo json_encode(array( "msg" => "invalid request" ));
break;
}
}
else
{
$action = $_GET["do"];
switch( $action )
{
case "mta_blacklist":
$mta_uid = (int) ((!empty($_GET["id"]) ? $_GET["id"] : 0));
$mta = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($mta_uid);
if( $mta["exist"] )
{
$bl = $this->_obfuscated_7F95ADB185BFB5BB8A9D9D99899886A89CA5AC88A09BA1_($mta_uid, time(), "daily");
$this->template_system->Assign("mta", $mta, true);
$this->template_system->Assign("dnsbl", $bl, true);
$this->template_system->ParseTemplate("mta_blacklist");
}
break;
default:
echo json_encode(array( "msg" => "invalid request" ));
break;
}
}
case "mass-mta":
$group_id = (!empty($_GET["group_id"]) ? $_GET["group_id"] : 0);
$action = (!empty($_POST["mtas_action"]) ? $_POST["mtas_action"] : "none");
$valid_actions = array( "none", "delete", "active", "inactive" );
$mtas = (!empty($_POST["mass_mta"]) ? $_POST["mass_mta"] : array( ));
if( !in_array($action, $valid_actions) || $action == "none" )
{
FlashMessage(GetLang("Addon_mta_mass_invalid_action"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
}
else
{
$affected = 0;
if( $action == "delete" )
{
$affected = $this->_obfuscated_7F9894A7BD90AA94BBA88CA9BBAF89A6BCB19E879781A1_($mtas);
FlashMessage(sprintf(GetLang("Addon_mta_mass_delete_sucess"), $affected), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
}
else
{
if( $action == "active" )
{
$affected = $this->_obfuscated_7FADB3ACAFB1BFBA978597938CA0B295A0B6A3B38D9E91_($mtas);
FlashMessage(sprintf(GetLang("Addon_mta_mass_active_sucess"), $affected), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
}
else
{
if( $action == "inactive" )
{
$affected = $this->_obfuscated_7FABB58B99BDA0BD95BEA3A7AEBF949FA9A0AAB6A8A8B1_($mtas);
FlashMessage(sprintf(GetLang("Addon_mta_mass_inactive_sucess"), $affected), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
}
}
}
}
break;
case "handle-mta":
$group_id = (!empty($_GET["group_id"]) ? $_GET["group_id"] : 0);
$id = (!empty($_GET["id"]) ? $_GET["id"] : 0);
$group = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($group_id, true);
$f = $this->mta_details($group_id, $id, true);
if( $id != 0 && $f["exist"] == false )
{
FlashMessage(GetLang("Addon_mta_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
}
if( $_SERVER["REQUEST_METHOD"] == "POST" )
{
if( isset($_POST["test_smtp"]) )
{
if( isset($_POST["uid"]) )
{
$mta = (int) $_POST["uid"];
}
else
{
$mta = false;
}
$result = $this->_obfuscated_7FBBB28D95AC9AA88D8FB985C0BBA4A88D9FB4AE9685B1_($_POST, $mta);
FlashMessage($result["msg"], (!$result["success"] ? SS_FLASH_MSG_ERROR : SS_FLASH_MSG_SUCCESS), NULL);
$group["data"]["mta_group_name"] = ($group["exist"] == false ? GetLang("Addon_mta_nongrouped") : $group["data"]["mta_group_name"]);
$this->template_system->assign("do", ($f["exist"] == false ? "add" : "update"));
$this->template_system->assign("group", $group["data"], true);
$this->template_system->assign("value", $_POST, true);
$this->template_system->Assign("FlashMessages", GetFlashMessages());
$this->template_system->ParseTemplate("mta_add_mta");
}
else
{
if( $_POST["mta_do"] == "update" )
{
$result = $this->_obfuscated_7F8DA79FB384C09E97B2B3BCA89DB2B8B896AAA5BE8E91_($_POST);
if( $result )
{
FlashMessage(GetLang("Addon_mta_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
}
else
{
FlashMessage(GetLang("Addon_mta_add_failed"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
}
}
else
{
if( $this->_obfuscated_7F93939DA59B8985AEA38A8292AD95A181829B8A81BDB1_($_POST) )
{
FlashMessage(GetLang("Addon_mta_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
}
else
{
FlashMessage(GetLang("Addon_mta_add_failed"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
}
}
}
}
else
{
$group["data"]["mta_group_name"] = ($group["exist"] == false ? GetLang("Addon_mta_nongrouped") : $group["data"]["mta_group_name"]);
$this->template_system->assign("do", ($f["exist"] == false ? "add" : "update"));
$this->template_system->assign("group", $group["data"], true);
$this->template_system->assign("value", $f["data"], true);
$this->template_system->Assign("FlashMessages", GetFlashMessages(), false);
$this->template_system->ParseTemplate("mta_add_mta");
}
break;
case "delete-mta":
$id = (!empty($_GET["id"]) ? $_GET["id"] : 0);
$group_id = (!empty($_GET["group_id"]) ? $_GET["group_id"] : 0);
$f = $this->_obfuscated_7FA189A2A79592B1B1BC889E85B0A8AF968EBC85B7B991_($id);
if( $f["exist"] == false )
{
FlashMessage(GetLang("Addon_mta_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
}
else
{
$this->_obfuscated_7FA9C089A0A2AC91BAA7B29581AFBF99A8C0A7A1BCBB81_($id);
FlashMessage(GetLang("Addon_mta_mta_deleted"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
}
break;
case "add-group":
if( $_SERVER["REQUEST_METHOD"] == "POST" )
{
if( $_POST["mta_group_do"] == "update" )
{
$this->_obfuscated_7FACB8A1B18BBA9D95ADBF82A98BAE8AA89A8BAEA08381_($_POST);
$na = $this->db->NumAffected();
FlashMessage(GetLang("Addon_mta_group_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=manager");
}
else
{
$ng = $this->_obfuscated_7FB4BBA8B0BEB192A09086B288A89481989C9F8396A3B1_($_POST);
if( $ng )
{
FlashMessage(GetLang("Addon_mta_group_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $ng);
}
else
{
FlashMessage(GetLang("Addon_mta_group_add_failed"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=manager");
}
}
}
else
{
$id = (!empty($_GET["id"]) ? $_GET["id"] : 0);
$f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true);
if( $id != 0 && $f["exist"] == false )
{
FlashMessage(GetLang("Addon_mta_grup_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=Manager");
}
$this->template_system->assign("do", ($f["exist"] == false ? "add" : "update"));
$this->template_system->assign("value", $f["data"], true);
$this->template_system->ParseTemplate("mta_add_group");
}
break;
case "export-group":
$id = (!empty($_GET["id"]) ? $_GET["id"] : 0);
$f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true);
if( $id != 0 && $f["exist"] == false )
{
FlashMessage(GetLang("Addon_mta_grup_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=manager");
}
$mtas = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($id);
$this->template_system->Assign("mtas", $mtas, true);
$this->template_system->Assign("groupid", $id, true);
$this->template_system->ParseTemplate("group_export");
break;
case "delete-group":
$id = (!empty($_GET["id"]) ? $_GET["id"] : 0);
$f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true);
if( $id != 0 && $f["exist"] == false )
{
FlashMessage(GetLang("Addon_mta_group_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=Manager");
}
else
{
$this->_obfuscated_7FB791A7848890A3969C88B581A389A9BEA0868AA39A81_($id);
FlashMessage(GetLang("Addon_mta_group_deleted"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=Manager");
}
break;
case "add-mta-bulk":
if( $_SERVER["REQUEST_METHOD"] == "POST" )
{
if( !empty($_POST["bulk"]) && isset($_POST["mta_group_uid"]) )
{
$group = (int) $_POST["mta_group_uid"];
$data = trim($_POST["bulk"]);
$mtas = explode(PHP_EOL, $data);
foreach( $mtas as $k => $v )
{
$mta = explode("|", trim($v));
$mta_data = array( "hostname" => trim($mta[0]), "username" => trim($mta[1]), "password" => trim($mta[2]), "port" => (empty($mta[3]) ? ADDON_MTA_DEFAULT_SMTP_PORT : $mta[3]), "name" => (empty($mta[4]) ? $mta[0] : $mta[4]), "mail_from" => $mta[5], "mail_reply" => $mta[6], "mail_bounce" => $mta[7], "mail_test" => $mta[8], "mta_group_uid" => $group );
$result = $this->_obfuscated_7F93939DA59B8985AEA38A8292AD95A181829B8A81BDB1_($mta_data);
}
FlashMessage(GetLang("Addon_mta_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group);
}
else
{
if( isset($_POST["mta_group_uid"]) )
{
$group = (int) $_POST["mta_group_uid"];
FlashMessage(GetLang("Addon_mta_add_empty"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group);
}
else
{
FlashMessage(GetLang("Addon_mta_add_empty"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=manager");
}
}
}
break;
case "process":
if( $_SERVER["REQUEST_METHOD"] == "POST" )
{
$action = (!empty($_POST["do"]) ? $_POST["do"] : "none");
$data = (!empty($_POST["data"]) ? $_POST["data"] : array( ));
switch( $action )
{
case "mass_group":
$action = (!empty($data["action"]) ? $data["action"] : "none");
$valid_actions = array( "none", "delete", "active", "inactive" );
$groups = (!empty($data["groups"]) ? $data["groups"] : array( ));
if( !in_array($action, $valid_actions) || $action == "none" )
{
FlashMessage(GetLang("Addon_mta_mass_invalid_action"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $group_id);
}
else
{
$affected = 0;
$mtas = array( );
foreach( $groups as $key => $value )
{
$m = $this->_obfuscated_7F9AA38EA382AAB7B08E889D9197A09D8D98AE88A181A1_($value, true);
foreach( $m as $akey => $avalue )
{
$mtas[] = $avalue["uid"];
}
}
if( $action == "delete" )
{
foreach( $groups as $key => $id )
{
$f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true);
if( $id != 0 && $f["exist"] == false )
{
}
else
{
$this->_obfuscated_7FB791A7848890A3969C88B581A389A9BEA0868AA39A81_($id);
}
}
}
else
{
if( $action == "active" )
{
$affected = $this->_obfuscated_7FADB3ACAFB1BFBA978597938CA0B295A0B6A3B38D9E91_($mtas);
}
else
{
if( $action == "inactive" )
{
$affected = $this->_obfuscated_7FABB58B99BDA0BD95BEA3A7AEBF949FA9A0AAB6A8A8B1_($mtas);
}
}
}
}
FlashMessage(GetLang("Addon_mta_group_modified"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=manager");
break;
case "group_assign_user":
$id = (!empty($data["group_uid"]) ? $data["group_uid"] : 0);
$f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true);
if( $f["exist"] == false )
{
FlashMessage(GetLang("Addon_mta_group_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=manager");
}
else
{
$users = (empty($data["users"]) ? array( ) : $data["users"]);
$f = ((int) empty($data["force"]) ? 0 : $data["force"]);
$fms = ((int) empty($data["force_ms"]) ? 0 : $data["force_ms"]);
$users = (empty($data["users"]) ? array( ) : $data["users"]);
$this->_obfuscated_7FA7B6A0B1BB97968DB4B99E8D8FB5AD9887988BBCAA81_($id, $users, $f, $fms);
FlashMessage(GetLang("Addon_mta_group_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $id);
}
break;
case "group_settings":
$id = (!empty($data["group_uid"]) ? $data["group_uid"] : 0);
$f = $this->_obfuscated_7FA0A493BAB5888A98A7B8888394968AADB7A2BA948991_($id, true);
if( $f["exist"] == false )
{
FlashMessage(GetLang("Addon_mta_group_not_exist"), SS_FLASH_MSG_ERROR, "index.php?Page=Addons&Addon=mta&Action=manager");
}
else
{
$force = (int) ((!empty($data["force"]) ? $data["force"] : 0));
$force_from = (int) ((!empty($data["force_from"]) ? $data["force_from"] : 0));
$force_reply = (int) ((!empty($data["force_reply"]) ? $data["force_reply"] : 0));
$force_bounce = (int) ((!empty($data["force_bounce"]) ? $data["force_bounce"] : 0));
$result = MT::S()->db->UpdateQuery("addon_mta_group", array( "s_force" => $force, "s_force_from" => $force_from, "s_force_reply" => $force_reply, "s_force_bounce" => $force_bounce ), "`uid`=" . $id);
FlashMessage(GetLang("Addon_mta_group_add_success"), SS_FLASH_MSG_SUCCESS, "index.php?Page=Addons&Addon=mta&Action=group&id=" . $id);
}
break;
default:
break;
}
}
else
{
$action = $_GET["do"];
break;
}
case "sending-errors":
$jobid = (!empty($_GET["jobid"]) ? $_GET["jobid"] : 0);
$sending_errors = $this->sending_errors($jobid);
$this->template_system->assign("data", $sending_errors, true);
$this->template_system->ParseTemplate("sending_errors");
break;
default:
break;
}
break;
}
public function _obfuscated_7FA29589998C8EBDB29B9AAFAFA58FB38EA0B79E92B791_($host = "127.0.0.1", $type = "A", $ns = "8.8.8.8")
{
$nss = array( "8.8.8.8", "8.8.4.4", "208.67.222.222", "209.244.0.3", "4.2.2.4", "204.97.212.10", "24.244.175.2" );
$nss = ($ns ? (is_array($ns) ? $ns : array( $ns )) : $nss);
$data = false;
foreach( $nss as $key => $value )
{
$query = new _obfuscated_7FAE8BAA81A5B083A7ABBFA48BA6B69AB6B4A3A3B58E81_($value, 53, 3, true, false, false);
$result = $query->Query($host, $type);
$result_count = $result->count;
for( $a = 0; $a < $result_count; $a++ )
{
if( $result->results[$a]->typeid == $type )
{
$data = $result->results[$a]->data;
return $data;
}
}
unset($query);
}
return $data;
}
public function _obfuscated_7F92AE8F9EAABBB3B794878CB790878BA783A3B69999B1_()
{
$socket = @fsockopen("127.0.0.1", 8080, $errno, $errstr, $timeout);
fwrite($socket, pack("C3", 5, 1, 0));
$proxy_status = fread($socket, 8192);
if( $proxy_status == pack("C2", 5, 0) )
{
$proxy_status = 2;
fwrite($socket, pack("C5", 5, 1, 0, 3, strlen($server)) . $server . pack("n", $port));
$proxy_buffer = fread($socket, 8192);
if( $proxy_buffer == pack("C10", 5, 0, 0, 1, 0, 0, 0, 0, 0, 0) )
{
$proxy_status = 3;
$proxy_ready_to_connect = ($proxy_status == 3 ? true : false);
if( !$proxy_ready_to_connect )
{
$this->ErrorCode = 1;
$this->Error = sprintf(GetLang("UnableToConnectToEmailServer"), $errstr . "(" . $errno . ")");
return false;
}
}
else
{
$proxy_status = -3;
$this->ErrorCode = 3;
$this->Error = "The SOCKS server failed to connect to the specificed host and port. ( " . $server . ":" . $port . " )";
fclose($socket);
$this->_obfuscated_7FA9B4BE8DB6ACA08D8AA59DB783AC838FA6B1C087AA81_("Got error " . $this->Error);
return false;
}
}
else
{
$proxy_status = -2;
$this->ErrorCode = 2;
$this->Error = "Cannot connect to Proxy";
fclose($socket);
$this->_obfuscated_7FA9B4BE8DB6ACA08D8AA59DB783AC838FA6B1C087AA81_("Got error " . $this->Error);
return false;
}
}
}
function ___d($data)
{
}
function kio_general_mta()
{
$p = _obfuscated_0D373C03163331133B3C25073F340B17142208120B1322_();
return $p["generalk"];
}
Function Calls
defined | 1 |
Stats
MD5 | 8dafe2f4bd03f5b52174af437335505d |
Eval Count | 0 |
Decode Time | 605 ms |