This document is intended to "fill in the gaps" about how Enterprise customers can leverage and customize LDAP support in Mozilla Thunderbird. It is not intended as an introduction to LDAP and Mozilla products. It assumes you are already familiar with configuring preferences for deployed builds in addition to setting up Thunderbird to use an LDAP directory. It should be noted that all of this information applies to both Thunderbird and the SeaMonkey application suite.
Mail Compose Typedown
In mail compose, when typing a partial mail address, a typedown window appears listing possible matches against address books and LDAP directories. For large companies, there may be a large number of users in the directory with the same name. In such a scenario, it may be hard to tell which person you really want to send the message to. In Thunderbird, the type down window can be customized to show arbitrary LDAP fields. This can be accomplished by setting the following preferences:
user_pref("mail.autoComplete.commentColumn", 2); user_pref("ldap_2.servers.DIRECTORYNAME.autoComplete.commentFormat", "[ou]");
The first preference tells us to use a comment column in the type down (the default value is 0 for no comment), and that the value for the comment is a custom string unique to each directory. The commentFormat preference is set on EACH directory. It acts as a template, specifying the extra LDAP attribute which should be used in the comment field along with how the attribute should be formatted. It expects the following format:
- The desired LDAP attribute should be wrapped in square brackets. In this example, we are setting the organization unit as the LDAP attribute.
- You can also insert arbitrary text to clarify the LDAP attribute. i.e. "Department: [ou]" would yield a type down entry that looks like "John Smit Department: Client Engineering".
LDAP Schema
The following table summarizes the schema used by Thunderbird to map between LDAP attributes and attributes within the the Address Book. Some notes about the relationship:
- There is a many to one relationship between LDAP attributes and its Address Book counterpart.
- There is a one to one relationship between a Address Book attribute and its LDAP counterpart. If there are multiple entries for a Address Book attribute, the first takes precedence.
These relationships ensure: Generality is maintained when mapping from LDAP attributes to Address Book. Consistent round tripping when editing Address Book attributes which are stored on an LDAP server.
Address Book attribute | LDAP attribute |
---|---|
FirstName | givenname |
LastName | sn |
LastName | surname |
DisplayName | cn |
DisplayName | commonname |
DisplayName | displayname |
NickName | xmozillanickname |
PrimaryEmail | |
SecondEmail | xmozillasecondemail |
WorkPhone | telephonenumber |
HomePhone | homephone |
FaxNumber | fax |
FaxNumber | facsimiletelephonenumber |
PagerNumber | pager |
PagerNumber | pagerphone |
CellularNumber | mobile |
CellularNumber | cellphone |
CellularNumber | carphone |
WorkAddress | postofficebox |
WorkAddress | streetaddress |
WorkCity | l |
WorkCity | locality |
WorkState | st |
WorkState | region |
WorkZipCode | postalcode |
WorkZipCode | zip |
WorkCountry | countryname |
JobTitle | title |
Department | ou |
Department | orgunit |
Department | department |
Department | departmentnumber |
Company | o |
Company | company |
WorkCountry | countryname |
_AimScreenName | nscpaimscreenname |
WebPage1 | workurl |
WebPage2 | homeurl |
BirthYear | birthyear |
Custom1 | custom1 |
Custom2 | custom2 |
Custom3 | custom3 |
Custom4 | custom4 |
Notes | notes |
Notes | description |
PreferMailFormat | xmozillausehtmlmail |
LastModifiedDate | modifytimestamp |
Custom LDAP Attributes
Thunderbird supports custom LDAP attributes for various Address Book attributes. See Bug #119291 for more details.
Original Document Information
- Author(s): Scott MacGregor
- Copyright Information: Portions of this content are © 1998–2010 by individual mozilla.org contributors; content available under a Creative Commons license | Details.