ThunderBird 2.0のアドレス帳に自前のLDAPサーバを指定する

以下、prefs.jsとかの知識がある前提での覚え書き。
  1. 検索フィルタの指定を行う

  2. 単一のLDAPサーバでもフィルタ条件を変えたエントリを複数用意しておくと、便利な場合がある。例えば「全社」のデータが入っているディレクトリがある場合、フィルタ無しの全社とは別に、自分の所属する組織だけフィルタしたエントリも作っておく、的な。
    LDAPサーバのプロパティの名前を変えて同じサーバを複数登録し、普通に「LDAPディレクトリサーバのプロパティ」→「詳細」→「検索フィルタ」でいちおうRFC2254っぽくフィルタを書ける。
    例えば、

    全社:(&(mail=*)(objectclass=*))

    特定のドメインの人だけ:(&(|(mail=*\@foo\.*)(mail=*\@baz\.foo\.*))(objectclass=*))

    特殊文字(@やドット)のエスケープは自分でやらないとダメ(な場合があるみたいなのでやっとくのが吉)。
    また、ちょっと複雑なものを書くとクラッシュする場合もあるようなので慎重に。

  3. Mozilla定義のアトリビュート名と自分のLDAPがあっていない場合

  4. 昔の Netscape4.xx だと

    user_pref("ldap_2.servers.myldap.attributes.cn", "氏名:cn;lang-ja,cn");

    みたいに指定できたが、ThunderBird2.0 でもMozilla定義のアトリビュート名→自分のアトリビュート名の対比を指定する。

    例えばMozillaで"Company"と定義されている会社名データが、自分のLDAPでは"companyname"という名前だった場合;

    user_pref("ldap_2.servers.myldap.attrmap.Company", "companyname");

    という定義を追加する。

    ただし現在のバージョン(2.0.0.23)では言語サブタイプがついている場合には複数のアトリビュートは指定できないみたいだ(Netscapeでは可能だった)。

    user_pref("ldap_2.servers.myldap.attrmap.DisplayName", "cn;lang-ja,commonname"); // これはNGだった

    この場合、";lang-ja"を除くか、"cn;lang-ja"だけにすると動作する。

  5. 送信メール作成画面の宛先指定欄のドロップダウンリストに、例えば「会社名」とか「組織名」みたいな付加情報を付けたい

  6. デフォルトだとDisplayName(名前)とメアドしか表示されないので、同姓同名が多い巨大ディレクトリの場合、「はてこの人どこの誰だっけ」となるのが面倒。

    user_pref("mail.autoComplete.commentColumn", 2); // 1 にすると、検索しているディレクトリ名が表示されるので、2にする。

    これでコメントカラムが有効になるので、そのコメントのフォーマットを、参照している自分のLDAPのアトリビュート名に変更する。LDAPのアトリビュート名は[]で括れば指定できるようである。;

    user_pref("ldap_2.servers.myldap.autoComplete.commentFormat", "[divisionshortname;lang-ja]");
    user_pref("ldap_2.servers.myldap.autoComplete.nameFormat", "[cn;lang-ja]");

参考になるサイト
LDAP in Mozilla Thunderbird
Mail and news settings
アドレス帳の隠し設定
[PR]
by signal-9 | 2009-09-18 12:50 | TIPSとかKludgeとか
<< 『郷土史余滴その一 秋葉神社と... Proxy.pacをCGI(A... >>