Hi people, maybe in my last post I did not make the right question.
Please I need to set some config var from values in a Database and the RC use them, can anyone tell me the right place to do that, I have try to put my code directly in main.inc.php, also try to get the data in index.php but all efforts failed. When added in index, the explorer show me a message about wrong compression type or something, and when added in main.inc.php, well I wasn't able to call some function I need from the system where I have the RC embeded
Please I really need to achieve this :( , can any body give me some idea?
Thanks in advance, David.
			
			
			
				Hi , after a couple  of days working on my issue, I did implement a solution which basically do what I want: Replace the configuration of the RC main.inc.php file, with configuration from a database.
This is what I did:
In main.inc.php I added this entries
//Start Database Configurations
// table containing the users configs, leave blank ('') if will not used
$rcmail_config['db_config']['table_name'] = 'my_users';
//The $rcmail_config['db_config']['field'] entries are database field names, where
//the config value needed is extracted for a config option
//Fields For User Identities, NOT MAIL IDENTITIES 
//else, user credentials: email or username, mail password, user email host
//all this data can be sent from the login page or 
//from an ajax post to the login page: http:///?_task=mail&_action=login
$rcmail_config['db_config']['field']['email'] = 'email';
$rcmail_config['db_config']['field']['username'] = 'email_username';
$rcmail_config['db_config']['field']['password'] = 'email_password';
// field containing default server value
$rcmail_config['db_config']['field']['default_host'] = 'email_server';
// field containing default server port value
$rcmail_config['db_config']['field']['default_port'] = 'email_server_port';
// field containing a integer value standing if ssl is used 
// 1: ssl is used
// 0: ssl is not used
// this is not a config option of RC, but used in implemented solution 
// to costruct the URL of the "default_host"
$rcmail_config['db_config']['field']['ssl_support'] = 'email_is_ssl';
// field containing ssl server port value
// this is not a config option of RC, but used in implemented solution 
// to costruct the URL of the "default_host"
$rcmail_config['db_config']['field']['ssl_port'] = 'email_ssl_port';
// field containing smtp server value
$rcmail_config['db_config']['field']['smtp_server'] = 'email_server_smtp';
// field containing smtp server port value
$rcmail_config['db_config']['field']['smtp_port'] = 'email_server_smtp_port';
// field containing smtp server port value
// this is not a config option of RC, but used in implemented solution 
// to costruct the URL of the "smtp_server"
$rcmail_config['db_config']['field']['smtp_ssl_support'] = 'email_is_ssl_smtp';
// field containing smtp server port value
$rcmail_config['db_config']['field']['smtp_user'] = 'email_server_smtp_user';
// field containing smtp server port value
$rcmail_config['db_config']['field']['smtp_pass'] = 'email_server_smtp_pass';
//End of Database Configurations
These are the config option used by the function I create in the file: /program/include/rcmail.php, here is the function:
/**
   * Replace Config object with settings extracted from table : 
   * $rcmail_config['db_config']['table_name'], all parameters
   * must be set.
   *
   * @param string Email Username/User Email
   * @param string User Password
   * @param string Imap server or default host
   */
  public function replace_settings_from_db($username, $pass, $host)
  {
  	$config_all = $this->config->all();
  	
  	//if not set the value, do nothing
  	if ($config_all['db_config']['table_name'] == '')
  		return;
  	else
  	{
  		//Constructing the select part of query selecting all field from db
  		$select  = "SELECT ";
  		$select .= implode(",", $config_all['db_config']['field']);
  		$select .= " FROM ".$config_all['db_config']['table_name'];
  		
  		$where  = sprintf(" WHERE ( %s = '%s' OR %s = '%s' ) AND %s = '%s' ",
  			 	$config_all['db_config']['field']['email'], $username,
  			 	$config_all['db_config']['field']['username'], $username,
  			 	$config_all['db_config']['field']['password'], $pass
  			 ); 
  		
  		$query = $select.$where;
  		
  		$sql_result = $this->db->query($query);
  		if ($sql_arr = $this->db->fetch_assoc($sql_result))
  		{
  			$ssl=		$config_all['db_config']['field']['ssl_support'];
  			$smtp_ssl=	$config_all['db_config']['field']['smtp_ssl_support'];
  			$ssl_port =	$config_all['db_config']['field']['ssl_port'];
  			$server =	$config_all['db_config']['field']['default_host']; 
  			$smtp_server =	$config_all['db_config']['field']['smtp_server']; 
			
  			if( $sql_arr["$ssl"] == 1 )
  				$config_all['default_host'] = 
  					"ssl://".$sql_arr["$server"].":".$sql_arr["$ssl_port"];
  			else
  				$config_all['default_host'] = $sql_arr["$server"];
  			
  			if( $sql_arr["$smtp_ssl"] == 1 )
  				$config_all['smtp_server'] = 
  					"ssl://".$sql_arr["$smtp_server"];
  			else
  				$config_all['smtp_server'] = $sql_arr["$smtp_server"];
			
			foreach($config_all['db_config']['field'] as $name => $value)
			{
				if( !($name == "default_host" || $name == "smtp_server") )
					//not overwrite the already set default host and smtp server
					$config_all["$name"] = $sql_arr["$value"];
			}
  			
  		}
  		
  		//overwrite the old config
  		$this->config->merge($config_all);
                //I made a raise_error here with an string representation of the $this->config array as message and everything was fine, all values were ok, at least as I espect it.
  		return;
  	}
  }
And this function is called from the login function in the same file, before doing anything in it:
function login($username, $pass, $host=NULL)
  {
  	//Extract setting from DB and overwrite
  	$this->replace_settings_from_db($username, $pass, $host);
  	$host = NULL;
  	
    $user = NULL;
    $config = $this->config->all();
    if (!$host)
      $host = $config['default_host'];
        .
        .
        .
Well, untill here that's all, but I'm facing problem, fundamentally when sending mails (I could be able to conect to my gmail account, read but not send). I also can read message from my mail server and notice something; I couldn't be able to send messages untill I fill the smtp_server option (I leaved it blank,beacuse I was setting it from DB ) , tha's why I think the config are replace in some other place.
Please can somebody tell me if I'm doing things wrong ? 
Are these settings overwritten with the ones in the main.inc.php file in a later context ?
Any help will be great since I'm really stuck. :-X have no more Ideas
Greeting David.