Closed Bug 302096 Opened 15 years ago Closed 15 years ago

Thunderbird does not have AutoConfig LDAP support enabled


(Thunderbird :: Build Config, defect, major)

Not set


(Not tracked)



(Reporter: gregg, Assigned: mscott)



(3 files)

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050517 Firefox/1.0.4 (Debian package 1.0.4-2)
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050517 Firefox/1.0.4 (Debian package 1.0.4-2)

Thunderbird does not have AutoConfig (Mission Control) LDAP support compiled
into the standard builds. This is a critical feature necessary for large-scale
centrally managed Thunderbird deployments. As it allows us to preconfigure and
deploy Thunderbird settings for thousands of users, while utilizing their
existing LDAP values.

In FireFox, to enable LDAP AutoConfig it's necessary to remove --disable-ldap
from .mozconfig. I dont know what the equivalent setting is for Thunderbird -
still researching this...

Is it at all possible to see this support in Thunderbird 1.1? As there are a
number of large-scale deployemnts taking place in educational and corporate
enviroments which would greatly benefit for such a addition. If LDAP AutoConfig
support is not in TB1.1 then some educational enviroments, already preping their
system builds for the coming school year, appear be holding back TB1.1 deployments.

See the discussion in Bug 225288 for further information.

Reproducible: Always

Steps to Reproduce:
1.1 builds with ldap by default and autoconfig. So if it works in firefox it
should work here too. I'm not sure what files are specific to ldap auto config
as opposed to regular auto config. Maybe we just aren't packaging up a file for
Maybe you can help point out what we're doing wrong then.

From bug 225288 comment #19:
 I also confirm that latest nightly build doesn't support ldap
TB 1.0+ (20050721) -> yesterday build .
I also get the error while calling getLdapAttributes() from prefcall.js, error :

Netscape.cfg/AutoConfig failed. Please contact your System Administator
 Error: getLDAPAttibutes failed: [Exception... "Component returned failure code:
0x80570018 (NS_ERROR_XPC_BAD_IID)[nsIJSCID.createInstance]" nsresult:
"0x80570018 (NS_ERROR_XPC_BAD_IID)" Location: "JS frame :: file:///c:\Program
Files\Mozilla Thunderbird\defaults\autoconfig\prefcalls.js :: getLDAPAttributes
:: line 176" data:no]

however, other autoconf settings do work , but we cannot set pref from ldap
values which is very anoying for autoconfiguring email preferences ... :-( 

I also tested the latest stable TB 1.0.6 (20050716), I was positively surprised
to see the presence of the autoconfig sub-directory, which mean that is is now
ship with --enable-extensions=pref , good !, unfortunatly, I don't know why but
TB 1.0.6 complety ingore autoconfig, although I did put in pref/all.js :
pref("general.config.obscure_value", 0); // for MCD .cfg files
pref('general.config.filename', 'thunderbird.cfg'); // for MCD .cfg files
and put thunderbird.cfg in the root directory of TB, nothing is read :-( .

I'am afraid to be forced to use again mozilla (probably 1.7.10 for which
everything works fine) instead of firefox/thinderbird for our next september
academic year .
Thanks to let me know if there's a possible solution before .
as I said before, 1.0.x does not support auto config by default. 1.0.x releases
are security releases only and do not contain our new feature work at all This
is a new feature in the upcoming 1.1 release....See the bug you are cc'ed on
which was marked FIXED for 1.1 to enable this.
My apologies, maybe I'm misunderstanding something, but I'm testing with TB
1.1alpha2 (1.0+ V20050712:
and am still encountering the LDAP AutoConfig error noted in 225288 and in
comment #2 here. I thought 1.1a2 would closely reflect what to expect in
1.1final, is that not the case and/or should I be testing LDAP AutoConfig
support elsewhere?
You said:

"I also tested the latest stable TB 1.0.6 (20050716), ... unfortunatly, I don't
know why but
TB 1.0.6 complety ingore autoconfig, although I did put in pref/all.js :

This is not on in 1.0.6, it is on in 1.1 builds.
Alright, I see where you get getting the 1.0.6 assumption. Though as indicated
by the text "...From bug 225288 comment #19:..." that was actually a copy/paste
from someone else's posting to Bug 225288. I apologize for that confusion, I'll
be more clear when copy/pasting in the future.

In any event, at this point in time I'm testing with TB 1.1 alpha2 and am still
encountering the LDAP AutoConfig error. Is the 1.1alpha2 binary the correct
place to check for 1.1final support, or is there somewhere else I should be
downloading a Thunderbird build to test TB 1.1 functionality?
Sorry Greg, I misread your c+p as you saying because auto config was not part of
1.0.6 you were going back to moz 1.7.10.

Ever confirmed: true
The JS exception posted in this bug report seems to be complaining about a
bogus interface ID. This tells me either we aren't packaging up an xpt file
correctly or there's something wrong with the interface declaration for
nsILDAPSyncQuery which is the interface that seems to generate the bad
interface ID exception.

I did notice that the interface ID for nsILDAPSyncQuery is identical to the
underlying class ID. That doesn't seem right. But then it should fail in
Firefox  (if Fx was built with ldap) too.
Attachment #190496 - Flags: superreview?(bienvenu)
Target Milestone: --- → Thunderbird1.1
Comment on attachment 190496 [details] [diff] [review]
[checked in]make CLID different from IID for nsILdapSyncQuery

maybe that would explain it - I'm pretty sure we're building with ldap turned
Attachment #190496 - Flags: superreview?(bienvenu) → superreview+
Attachment #190496 - Attachment description: make CLID different from IID for nsILdapSyncQuery → [checked in]make CLID different from IID for nsILdapSyncQuery
Gregg, can you give tomorrow's 7/27 builds a spin to see if this fixed the
problem or not? Check here tomorrow afternoon:

and make sure the server time stamp says 7/27 on it. 

Greg, windows and linux builds are now out. Can you tell us if things are
working now?
Attached image Error Dialog Box
Looks like I'm getting the same error. This occured even after deleting both
below folders and reconfiguring for autoconfig again:
 c:\program files\Mozilla Thunderbird\
 c:\documents and settings\...\Thunderbird
shucks, and help /  about definetly says 20050727?
Yep: 1.0+ (20050727)

If it helps at all, here's whats going into my autoconfig:

//BEGIN CE prefs 

//put everything in a try/catch
try {

if(getenv("USER") != "") {
   // NIX settings
   var env_user    = getenv("USER");
   var env_home    = getenv("HOME");
 } else {
   // Windows settings
   var env_ldapcn    = getenv("LDAPCN");

function processLDAPValues (values) {
 displayError("Getting somehwere", e); 
 if(values) {
    // set the global var with the values returned from the LDAP query
    var ldap_values = values;
    var ldapUID = getLDAPValue ( values ,"uid" );
    var ldapNAME = getLDAPValue ( values ,"cn" );
    var ldapMAIL = getLDAPValue ( values ,"mail" );
    displayError("" + ldapUID, e); 
lockPref("mail.identity.id1.draft_folder", "imap://");
lockPref("mail.identity.id1.fcc_folder", "imap://");
lockPref("mail.identity.id1.fullName", "ldapNAME ");
lockPref("mail.identity.id1.useremail", "ldapMAIL");
lockPref("", "ldapMAIL");
lockPref("mail.server.server2.userName", "ldapUID");
lockPref("mail.smtpserver.smtp1.username", "ldapUID");
lockPref("print.print_headerleft", "ldapNAME");
// Call Ldap servers to get Ldap Attributes, this will call processLDAPValues

} catch(e) {
  displayError("lockedPref", e);
Hmm, I'm starting to think this must be a packaging error but i'm not sure what
we are missing.

I did a JS eval on the JS statements which are throwing the exception about a
bad interface ID and they all ran fine:

const nsILDAPURL = Components.interfaces.nsILDAPURL;
const LDAPURLContractID = ";1";
const nsILDAPSyncQuery = Components.interfaces.nsILDAPSyncQuery;
const LDAPSyncQueryContractID = ";1";
var url = Components.classes[LDAPURLContractID].createInstance(nsILDAPURL);
url.spec = "ldap://" + 'foo' + "/" + 'base' + "?" + 'attrib' + "?sub?" +  'filter*';
var ldapquery = Components.classes[LDAPSyncQueryContractID]

that was in a debug build of course.
Attached patch the fixSplinter Review

this should fix it
marking fixed. try again with the 7/28 builds Greg. I suspect you'll be good to
go now.
Closed: 15 years ago
Resolution: --- → FIXED
I've just tested today with
 -> 20050727 (i don't see a biuil for 28072005 ! )
I confirm that it still doesn't work . Autoconfig alone works fine , but as 
soon as I use ldap queries (getLDAPAttributes) we get the famous
:: line 176" data:no]" error message .
I'am also looking forward for the solution .
If I remember well, I think it worked fine on linux when I recompiled firefox
(1.0.2)  without --desable-ldap, but I don't see the equivalent for thunderbird,
and  I still don't know how to check how thunderbird was compiled (on firefox
there's an about:buildconfig ) .
Thanks .
Slick! LDAP AutoConfig in TB 1.0+ (20050728) works great now! Thanks!

FYI, I had to remove the quotes around the variables. For example:
  lockPref("mail.server.server2.userName", "ldapUID" );
was changed to
  lockPref("mail.server.server2.userName", ldapUID );

Though any idea how to deal with strings such as:
Nevermind - I answered my own question. The string should read:
 lockPref("mail.server.server2.spamActionTargetAccount", "imap://" + ldapUID +

Thanks again for the quick responses. I assume we can plan for this support in
TB 1.1final?
great, glad it's working now.
Good news :-), I confirme that autoconfig + ldapcalls (getLDAPAttributes) does work in thunderbird, both on windows XP and linux fedora core 5 (package thunderbird-1.5-6). thanks for maintaining  that enterprise deployement feature available in futur releases .
however check to know how for sure those options are available ? 
Just tested in thunderbird 2 beta 2, still works fine, thanks !
see updated doc on:
You need to log in before you can comment on or make changes to this bug.