Your IP : 172.28.240.42


Current Path : /var/www/html/clients/old.e-nkama.ru/e-nkama_bitrix/bitrix/modules/mail/classes/mysql/
Upload File :
Current File : /var/www/html/clients/old.e-nkama.ru/e-nkama_bitrix/bitrix/modules/mail/classes/mysql/mail.php

<?
/*
##############################################
# Bitrix Site Manager                        #
# Copyright (c) 2002 - 2007 Bitrix           #
# http://www.bitrixsoft.com                  #
# mailto:admin@bitrixsoft.com                #
##############################################
*/
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/mail/classes/general/mail.php");
class CMailbox extends CAllMailBox
{
	function CleanUp()
	{
		global $DB;
		$days = COption::GetOptionInt("mail", "time_keep_log", B_MAIL_KEEP_LOG);

		$strSql = "DELETE FROM b_mail_log WHERE DATE_INSERT < DATE_ADD(now(), INTERVAL -$days DAY)";
		$DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__);

		$mt = GetMicroTime();
		$dbr = $DB->Query("SELECT MS.ID FROM b_mail_message MS, b_mail_mailbox MB WHERE MS.MAILBOX_ID=MB.ID AND MB.MAX_KEEP_DAYS>0 AND MS.DATE_INSERT < DATE_ADD(now(), INTERVAL -MB.MAX_KEEP_DAYS DAY)");
		while($ar = $dbr->Fetch())
		{
			CMailMessage::Delete($ar["ID"]);
			if(GetMicroTime() - $mt > 10 * 1000)
				break;
		}

		//$strSql = "DELETE FROM b_mail_spam_weight WHERE TIMESTAMP_X < DATE_ADD(now(), INTERVAL -7 DAY) AND TOTAL_CNT<100";
		//$DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__);

		//$strSql = "DELETE FROM b_mail_spam_weight WHERE TIMESTAMP_X < DATE_ADD(now(), INTERVAL -14 DAY)";
		//$DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__);

		return "CMailbox::CleanUp();";
	}
}

class CMailUtil extends CAllMailUtil
{
	function IsSizeAllowed($size)
	{
		global $DB;
		global $B_MAIL_MAX_ALLOWED;
		if($B_MAIL_MAX_ALLOWED===false)
		{
			$db_max_allowed = $DB->Query("SHOW VARIABLES LIKE 'MAX_ALLOWED_PACKET'");
			$ar_max_allowed = $db_max_allowed->Fetch();
			$B_MAIL_MAX_ALLOWED = IntVal($ar_max_allowed["Value"]);
		}

		if($B_MAIL_MAX_ALLOWED<=$size)
		{
			return false;
			/*
			if($B_MAIL_MAX_ALLOWED==-1)
				return false;
			if($DB->Query("SET MAX_ALLOWED_PACKET=99999999999", true)!==false)
			{
				$db_max_allowed = $DB->Query("SHOW VARIABLES LIKE 'MAX_ALLOWED_PACKET'");
				$ar_max_allowed = $db_max_allowed->Fetch();
				$B_MAIL_MAX_ALLOWED = IntVal($ar_max_allowed["Value"]);
			}
			else
			{
				$B_MAIL_MAX_ALLOWED = -1;
				return false;
			}
			*/
		}
		return true;
	}
}

class CMailMessage extends CAllMailMessage
{
	function AddAttachment($arFields)
	{
		global $DB;

		$strSql = "SELECT ATTACHMENTS FROM b_mail_message WHERE ID=".IntVal($arFields["MESSAGE_ID"]);
		$dbr = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__);
		if(!($dbr_arr = $dbr->Fetch()))
			return false;

		$n = IntVal($dbr_arr["ATTACHMENTS"])+1;
		if(strlen($arFields["FILE_NAME"])<=0)
		{
			$arFields["FILE_NAME"] = $n.".";
			if(strpos($arFields["CONTENT_TYPE"], "message/")===0)
				$arFields["FILE_NAME"] .= "msg";
			else
				$arFields["FILE_NAME"] .= "tmp";
		}

		if(is_set($arFields, "CONTENT_TYPE"))
			$arFields["CONTENT_TYPE"] = strtolower($arFields["CONTENT_TYPE"]);

		if(strpos($arFields["CONTENT_TYPE"], "image/")===0 && (!is_set($arFields, "IMAGE_WIDTH") || !is_set($arFields, "IMAGE_HEIGHT")) && is_set($arFields, "FILE_DATA"))
		{
			CheckDirPath($_SERVER['DOCUMENT_ROOT'].BX_PERSONAL_ROOT."/tmp/mail/");
			$filename = $_SERVER['DOCUMENT_ROOT'].BX_PERSONAL_ROOT.'/tmp/mail/'.md5(uniqid("")).'.tmp';
			if($handle = @fopen($filename, 'wb'))
			{
				if(!@fwrite($handle, $arFields["FILE_DATA"]))
					fclose($handle);
				else
				{
					fclose($handle);
					$img_arr = @getimagesize($filename);
					$arFields["IMAGE_WIDTH"] = $img_arr[0];
					$arFields["IMAGE_HEIGHT"] = $img_arr[1];
				}
				@unlink($filename);
			}
		}

		if(is_set($arFields, "FILE_DATA") && !is_set($arFields, "FILE_SIZE"))
			$arFields["FILE_SIZE"] = strlen($arFields["FILE_DATA"]);

		if(!CMailUtil::IsSizeAllowed(strlen($DB->ForSQL($arFields["FILE_DATA"]))+100))
			return false;

		$ID = $DB->Add("b_mail_msg_attachment", $arFields, array("FILE_DATA"));

		if($ID>0)
		{
			$strSql = "UPDATE b_mail_message SET ATTACHMENTS=".$n." WHERE ID=".IntVal($arFields["MESSAGE_ID"]);
			$DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__);
		}

		return $ID;

		/*
		$arFile = Array(
				"name"=>$filename,
				"size"=>strlen($part["BODY"]),
				"type"=>$part["CONTENT-TYPE"],
				"content"=>$part["BODY"],
				"MODULE_ID"=>"mail"
			);
		$file_id = CFile::SaveFile($arFile, "mail");
		*/
	}
}
/*
if($_GET['x']=='y')
{
	//define("BX_MAIL_DEFAULT_CHARSET", "windows-1251");
	$message = file_get_contents($_SERVER['DOCUMENT_ROOT']."/2.eml");
	$message_id = CMailMessage::AddMessage(8, $message, "windows-1251");
}

*/
?>