[imp] Proper hook to use to modify IMAP/SMTP server info

Eli eli-list at experthost.com
Tue Mar 22 15:25:00 PST 2005


This is slightly regarding my main problem I've posted in a separate thread,
however different so I'm starting a new one.

I am trying to make a virtual webmail interface that can accommodate
unlimited mail servers by just using MX records from DNS to assume that is
the IMAP and SMTP server.

I have the PHP code all done for doing this (and had been using this info in
previous IMP 2.2 installs), however I do not seem to be applying the
information correctly in IMP.  I am currently using the
"_horde_hook_preauthenticate" hook, however after doing some debugging, it
seems that this may not be the correct time to modify some settings (or my
modifications are later being overwritten by info from server.php).

In IMP's server.php file, I use a generic entry:

$servers['imap'] = array(
    'name' => 'IMAP Server',
    'server' => 'imap.example.com',
    'hordeauth' => 'full',
    'protocol' => 'imap/notls',
    'port' => 143,
    'folders' => '',
    'namespace' => '',
    'maildomain' => 'example.com',
    'smtphost' => 'smtp.example.com',
    'smtpport' => 25,
    'realm' => '',
    'preferred' => '',
    'quota' => false,
    'admin' => false,
    'dotfiles' => false,
    'hierarchies' => array()
);

I then entirely depend on my code to change those values in IMP so that
these defaults are never used.  The values I am attempting to change on the
fly are:

    'server' => 'imap.example.com'
    'port' => 143
    'maildomain' => 'example.com'
    'smtphost' => 'smtp.example.com'
    'smtpport' => 25

Currently my code simply modifies the values in $_SESSION['imp'], however
that does not seem to be working entirely correctly (I've tested it and it
*DOES* work, but then when logging in to another server it seems to cause
all sorts of problems).  I have noticed that it seems IMP caches the generic
server.php info sometimes and attempts to log in to that which obviously
fails, so users get a login failure message.  If I disable the use of hooks
and hard code the server values in server.php, the user can log in (though
not entirely for another reason - c-client seems to loop trying to list
folders on this particular server... but one problem at a time...).

Can someone tell me the proper hook in which I should modify these settings,
and exactly how I should modify them (just $_SESSION, or something else, or
a combo)?

Thanks,

Eli.




More information about the imp mailing list