How to configure Thunderbird to use LDAP(Active Directory) address book.
Outlook이 무거워 일부러 피해왔다. 대안으로 사용하던 것이 Thunderbird다.
우리 회사 사람들은 대부분 Outlook을 사용하고, AD 연동을 통해 회사 주소록을 편하게 연동해서 쓴다.
나는 가끔 인트라넷에 올라오는 주소록 csv 파일을 받아 수동으로 Thunderbird에 입력하여 사용해왔는데, 이번에 조직개편도 있었고 해서 마음먹고 Thunderbird와 AD를 연동해보기로 하였다.
그러나 인터넷을 아무리 뒤져도 제대로 된 설정 방법은 없었고, 결국 6시간 정도 소스코드도 보고 하여 방법을 터득하였다.
Thunderbird와 AD 연동을 위해서는 2 가지를 챙겨야 한다.
그 하나는 주소록에 AD(LDAP) 설정을 추가하는 것이고, 다른 하나는 메일 쓰기 창에서 자동완성을 위해 추가로 설정하는 것이다.
각각은 아래와 같다.
1. 주소록에 LDAP 추가.
주소록을 열고, 파일-새로 만들기-LDAP 디렉토리, "디렉토리 서버 설정" 창이 뜬다.
- 일반 탭 설정.
이름: MYAD (자유롭게 입력)
호스트 이름 : MYAD.net (AD서버, 혹은 LDAP서버의 도메인 주소)
Base DN: dc=MYAD,dc=net (자신의 회사에서 안내하는 Outlook 설정값 이용)
포트번호: 3268
DN 바인드: USERID@MYAD.net 혹은 MYAD\USERID (두 가지 방식 모두 가능. USERID는 자신의 AD나 LDAP 계정)
- 고급 탭 설정.
리턴하지 않음: 100 결과 (한 번에 100개 이상은 검색해오지 말라는 의미, 필요하면 늘리거나 줄임)
영역: 하위 구조 (AD나 LDAP의 내부 디렉토리 계층 구조 중 하위 디렉토리까지 모두 검색하라는 의미)
필터 검색: (|(objectclass=person)(objectclass=group)) (앞의 파이프 문자는 OR의 의미)
로그인 방식: 일반
-> 여기까지 하고 "확인" 버튼을 누르면 LDAP 디렉토리가 주소록에 추가된다.
주소록 왼쪽 패널에서 방금 추가된 MYAD를 더블클릭해서 다시 "디렉토리 서버 설정" 창을 연다.
- 오프라인 탭 설정.
"지금 다운로드" 버튼을 누르면 비밀번호를 입력하는 창이 뜬다.
자신의 AD나 LDAP 계정(USERID)에 해당하는 비밀번호를 입력한다.
-> 잠시 기다리면 다운로드가 완료되었다고 나타난다.
그러나 주소록 왼쪽 패널에서 MYAD를 클릭해도 오른쪽에 아무런 주소 항목이 나타나진 않는다.
주소록 오른쪽 위의 검색란에 메일 주소 일부를 입력하면 그제서야 검색된 주소 항목이 나타난다.
1-1. 성+이름으로 검색하기.
나타난 주소록 중 한 명의 것을 더블클릭해서 자세히 보면, 이름,성,표시,기본 메일,기타-메모 등이 보일 것이다.
우리 회사의 경우만 그런지 모르겠으나, 이름과 성이 분리되어 있고, 붙여진 이름(성+이름)은 "메모"에 있다.
이 경우, 주소록 검색의 기본 대상은 이름,성,표시 뿐이기 때문에, 붙여진 이름으로는 검색이 안된다.
(만약 붙여진 이름이 "표시"란에 있다면 검색이 잘 될 것이다.)
이를 해결하기 위해선 여러 가지 방법이 있을 수 있으나, 가장 간단한 방법은 아래와 같다.
주소록 검색의 기본 대상에 "표시"란이 있기 때문에, "메모"에 입력되는 값과 "표시"에 입력되는 값을 바꾸는 것이다.
본래, 개인 주소 정보에 표시되는 이름,성,표시,메모 등은 AD 주소록의 특정 필드를 매핑해온 것이다.
이 매핑에 대한 규칙을 바꿈으로써, AD 주소록에서 불러올 때, "표시"로 들어갈 것과 "메모"로 들어갈 것을 교환하는 것이다.
이 매핑을 수정하기 위해서는 다음과 같이 한다.
주소록이나 Thunderbird 메인에서, 도구-설정-고급-고급 설정-설정 편집, "about:config" 창이 뜬다.
아래 두 항목을 찾아 그 값을 바꿔준다. 값을 바꿀 때는 해당 항목을 더블 클릭하면 된다.
ldap_2.servers.default.attrmap.DisplayName description,notes ("표시"에 나타나게 할 필드)
ldap_2.servers.default.attrmap.Notes cn,commonname ("메모"에 나타나게 할 필드)
(오른 쪽의 값들은 AD나 LDAP의 필드명들이며, 회사에 따라서는 성+이름이 다른 필드에 있을 수도 있다.)
"about:config" 창의 닫기(X) 버튼을 눌러 창을 닫는다.
-> 여기까지 하고 Thunderbird를 다시 시작하여, 주소록에서 "지금 다운로드"를 다시 하고 나면, 이름으로 검색이 잘 된다.
더불어, 검색된 항목을 더블클릭하여 개인의 주소를 열어 보면, "표시"와 "메모"의 값이 바뀌어 들어와 있는 것을 확인할 수 있다.
2. 메일 쓰기 창에서의 자동완성을 위한 처리
(사실 이 부분이 이 글을 작성하게 된 주된 이유다. 인터넷을 아무리 뒤져도 해결책이 안 나와서 결국은 소스 코드까지도 좀 봐야 했다.)
Thunderbird를 AD나 LDAP과 연동하였을 경우, 자동완성이 잘 안되는 경우가 많다.
되더라도, 성+이름을 입력하는 상황에서는 자동완성이 안 나타나고, 메일 주소를 입력하는 상황에서만 나타나는 식이다.
즉, Thunderbird가 자동완성을 하려 할 때, 각 개인의 주소 정보가 지닌 모든 필드를 살펴서 자동완성을 제시하는 것이 아니라, 일부 필드만을 뒤져서 처리하는 것이다.
더불어, 이렇게 나타난 자동완성조차도 "성+이름 <메일>"의 형태가 아닌 "사번 <메일>"과 같은 형태일 수 있다.
이를 해결하기 위해선 아래와 같이 추가 설정을 하면 된다.
주소록이나 Thunderbird 메인에서, 도구-설정-고급-고급 설정-설정 편집, "about:config" 창이 뜬다.
아래 두 항목은 리스트에 없기 때문에 새로 추가해야 한다.
새로 추가하는 방법은 설정 항목 리스트 아무 곳에서나 마우스 우클릭-새로 만들기-문자열 선택으로 한다.
ldap_2.servers.MYAD.autoComplete.filterTemplate (|(description=*%v*)(mail=%v)) (자동완성을 시도할 때 AD나 LDAP의 개별 주소 필드 중 description과 mail 필드를 뒤지라는 의미. 회사에 따라선 description이 아닌 다른 필드에 성+이름이 들어있을 수도 있음)
ldap_2.servers.MYAD.autoComplete.nameFormat [sn][givenName] (자동완성으로 나타날 때 메일 주소 앞에 성+이름을 붙여주라는 의미)
"about:config" 창의 닫기(X) 버튼을 눌러 창을 닫고, 뒤에 있던 설정 창에서, 쓰기-주소-메일 주소 자동 완성-디렉토리 서버 목록에서 MYAD를 선택한 뒤 모든 창을 닫는다.
-> 여기까지 하고 Thunderbird를 다시 시작하여, 주소록에서 "지금 다운로드"를 다시 하고 나면, 메일 쓰기에서 이름+성으로 자동완성이 잘 된다.
(메일 쓰기를 할 때마다, 첫 자동완성은 반응이 느릴 수 있으나, 주고 받는 메일의 주소들은 수집 주소록에 저장되므로 반응이 느려지는 것은 점차 사라질 것이다.)



최근 덧글