R49529 - /trunk/mail/inc/class.mail_compose.inc.php

Author: ralfbecker
New Revision: 49529

URL: http://svn.stylite.de/viewvc/egroupware?rev=49529&view=rev
Log:
combined mail account and identity/signature selection, allows now to send with a different identity, also fixed tons of IDE warnings

Modified:
trunk/mail/inc/class.mail_compose.inc.php

Modified: trunk/mail/inc/class.mail_compose.inc.php
URL: http://svn.stylite.de/viewvc/egroupware/trunk/mail/inc/class.mail_compose.inc.php?rev=49529&r1=49528&r2=49529&view=diff

— trunk/mail/inc/class.mail_compose.inc.php (original)
+++ trunk/mail/inc/class.mail_compose.inc.php Thu Nov 20 18:53:52 2014
@@ -10,15 +10,11 @@

  • @version $Id$
    */

-include_once(EGW_INCLUDE_ROOT.’/etemplate/inc/class.etemplate.inc.php’);

/**

  • Mail interface class for compose mails in popup
    */

class mail_compose
{

var $public_functions = array
(
	'compose'		=> True,

@@ -70,20 +66,16 @@
//error_log(METHOD.LINE.’ js_link_registry not set, force it:’.array2string($GLOBALS[‘egw_info’][‘flags’][‘js_link_registry’]));
$GLOBALS[‘egw_info’][‘flags’][‘js_link_registry’]=true;
}

  •   $this->displayCharset   = $GLOBALS['egw']->translation->charset();
    
  •   $profileID = 0;
    
  •   if (isset($GLOBALS['egw_info']['user']['preferences']['mail']['ActiveProfileID']))
    
  •   		$profileID = (int)$GLOBALS['egw_info']['user']['preferences']['mail']['ActiveProfileID'];
    
  •   $this->displayCharset   = translation::charset();
    
  •   $profileID = (int)$GLOBALS['egw_info']['user']['preferences']['mail']['ActiveProfileID'];
      $this->mail_bo	= mail_bo::getInstance(true,$profileID);
    
  •   $profileID = $GLOBALS['egw_info']['user']['preferences']['mail']['ActiveProfileID'] = $this->mail_bo->profileID;
    
  •   $GLOBALS['egw_info']['user']['preferences']['mail']['ActiveProfileID'] = $this->mail_bo->profileID;
    
  •   $this->mailPreferences	=& $this->mail_bo->mailPreferences;
      //force the default for the forwarding -> asmail
    
  •   if (is_array($this->mailPreferences)) {
    
  •   	if (!array_key_exists('message_forwarding',$this->mailPreferences)
    
  •   		|| !isset($this->mailPreferences['message_forwarding'])
    
  •   		|| empty($this->mailPreferences['message_forwarding'])) $this->mailPreferences['message_forwarding'] = 'asmail';
    
  •   } else {
    
  •   if (!is_array($this->mailPreferences) || empty($this->mailPreferences['message_forwarding']))
    
  •   {
      	$this->mailPreferences['message_forwarding'] = 'asmail';
      }
      if (is_null(mail_bo::$mailConfig)) mail_bo::$mailConfig = config::read('mail');
    

@@ -122,13 +114,20 @@
*/
function compose(array $_content=null,$msg=null, $_focusElement=‘to’,$suppressSigOnTop=false, $isReply=false)
{

  •   if (isset($GLOBALS['egw_info']['user']['preferences']['mail']['LastSignatureIDUsed']) && !empty($GLOBALS['egw_info']['user']['preferences']['mail']['LastSignatureIDUsed']))
    
  •   unset($msg);	// not used
    
  •   if (!empty($GLOBALS['egw_info']['user']['preferences']['mail']['LastSignatureIDUsed']))
      {
      	$sigPref = $GLOBALS['egw_info']['user']['preferences']['mail']['LastSignatureIDUsed'];
      }
      else
      {
      	$sigPref = array();
    
  •   }
    
  •   // split mailaccount (acc_id) and signature (ident_id)
    
  •   if ($_content && isset($_content['mailaccount']))
    
  •   {
    
  •   	list($_content['mailaccount'], $_content['signatureid']) = explode(':', $_content['mailaccount']);
      }
      //error_log(__METHOD__.__LINE__.array2string($sigPref));
      //lang('compose'),lang('from') // needed to be found by translationtools
    

@@ -238,7 +237,7 @@
foreach($attachments as $i => $att)
{
$remove=false;

  •   		foreach($toDelete as $k =>$pressed)
    
  •   		foreach(array_keys($toDelete) as $k)
      		{
      			if ($att['tmp_name']==$k) $remove=true;
      		}
    

@@ -515,8 +514,8 @@
$_htmlConfig = mail_bo::$htmLawed_config;
mail_bo::$htmLawed_config[‘comment’] = 2;
mail_bo::$htmLawed_config[‘transform_anchor’] = false;

  •   		$oldSigText = str_replace(array("\r","\t","<br />\n",": "),array("","","<br />",":"),($_currentMode == 'html'?html::purify($oldSigText,null,array(),true):$oldSigText));
    
  •   		//error_log(__METHOD__.'Old(clean):'.$oldSigText.'#');
    
  •   		$oldSigTextCleaned = str_replace(array("\r","\t","<br />\n",": "),array("","","<br />",":"),($_currentMode == 'html'?html::purify($oldSigText,null,array(),true):$oldSigText));
    
  •   		//error_log(__METHOD__.'Old(clean):'.$oldSigTextCleaned.'#');
      		if ($_currentMode == 'html')
      		{
      			$content['body'] = str_replace("\n",'\n',$content['body']);	// dont know why, but \n screws up preg_replace
    

@@ -527,10 +526,12 @@
mail_bo::$htmLawed_config = $_htmlConfig;
if ($_currentMode == ‘html’)
{

  •   			$replaced = null;
      			$content['body'] = preg_replace($reg='|'.preg_quote('<!-- HTMLSIGBEGIN -->','|').'.*'.preg_quote('<!-- HTMLSIGEND -->','|').'|u',
      				$rep='<!-- HTMLSIGBEGIN -->'.$sigText.'<!-- HTMLSIGEND -->', $in=$content['body'], -1, $replaced);
      			$content['body'] = str_replace(array('\n',"\xe2\x80\x93","\xe2\x80\x94","\xe2\x82\xac"),array("\n",'&ndash;','&mdash;','&euro;'),$content['body']);
      			//error_log(__METHOD__."() preg_replace('$reg', '$rep', '$in', -1)='".$content['body']."', replaced=$replaced");
    
  •   			unset($rep, $in);
      			if ($replaced)
      			{
      				$content['signatureid'] = $_content['signatureid'] = $presetSig = $_signatureid;
    

@@ -539,31 +540,31 @@
else
{
// try the old way

  •   				$found = (strlen(trim($oldSigText))>0?strpos($content['body'],trim($oldSigText)):false);
    
  •   				$found = (strlen(trim($oldSigTextCleaned))>0?strpos($content['body'],trim($oldSigTextCleaned)):false);
      			}
      		}
      		else
      		{
    
  •   			$found = (strlen(trim($oldSigText))>0?strpos($content['body'],trim($oldSigText)):false);
    
  •   		}
    
  •   		if ($found !== false && $_oldSig != -2 && !(empty($oldSigText) || trim($this->convertHTMLToText($oldSigText,true,true)) ==''))
    
  •   			$found = (strlen(trim($oldSigTextCleaned))>0?strpos($content['body'],trim($oldSigTextCleaned)):false);
    
  •   		}
    
  •   		if ($found !== false && $_oldSig != -2 && !(empty($oldSigTextCleaned) || trim($this->convertHTMLToText($oldSigTextCleaned,true,true)) ==''))
      		{
      			//error_log(__METHOD__.'Old Content:'.$content['body'].'#');
    
  •   			$_oldSigText = preg_quote($oldSigText,'~');
    
  •   			$_oldSigText = preg_quote($oldSigTextCleaned,'~');
      			//error_log(__METHOD__.'Old(masked):'.$_oldSigText.'#');
      			$content['body'] = preg_replace('~'.$_oldSigText.'~mi',$sigText,$content['body'],1);
      			//error_log(__METHOD__.'new Content:'.$content['body'].'#');
      		}
    
  •   		if ($_oldSig == -2 && (empty($oldSigText) || trim($this->convertHTMLToText($oldSigText,true,true)) ==''))
    
  •   		if ($_oldSig == -2 && (empty($oldSigTextCleaned) || trim($this->convertHTMLToText($oldSigTextCleaned,true,true)) ==''))
      		{
      			// if there is no sig selected, there is no way to replace a signature
      		}
    
      		if ($found === false)
      		{
    
  •   			if($this->_debug) error_log(__METHOD__." Old Signature failed to match:".$oldSigText);
    
  •   			if($this->_debug) error_log(__METHOD__." Old Signature failed to match:".$oldSigTextCleaned);
      			if($this->_debug) error_log(__METHOD__." Compare content:".$content['body']);
      		}
      		else
    

@@ -730,7 +731,6 @@
if($innerCounter==0 && !empty($email) && in_array($completeMailString ,$mailtoArray) === false) {
$i++;
$innerCounter++;

  •   									$str = $GLOBALS['egw']->translation->convert(trim($contact['n_fn'] ? $contact['n_fn'] : $contact['fn']) .' <'. trim($email) .'>', $this->charset, 'utf-8');
      									$mailtoArray[$i] = $completeMailString;
      								}
      							}
    

@@ -837,9 +837,9 @@
//must contain =
if (strpos($rval,’=’)!== false)
{

  •   				$k = $v = '';
      				list($k,$v) = explode('=',$rval,2);
    
  •   				$karr[$k] = $v;
    
  •   				$karr[$k] = (string)$v;
    
  •   				unset($k,$v);
      			}
      		}
      		//error_log(__METHOD__.__LINE__.$content['to'].'->'.array2string($karr));
    

@@ -907,104 +907,6 @@
$presetId = NULL;
if (($suppressSigOnTop || $content[‘isDraft’]) && !empty($content[‘mailaccount’])) $presetId = (int)$content[‘mailaccount’];
if (!empty($sigPref[$this->mail_bo->profileID]) && (empty($presetSig) || $presetSig==-1 || empty($content[‘signatureid’]) || $content[‘signatureid’]==-1)) $presetSig=$sigPref[$this->mail_bo->profileID];

-/*

  •   $this->t->set_var("focusElement",$_focusElement);
    

-*/

-/*

  •   lang('No recipient address given!');
    
  •   lang('No subject given!');
    
  •   lang("You can either choose to save as infolog OR tracker, not both.");
    

-*/

  •   // prepare signatures, the selected sig may be used on top of the body
    
  •   //identities and signature stuff
    
  •   $allIdentities = mail_bo::getAllIdentities(null,true);
    
  •   $selectedMailAccount = ($content['mailaccount']?$content['mailaccount']:$this->mail_bo->profileID);
    
  •   $acc = emailadmin_account::read($this->mail_bo->profileID);
    
  •   $selectSignatures = array(
    
  •   	'-2' => lang('no signature')
    
  •   );
    
  •   //unset($allIdentities[0]);
    
  •   //_debug_array($allIdentities);
    
  •   if (is_null(mail_bo::$mailConfig)) mail_bo::$mailConfig = config::read('mail');
    
  •   // not set? -> use default, means full display of all available data
    
  •   if (!isset(mail_bo::$mailConfig['how2displayIdentities'])) mail_bo::$mailConfig['how2displayIdentities'] ='';
    
  •   $defaultIds = array();
    
  •   $identities = array();
    
  •   foreach($allIdentities as $key => $singleIdentity) {
    
  •   	if (isset($identities[$singleIdentity['acc_id']])) continue; // only use the first
    
  •   	$iS = mail_bo::generateIdentityString($singleIdentity);
    
  •   	if (mail_bo::$mailConfig['how2displayIdentities']=='' || count($allIdentities) ==1)
    
  •   	{
    
  •   		$id_prepend ='';
    
  •   	}
    
  •   	else
    
  •   	{
    
  •   		$id_prepend = '('.$singleIdentity['ident_id'].') ';
    
  •   	}
    
  •   	if(empty($defaultIds)&& $singleIdentity['ident_id']==$acc['ident_id'])
    
  •   	{
    
  •   		$defaultIds[$singleIdentity['ident_id']] = $singleIdentity['ident_id'];
    
  •   		$selectedSender = $singleIdentity['acc_id'];
    
  •   	}
    
  •   	//if ($singleIdentity->default) error_log(__METHOD__.__LINE__.':'.$presetId.'->'.$key.'('.$singleIdentity->id.')'.'#'.$iS.'#');
    
  •   	if (array_search($id_prepend.$iS,$identities)===false)
    
  •   	{
    
  •   		$identities[$singleIdentity['acc_id']] = $id_prepend.$iS;
    
  •   		$sel_options['mailaccount'][$singleIdentity['acc_id']] = $id_prepend.$iS;
    
  •   	}
    
  •   }
    
  •   $sel_options['mailaccount'] = iterator_to_array(emailadmin_account::search());
    
  •   //error_log(__METHOD__.__LINE__.' Identities regarded/marked as default:'.array2string($defaultIds). ' MailProfileActive:'.$this->mail_bo->profileID);
    
  •   // if there are 2 defaultIDs, its most likely, that the user choose to set
    
  •   // the one not being the activeServerProfile to be his default Identity
    
  •   //if (count($defaultIds)>1) unset($defaultIds[$this->mail_bo->profileID]);
    
  •   $allSignatures = $this->mail_bo->getAccountIdentities($selectedMailAccount);
    
  •   $defaultIdentity = 0;
    
  •   // we want identity info in a length approx between 50 and 100 char
    
  •   $longestName = 50;
    
  •   foreach($allSignatures as $key => $singleIdentity) {
    
  •   	if (strlen($singleIdentity['ident_name'])>$longestName) $longestName=strlen($singleIdentity['ident_name']);
    
  •   }
    
  •   if ($longestName>100) $longestName=100;
    
  •   foreach($allSignatures as $key => $singleIdentity) {
    
  •   	//error_log(__METHOD__.__LINE__.array2string($singleIdentity));
    
  •   	//$identities[$singleIdentity['ident_id']] = $singleIdentity['ident_realname'].' <'.$singleIdentity['ident_email'].'>';
    
  •   	$iS = mail_bo::generateIdentityString($singleIdentity);
    
  •   	if (mail_bo::$mailConfig['how2displayIdentities']=='' || count($allIdentities) ==1)
    
  •   	{
    
  •   		$id_prepend ='';
    
  •   	}
    
  •   	else
    
  •   	{
    
  •   		$id_prepend = '('.$singleIdentity['ident_id'].') ';
    
  •   	}
    
  •   	$buff='';
    
  •   	if (!empty($singleIdentity['ident_name']) && !in_array(lang('Signature').': '.$id_prepend.$singleIdentity['ident_name'],$selectSignatures))
    
  •   	{
    
  •   		$buff = $singleIdentity['ident_name'];
    
  •   		if (strlen($buff)<$longestName)$buff = $singleIdentity['ident_name'].': '.trim(substr(str_replace(array("\r\n","\r","\n","\t"),array(" "," "," "," "),translation::convertHTMLToText($singleIdentity['ident_signature'])),0,$longestName-strlen($buff)));
    
  •   	}
    
  •   	else
    
  •   	{
    
  •   		$buff = trim(substr(str_replace(array("\r\n","\r","\n","\t"),array(" "," "," "," "),translation::convertHTMLToText($singleIdentity['ident_signature'])),0,$longestName));
    
  •   	}
    
  •   	$sigDesc = $buff?$buff:lang('none');
    
  •   	if ($sigDesc == lang('none')) $sigDesc = (!empty($singleIdentity['ident_name'])?$singleIdentity['ident_name']:$singleIdentity['ident_realname'].($singleIdentity['ident_org']?' ('.$singleIdentity['ident_org'].')':''));
    
  •   	$selectSignatures[$singleIdentity['ident_id']] = lang('Signature').': '.$id_prepend.$sigDesc;
    
  •   	if(in_array($singleIdentity['ident_id'],$defaultIds) && $defaultIdentity==0)
    
  •   	{
    
  •   		//_debug_array($singleIdentity);
    
  •   		$defaultIdentity = $singleIdentity['ident_id'];
    
  •   		//$defaultIdentity = $key;
    
  •   		if (empty($content['signatureid'])) $content['signatureid'] = (!empty($singleIdentity['ident_signature']) ? $singleIdentity['ident_id'] : $content['signatureid']);
    
  •   	}
    
  •   }
    
      // fetch the signature, prepare the select box, ...
      if (empty($content['signatureid'])) {
    

@@ -1116,11 +1018,21 @@
} else {
$ishtml=0;
}
+

  •   // get identities of all accounts as "$acc_id:$ident_id" => $identity
    
  •   $sel_options['mailaccount'] = $identities = array();
    
  •   foreach(emailadmin_account::search() as $acc_id => $account)
    
  •   {
    
  •   	foreach(emailadmin_account::identities($acc_id) as $ident_id => $identity)
    
  •   	{
    
  •   		$sel_options['mailaccount'][$acc_id.':'.$ident_id] = $identity;
    
  •   		$identities[$ident_id] = $identity;
    
  •   	}
    
  •   	unset($account);
    
  •   }
    
  •   // signature stuff set earlier
    
  •   //_debug_array($selectSignatures);
    
  •   $sel_options['signatureid'] = $selectSignatures;
    
  •   $content['signatureid'] = ($presetSig ? $presetSig : $content['signatureid']);
    
  •   //_debug_array($sel_options['signatureid'][$content['signatureid']]);
    
  •   if ($presetSig) $content['signatureid'] = $presetSig;
      // end signature stuff
    
      //$content['bcc'] = array('kl@stylite.de','kl@leithoff.net');
    

@@ -1136,15 +1048,15 @@
unset($content[strtolower($destination)]);
foreach((array)$addr_content as $key => $value) {
if ($value==“NIL@NIL”) continue;

  •   		if ($destination=='replyto' && str_replace('"','',$value) == str_replace('"','',$identities[($presetId ? $presetId : $defaultIdentity)]))
    
  •   		if ($destination=='replyto' && str_replace('"','',$value) ==
    
  •   			str_replace('"','',$identities[$presetId ? $presetId : $this->mail_bo->getDefaultIdentity()]))
      		{
      			// preserve/restore the value to content.
      			$content[strtolower($destination)][]=$value;
      			continue;
      		}
      		//error_log(__METHOD__.__LINE__.array2string(array('key'=>$key,'value'=>$value)));
    
  •   		$value = htmlspecialchars_decode($value,ENT_COMPAT);
    
  •   		$value = str_replace("\"\"",'"',$value);
    
  •   		$value = str_replace("\"\"",'"', htmlspecialchars_decode($value, ENT_COMPAT));
      		foreach(emailadmin_imapbase::parseAddressList($value) as $addressObject) {
      			if ($addressObject->host == '.SYNTAX-ERROR.') continue;
      			$address = imap_rfc822_write_address($addressObject->mailbox,$addressObject->host,$addressObject->personal);
    

@@ -1161,12 +1073,12 @@
$content = array_merge($content,$_content);

		if (!empty($content['folder'])) $sel_options['folder']=$this->ajax_searchFolder(0,true);
  •   	$content['mailaccount'] = (empty($content['mailaccount'])?($selectedSender?$selectedSender:$this->mail_bo->profileID):$content['mailaccount']);
    
  •   	if (empty($content['mailaccount'])) $content['mailaccount'] = $this->mail_bo->profileID;
      }
      else
      {
      	//error_log(__METHOD__.__LINE__.array2string(array($sel_options['mailaccount'],$selectedSender)));
    
  •   	$content['mailaccount'] = ($selectedSender?$selectedSender:$this->mail_bo->profileID);
    
  •   	$content['mailaccount'] = $this->mail_bo->profileID;
      	//error_log(__METHOD__.__LINE__.$content['body']);
      }
      $content['is_html'] = ($content['mimeType'] == 'html'?true:'');
    

@@ -1256,6 +1168,9 @@
} else {
$content[‘mimeType’]=0;
}
+

  •   // join mailaccount and signatureid together again
    
  •   $content['mailaccount'] .= ':'.$content['signatureid'];
    
      //error_log(__METHOD__.__LINE__.array2string($content));
      $etpl->exec('mail.mail_compose.compose',$content,$sel_options,array(),$preserv,2);
    

@@ -1291,7 +1206,6 @@
if ($icServerID != $this->mail_bo->profileID)
{
$this->changeProfile($icServerID);

  •   	$composeProfile = $this->mail_bo->profileID;
      }
      $icServer = $this->mail_bo->icServer;
      if (!empty($folder) && !empty($msgUID) )
    

@@ -1345,17 +1259,16 @@
* Use ajax_merge to merge & send multiple
*/
// Merge selected ID (in mailtocontactbyid or $mail_id) into given document

  •   	preg_match('/^([a-z_-]+_merge)$/', $_REQUEST['merge'], $merge_class);
    
  •   	$merge_class = $merge_class[1] ? $merge_class[1] : 'addressbook_merge';
    
  •   	$merge_class = preg_match('/^([a-z_-]+_merge)$/', $_REQUEST['merge']) ? $_REQUEST['merge'] : 'addressbook_merge';
      	$document_merge = new $merge_class();
      	$this->mail_bo->openConnection();
      	$merge_ids = $_REQUEST['preset']['mailtocontactbyid'] ? $_REQUEST['preset']['mailtocontactbyid'] : $mail_id;
    
  •   	$merge_ids = is_array($merge_ids) ? $merge_ids : explode(',',$merge_ids);
    
  •   	if (!is_array($merge_ids)) $merge_ids = explode(',',$merge_ids);
      	try
      	{
      		$merged_mail_id = '';
      		$folder = '';
    
  •   		if($error = $document_merge->check_document($_REQUEST['document'],''))
    
  •   		if(($error = $document_merge->check_document($_REQUEST['document'],'')))
      		{
      			$content['msg'] = $error;
      			return $content;
    

@@ -1442,6 +1355,7 @@
// all: for a reply to all
function getDraftData($_icServer, $_folder, $_uid, $_partID=NULL)
{

  •   unset($_icServer);	// not used
      $this->sessionData['to'] = array();
    
      $mail_bo = $this->mail_bo;
    

@@ -1463,7 +1377,7 @@
// with the new system it would be the identity
try
{

  •   		$identity = emailadmin_account::read_identity($addHeadInfo['X-SIGNATURE']);
    
  •   		emailadmin_account::read_identity($addHeadInfo['X-SIGNATURE']);
      		$this->sessionData['signatureid'] = $addHeadInfo['X-SIGNATURE'];
      	}
      	catch (Exception $e)
    

@@ -1479,7 +1393,7 @@
// with the new system it would the identity is the account id
try
{

  •   		$acc = emailadmin_account::read($addHeadInfo['X-IDENTITY']);
    
  •   		emailadmin_account::read($addHeadInfo['X-IDENTITY']);
      		$this->sessionData['mailaccount'] = $addHeadInfo['X-IDENTITY'];
      	}
      	catch (Exception $e)
    

@@ -1493,6 +1407,7 @@
$this->sessionData[‘uid’] = $_uid;
$this->sessionData[‘messageFolder’] = $_folder;
$this->sessionData[‘isDraft’] = true;

  •   $foundAddresses = array();
      foreach((array)$headers['CC'] as $val) {
      	$rfcAddr=emailadmin_imapbase::parseAddressList($val);
      	$_rfcAddr = $rfcAddr[0];
    

@@ -1502,8 +1417,7 @@
}
$keyemail=$_rfcAddr->mailbox.’@’.$_rfcAddr->host;
if(!$foundAddresses[$keyemail]) {

  •   		$address = $val;
    
  •   		$address = $this->mail_bo->decode_header($address,true);
    
  •   		$address = $this->mail_bo->decode_header($val,true);
      		$this->sessionData['cc'][] = $val;
      		$foundAddresses[$keyemail] = true;
      	}
    

@@ -1523,8 +1437,7 @@
}
$keyemail=$_rfcAddr->mailbox.’@’.$_rfcAddr->host;
if(!$foundAddresses[$keyemail]) {

  •   		$address = $val;
    
  •   		$address = $this->mail_bo->decode_header($address,true);
    
  •   		$address = $this->mail_bo->decode_header($val,true);
      		$this->sessionData['to'][] = $val;
      		$foundAddresses[$keyemail] = true;
      	}
    

@@ -1539,8 +1452,7 @@
}
$keyemail=$_rfcAddr->mailbox.’@’.$_rfcAddr->host;
if(!$foundAddresses[$keyemail]) {

  •   		$address = $val;
    
  •   		$address = $this->mail_bo->decode_header($address,true);
    
  •   		$address = $this->mail_bo->decode_header($val,true);
      		$this->sessionData['replyto'][] = $val;
      		$foundAddresses[$keyemail] = true;
      	}
    

@@ -1555,8 +1467,7 @@
}
$keyemail=$_rfcAddr->mailbox.’@’.$_rfcAddr->host;
if(!$foundAddresses[$keyemail]) {

  •   		$address = $val;
    
  •   		$address = $this->mail_bo->decode_header($address,true);
    
  •   		$address = $this->mail_bo->decode_header($val,true);
      		$this->sessionData['bcc'][] = $val;
      		$foundAddresses[$keyemail] = true;
      	}
    

@@ -1711,11 +1622,14 @@
//error_log(METHOD.LINE.array2string($tmpFileName));

	if ($eliminateDoubleAttachments == true)
  •   	foreach ((array)$_content['attachments'] as $k =>$attach)
    
  •   {
    
  •   	foreach ((array)$_content['attachments'] as $attach)
    
  •   	{
      		if ($attach['name'] && $attach['name'] == $_formData['name'] &&
      			strtolower($_formData['type'])== strtolower($attach['type']) &&
      			stripos($_formData['file'],'vfs://') !== false) return;
    
  •   	}
    
  •   }
      if ($attachfailed === false)
      {
      	$buffer = array(
    

@@ -1842,7 +1756,8 @@
}

/**
    • getRandomString - function to be used to fetch a random string and md5 encode that one
    • Fetch a random string and md5 encode that one
    • @param none
    • @return string - a random number which is md5 encoded
      */
      @@ -1851,13 +1766,14 @@
      }
/**
    • testIfOneKeyInArrayDoesExistInString - function to be used to fetch a random string and md5 encode that one
    • Fetch a random string and md5 encode that one
    • @param array arrayToTestAgainst to test its keys against haystack
    • @param string haystack
    • @return boolean
      */
      function testIfOneKeyInArrayDoesExistInString($arrayToTestAgainst,$haystack) {
  •   foreach ($arrayToTestAgainst as $k => $v)
    
  •   foreach (array_keys($arrayToTestAgainst) as $k)
      {
      	//error_log(__METHOD__.__LINE__.':'.$k.'<->'.$haystack);
      	if (stripos($haystack,$k)!==false)
    

@@ -1870,7 +1786,8 @@
}

/**
    • getReplyData - function to gather the replyData and save it with the session, to be used then.
    • Gather the replyData and save it with the session, to be used then
    • @param $_mode can be:
    •  single: for a reply to one address
      
    •  all: for a reply to all
      

@@ -1882,6 +1799,7 @@
*/
function getReplyData($_mode, $_icServer, $_folder, $_uid, $_partID)
{

  •   unset($_icServer);	// not used
      $foundAddresses = array();
    
      $mail_bo  = $this->mail_bo;
    

@@ -2050,10 +1968,9 @@
$newBody = translation::convert($bodyParts[$i][‘body’], $bodyParts[$i][‘charSet’]);
#error_log( “GetReplyData (Plain) CharSet:”.mb_detect_encoding($bodyParts[$i][‘body’] . ‘a’ , strtoupper($bodyParts[$i][‘charSet’]).’,’.strtoupper($this->displayCharset).’,UTF-8, ISO-8859-1’));

  •   		$newBody        = explode("\n",$newBody);
      		$this->sessionData['body'] .= "\r\n";
      		// create body new, with good line breaks and indention
    
  •   		foreach($newBody as $value) {
    
  •   		foreach(explode("\n",$newBody) as $value) {
      			// the explode is removing the character
      			if (trim($value) != '') {
      				#if ($value != "\r") $value .= "\n";
    

@@ -2085,9 +2002,7 @@
’[\020]’,’[\021]’,’[\022]’,’[\023]’,’[\024]’,’[\025]’,’[\026]’,’[\027]’,
’[\030]’,’[\031]’,’[\032]’,’[\033]’,’[\034]’,’[\035]’,’[\036]’,’[\037]’);
mail_bo::getCleanHTML($_body, $usepurify, $cleanTags);

  •   $_body	= preg_replace($nonDisplayAbleCharacters, '', $_body);
    
  •   return $_body;
    
  •   return preg_replace($nonDisplayAbleCharacters, '', $_body);
    

    }

    static function _getHostName()
    @@ -2695,7 +2610,7 @@
    $folder[] = $draftFolder;
    }
    }

  •   $folder = array_unique($folder);
    
  •   if ($folder) $folder = array_unique($folder);
      if (($this->mailPreferences['sendOptions'] != 'send_only' && $sentFolder != 'none') && !(count($folder) > 0) &&
      	!($_formData['to_infolog']=='on' || $_formData['to_tracker']=='on'))
      {
    

@@ -2850,8 +2765,8 @@
}
catch (egw_exception $e)
{

  •   		$error = str_replace('"',"'",$e->getMessage());
    
  •   		//error_log(__METHOD__.__LINE__." ". $error);
    
  •   		//error_log(__METHOD__.__LINE__." ". str_replace('"',"'",$e->getMessage()));
    
  •   		unset($e);
      	}
      }
      unset($this->sessionData['lastDrafted']);
    

@@ -2964,11 +2879,11 @@
{
try
{

  •   			$identity = emailadmin_account::read_identity($sigPref[$this->mail_bo->profileID]);
      			$id = $sigPref[$this->mail_bo->profileID];
      		}
      		catch (Exception $e)
      		{
    
  •   			unset($e);
      			unset($GLOBALS['egw_info']['user']['preferences']['mail']['LastSignatureIDUsed'][$this->mail_bo->profileID]);
      		}
      	}
    

@@ -2995,7 +2910,7 @@
}

function ajax_searchFolder($_searchStringLength=2, $_returnList=false) {
  •   static $useCacheIfPossible;
    
  •   static $useCacheIfPossible = null;
      if (is_null($useCacheIfPossible)) $useCacheIfPossible = true;
      $_searchString = trim($_REQUEST['query']);
      $results = array();
    

@@ -3121,7 +3036,6 @@
‘title’ => $email
);
}

  •   			if ($i > 10) break;	// we check for # of results here, as we might have empty email addresses
      		}
      	}
      }
    

@@ -3169,7 +3083,7 @@
$document_merge = new addressbook_merge();
$this->mail_bo->openConnection();

  •   if($error = $document_merge->check_document($_REQUEST['document'],''))
    
  •   if(($error = $document_merge->check_document($_REQUEST['document'],'')))
      {
      	$response->error($error);
      	return;
    

@@ -3179,6 +3093,7 @@
//$GLOBALS[‘egw_info’][‘flags’][‘currentapp’] = ‘addressbook’;

	// Actually do the merge
  •   $folder = $merged_mail_id = null;
      $results = $this->mail_bo->importMessageToMergeAndSend(
      	$document_merge, egw_vfs::PREFIX . $_REQUEST['document'],
      	// Send an extra non-numeric ID to force actual send of document
    

Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk


eGroupWare-cvs mailing list
eGroupWare-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/egroupware-cvs