From c892a3fcdab89edde62a78b2cd7c8475a82016e0 Mon Sep 17 00:00:00 2001 From: Klaus Leithoff Date: Mon, 20 Sep 2010 09:31:32 +0000 Subject: [PATCH] improvement of import_mail (decode issue), add headerinfo to body while sending (splitting emailaddresses into to/cc/bcc) and preserving identity --- infolog/inc/class.infolog_ui.inc.php | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/infolog/inc/class.infolog_ui.inc.php b/infolog/inc/class.infolog_ui.inc.php index 2e663aec5f..b2ed3cb87c 100644 --- a/infolog/inc/class.infolog_ui.inc.php +++ b/infolog/inc/class.infolog_ui.inc.php @@ -1496,7 +1496,8 @@ class infolog_ui //echo __METHOD__.'
'; //_debug_array($_attachments); $bofelamimail = CreateObject('felamimail.bofelamimail',$GLOBALS['egw']->translation->charset()); - $bopreferences = CreateObject('felamimail.bopreferences'); + $bopreferences =& $this->bofelamimail->bopreferences; //= CreateObject('felamimail.bopreferences'); + $preferences = $this->bopreferences->getPreferences(); $bofelamimail->openConnection(); foreach ($_attachments as $attachment) { @@ -1534,17 +1535,26 @@ class infolog_ui } $bofelamimail->closeConnection(); } + //_debug_array($_to_emailAddress); + $toaddr = array(); + foreach(array('to','cc','bcc') as $x) if (is_array($_to_emailAddress[$x]) && !empty($_to_emailAddress[$x])) $toaddr = array_merge($toaddr,$_to_emailAddress[$x]); + //_debug_array($preferences); //_debug_array($attachments); - $body = strip_tags($_body); + $body = self::createHeaderInfoSection(array('FROM'=>$_to_emailAddress['from'], + 'TO'=>implode(',',$_to_emailAddress['to']), + 'CC'=>implode(',',$_to_emailAddress['cc']), + 'BCC'=>implode(',',$_to_emailAddress['bcc']), + 'SUBJECT'=>$_subject, + 'DATE'=>bofelamimail::_strtotime($_date))).strip_tags($_body); $this->edit($this->bo->import_mail( - implode(',',$_to_emailAddress),$_subject,$body,$attachments,$_date + implode(',',$toaddr),$_subject,$body,$attachments,$_date )); exit; } elseif ($uid && $mailbox) { $bofelamimail = CreateObject('felamimail.bofelamimail',$GLOBALS['egw']->translation->charset()); - $bopreferences = CreateObject('felamimail.bopreferences'); + $bopreferences =& $this->bofelamimail->bopreferences; //= CreateObject('felamimail.bopreferences'); $bofelamimail->openConnection(); $bofelamimail->reopen($mailbox); @@ -1570,17 +1580,17 @@ class infolog_ui static function get_mailcontent(&$bofelamimail,$uid,$partid='',$mailbox='') { //echo __METHOD__." called for $uid,$partid
"; - $headers = $bofelamimail->getMessageHeader($uid,$partid); + $headers = $bofelamimail->getMessageHeader($uid,$partid,true); // dont force retrieval of the textpart, let felamimail preferences decide $bodyParts = $bofelamimail->getMessageBody($uid,'',$partid); $attachments = $bofelamimail->getMessageAttachments($uid,$partid); - if ($bofelamimail->isSentFolder($mailbox)) $mailaddress = $bofelamimail->decode_header($headers['TO']); - elseif (isset($headers['FROM'])) $mailaddress = $bofelamimail->decode_header($headers['FROM']); - elseif (isset($headers['SENDER'])) $mailaddress = $bofelamimail->decode_header($headers['SENDER']); + if ($bofelamimail->isSentFolder($mailbox)) $mailaddress = $headers['TO']; + elseif (isset($headers['FROM'])) $mailaddress = $headers['FROM']; + elseif (isset($headers['SENDER'])) $mailaddress = $headers['SENDER']; if (isset($headers['CC'])) $mailaddress .= ','.$headers['CC']; //_debug_array($headers); - $subject = $bofelamimail->decode_header($headers['SUBJECT']); + $subject = $headers['SUBJECT']; $message = self::getdisplayableBody($bofelamimail, $bodyParts); $headdata = self::createHeaderInfoSection($headers);