/** * @return EmailAddress */ function &GetFrom() { $emailAdress = new EmailAddress(); $emailAdress->Parse($this->Headers->GetHeaderDecodedValueByName(MIMEConst_FromLower)); return $emailAdress; }
function DoGetMessage() { $_dbStorage = $_settings = $_xmlObj = $_xmlRes = $_accountId = null; $this->_initFuncArgs($_dbStorage, $_settings, $_xmlObj, $_xmlRes, $_accountId); $_account =& CXmlProcessing::AccountCheckAndLoad($_xmlRes, $_accountId, true, false); $_charsetNum = $_xmlObj->GetParamValueByName('charset'); if ($_charsetNum > 0) { $_account->DefaultIncCharset = ConvertUtils::GetCodePageName($_charsetNum); $GLOBALS[MailInputCharset] = $_account->DefaultIncCharset; $_account->UpdateDefaultIncCharset(); } $_processor = new MailProcessor($_account); $_folderNodeRequest =& $_xmlObj->XmlRoot->GetChildNodeByTagName('folder'); $_folder = null; if (isset($_folderNodeRequest->Attributes['id'])) { $_folder = new Folder($_accountId, $_folderNodeRequest->Attributes['id'], $_folderNodeRequest->GetChildValueByTagName('full_name')); $_processor->GetFolderInfo($_folder); if (!$_folder || $_folder->IdDb < 1) { CXmlProcessing::PrintErrorAndExit(WebMailException, $_xmlRes); } } else { CXmlProcessing::PrintErrorAndExit(WebMailException, $_xmlRes); } $_msgId = $_xmlObj->GetParamValueByName('id'); $_msgUid = $_xmlObj->GetParamTagValueByName('uid'); $_msgSize = $_xmlObj->GetParamValueByName('size'); $_msgIdUid = array($_msgId => $_msgUid); $_mode = (int) $_xmlObj->GetParamValueByName('mode'); $_modeForGet = $_mode; if (empty($_msgSize) || (int) $_msgSize < BODYSTRUCTURE_MGSSIZE_LIMIT || $_folder && FOLDERTYPE_Drafts == $_folder->Type || (($_mode & 8) == 8 || ($_mode & 16) == 16 || ($_mode & 32) == 32 || ($_mode & 64) == 64)) { $_modeForGet = null; } $_message = null; $_message =& $_processor->GetMessage($_msgId, $_msgUid, $_folder, $_modeForGet); if (null != $_message) { if (($_message->Flags & MESSAGEFLAGS_Seen) != MESSAGEFLAGS_Seen) { $_processor->SetFlag($_msgIdUid, $_folder, MESSAGEFLAGS_Seen, ACTION_Set); } $_isFromSave = false; if (USE_DB && ($_modeForGet === null || ($_modeForGet & 1) == 1)) { $_fromObj = new EmailAddress(); $_fromObj->Parse($_message->GetFromAsString(true)); if ($_fromObj->Email) { $_isFromSave = $_processor->DbStorage->SelectSenderSafetyByEmail($_fromObj->Email, $_account->IdUser); } if ($_folder->SyncType != FOLDERSYNC_DirectMode && $_processor->DbStorage->Connect()) { $_processor->DbStorage->UpdateMessageCharset($_msgId, $_charsetNum, $_message); } } CXmlProcessing::GetMessageNode($_xmlRes, $_message, $_folder, $_processor, $_account, $_settings, $_mode, $_charsetNum, $_isFromSave); } else { CXmlProcessing::PrintErrorAndExit(getGlobalError(), $_xmlRes); } }
$GLOBALS[MailInputCharset] = $account->DefaultIncCharset; $account->Update(); } $processor =& new MailProcessor($account); $folderNodeRequest =& $xmlObj->XmlRoot->GetChildNodeByTagName('folder'); $folder =& new Folder($accountId, $folderNodeRequest->Attributes['id'], $folderNodeRequest->GetChildValueByTagName('full_name')); $processor->GetFolderInfo($folder); $msgId = $xmlObj->GetParamValueByName('id'); $msgUid = $xmlObj->GetParamTagValueByName('uid'); $msgIdUid = array(); $msgIdUid[$msgId] = $msgUid; $processor->SetFlags($msgIdUid, $folder, MESSAGEFLAGS_Seen, ACTION_Set); $message =& $processor->GetMessage($msgId, $msgUid, $folder); if ($message != null) { $fromObj = new EmailAddress(); $fromObj->Parse($message->GetFromAsString(true)); $isFromSave = false; if ($fromObj->Email) { $isFromSave = $processor->DbStorage->SelectSenderSafetyByEmail($fromObj->Email, $account->IdUser); } if ($folder->SyncType != FOLDERSYNC_DirectMode && $processor->DbStorage->Connect()) { $processor->DbStorage->UpdateMessageCharset($msgId, $charsetNum, $message); } $mode = (int) $xmlObj->GetParamValueByName('mode'); $messageNode =& new XmlDomNode('message'); $messageClassType = $message->TextBodies->ClassType(); $messageNode->AppendAttribute('id', $xmlObj->GetParamValueByName('id')); $messageNode->AppendAttribute('html', (int) (($messageClassType & 2) == 2)); $messageNode->AppendAttribute('plain', (int) (($messageClassType & 1) == 1)); $messageNode->AppendAttribute('importance', $message->GetPriorityStatus()); $messageNode->AppendAttribute('mode', $mode);
/** * Adds the specified full e-mail address (including display name if any) to the collection. * @param string $address */ function AddFromString($address) { $this->AddEmailAddress(EmailAddress::Parse($address, $this->_header)); }