function getFromAccountsArray($ie) { global $current_user; global $app_strings; $ieAccountsFull = $ie->retrieveAllByGroupIdWithGroupAccounts($current_user->id); $ieAccountsFrom = array(); $oe = new OutboundEmail(); $system = $oe->getSystemMailerSettings(); $ret = $current_user->getUsersNameAndEmail(); $ret['name'] = from_html($ret['name']); $useMyAccountString = true; if (empty($ret['email'])) { $systemReturn = $current_user->getSystemDefaultNameAndEmail(); $ret['email'] = $systemReturn['email']; $ret['name'] = from_html($systemReturn['name']); $useMyAccountString = false; } // if $myAccountString = ''; if ($useMyAccountString) { $myAccountString = " - {$app_strings['LBL_MY_ACCOUNT']}"; } // if //Check to make sure that the user has set the associated inbound email account -> outbound account is active. $showFolders = unserialize(base64_decode($current_user->getPreference('showFolders', 'Emails'))); $sf = new SugarFolder(); $groupSubs = $sf->getSubscriptions($current_user); foreach ($ieAccountsFull as $k => $v) { $personalSelected = !empty($showFolders) && in_array($v->id, $showFolders); $allowOutboundGroupUsage = $v->get_stored_options('allow_outbound_group_usage', FALSE); $groupSelected = in_array($v->groupfolder_id, $groupSubs) && $allowOutboundGroupUsage; $selected = $personalSelected || $groupSelected; if (!$selected) { $GLOBALS['log']->debug("Inbound Email {$v->name}, not selected and will not be available for selection within compose UI."); continue; } $name = $v->get_stored_options('from_name'); $addr = $v->get_stored_options('from_addr'); if ($name != null && $addr != null) { $name = from_html($name); if (!$v->is_personal) { $ieAccountsFrom[] = array("value" => $v->id, "text" => "{$name} ({$addr}) - {$app_strings['LBL_EMAIL_UPPER_CASE_GROUP']}"); } else { $ieAccountsFrom[] = array("value" => $v->id, "text" => "{$name} ({$addr})"); } // else } // if } // foreach $userSystemOverride = $oe->getUsersMailerForSystemOverride($current_user->id); //Substitute in the users system override if its available. if ($userSystemOverride != null) { $system = $userSystemOverride; } if (!empty($system->mail_smtpserver)) { $admin = new Administration(); $admin->retrieveSettings(); //retrieve all admin settings. $ieAccountsFrom[] = array("value" => $system->id, "text" => "{$ret['name']} ({$ret['email']}){$myAccountString}"); } return $ieAccountsFrom; }