Mailing list

이창희
대전광역시 대덕구 대화동 290-22
K&J Company Ltd.
E-mail : chlee@cre.co.kr
URL : http://ns.cre.co.kr/chlee/
Abstract:
mailing list는 e-mail을 통해서 토론이나 공동 프로젝트를 진행하고자 할 때 유용한 도구이다. 본 강의에서는 mailing list에 대한 전반적인 내용과 multiple mailing list를 관리하는 majordomo에 대해서 알아보겠다. 또한, 방대한 조직의 e-mail address를 관리하는 데 유용한 mail gateway의 setting방법에 대해서도 알아본다.
Keywords:
mailing,list,majordomo,mailgateway,gateway

1. Mailing list

1.1 메일링리스트의 용도

메일링리스트의 용도는 크게 세 가지로 볼 수 있다.

1.2 메일링리스트의 작동원리

우선 몇 가지 용어들에 대해서 정리한 후에 작동원리를 살펴보자.

1.2.1 용어

MTA는 메일주소에 해당하는 mailbox로 e-mail을 보낸다. 그러면, 사용자는 UA를
이용하여 메일을 읽는다. mailbox는 도착한 메일이 사용자가 읽을 수 있도록 처리한 후
저장되는 화일이다. 이상을 그림으로 나타내면 다음과 같다.

1.3 메일링리스트의 설치실례

majordomo는 메일의 body부분의 내용을 명령어로 인식하고 실행하는 perl script이다.
따라서, majordomo를 설치하기 위해서는 perl language가 필요하다. 먼저 perl의 설치
과정을 살펴보고 majordomo의 설치에 대해서 알아보자.

1.3.1 perl install

1.3.2 majordomo site

1.3.3 majordomo compile

1.3.4 /etc/majordomo.cf화일의 수정

변경해야할 중요한 몇 가지 변수들에 대해서 알아보자

1.3.5 /etc/aliases화일의 수정

majordomo로 메일이 왔을 때 이것을 처리할 수 있도록 /etc/aliases화일을 적당히 수정해야 한다. 다음 세라인을 /etc/aliases화일에 첨가해야 한다.

owner-majordomo: chlee
Majordomo-owner: chlee
majordomo:"|/usr/local/majordomo-1.93/wrapper majordomo"

첫 번째와 두번째 라인은 majordomo의 관리자가 local domain에 있는 chlee라는 사람이라는 것을 알려주는 것이다. 세번째라인은 majordomo로 메일이 도착했을 때 해야할 것을 알려주는 라인이다. 즉, /usr/local/majordomo-1.93/wrapper 프로그램을 majordomo라는 인수를 가지고 실행하게 된다.

1.3.6 메일링리스트 만들기

예로써 "test"라는 이름을 가진 메일링리스트를 만들어 보도록하자. 다음 예에서 $listdir은 /usr/local/mail이다. 물론 다른 패스를 가질수도 있다.

  1. $listdir에 test라고 불리는 화일을 mode 664(-rw-rw-r--)로 생성한다.
  2. $listdir에 test.passwd화일을 mode 664로 생성하고, list에 대한 "approve" 패스워드를 적는다. 이 패스워드는 "test"메일링리스트의 관리자의 패스워드가 된다.
  3. $listdir에 test.info화일을 mode 664로 생성하고, test list에 대한 소개를 쓴다. 이 화일의 내용은 test 메일링 리스트에 대한 정보를 요구할 때 요구한 사람에게 메일 로서 보여지게 된다.
  4. $listdir에 모든 화일은 user majordomo, group majordomo, mode 664로 해야한다.
test 메일링리스트로의 메일을 처리하기 위해서 /etc/aliases화일에 다음라인들을 첨가해야 한다.

test: :include:$listdir/test
owner-test: chlee
test-request: "|/usr/local/majordomo-1.93/wrapper request-answer test"
test-approval: chlee

첫번째 라인은 "test" 메일링 리스트에 가입한 사람들의 주소를 기록하고 있는 화일을 include 해서 test로의 메일이 "test" 메일링리스트에 가입한 모든 사람에게 가도록 한다. 두번째 라인은 test 메일링리스트의 관리자가 chlee라는 것을 나타내는 것이고, 네 번째 라인은 관리자에게 어떤 종류의 허락을 받아야 하는 경우의 메일 주소이다.

1.4 메일링리스트의 관리

majordomo를 통한 메일링리스트의 관리는 메일을 통해서 이루어진다. majordomo는 body부분에 있는 것들을 명령어로써 인식하고 처리한다. majordomo가 인식하는 명령어중에는 일 반명령어와 관리자용 명령어가 있다.

1.4.1 일반명령어

1.4.2 관리자용 명령어

2. Mail gateway

cre.co.kr도메인에 gateway를 설치하는 과정을 통해 Mail gateway에 대해서 살펴보자.

2.1 Mail gateway의 개념

일반적으로 메일 주소는 chlee@target.cre.co.kr과 같이 '@'다음에 호스트명이 나온다.
그런데, 간혹 보면 chlee@cre.co.kr과 같이 '@'이후에 도메인 명이 오는 경우가 있다.
이런 주소를 갖는 도메인의 경우 Mail gateway가 설치된 것이다. Mail gateway는
sendmail configuration을 조정하여 들어오고 나가는 메일이 모두 하나의 mail exchanger 만을 사용하도록 하는 것이다. Mail gateway를 설치했을 경우 여러가지 메일 라우팅이 어떻게 이루어지는 지 알아보고, 실제로 gateway를 어떻게 설정하는 지에 대해서 살펴보자.

2.1.1 메일과 DNS MX record

Mail gateway에 대해서 이해하기 위해서는 먼저 DNS와 메일과의 관계를 이해해야 한다.

2.1.2 다른 도메인으로부터의 메일 라우팅

(1) any@remote.com의 주소를 가진 사람이 chlee@cre.co.kr로 메일을 보낼 경우에 메일 라우팅 과정을 설명하는 그림이다.
(2) remote.com의 MTA는 먼저 cre.co.kr로 메일을 전달하기 위해 DNS record를 찾아본다. 그리고는 cre.co.kr의 메일교환은 mailgw.cre.co.kr을 통해 일어난다는 것을 안다.
(3) mailgw.cre.co.kr로 메일을 보낸다.
(4, 5) mailgw.cre.co.kr은 메일을 받은 후에 메일을 chlee에게 전달하기 위해 aliases화일을 살펴보고 chlee가 chlee@target.cre.co.kr인 것을 발견한다.
(6) chlee@target.cre.co.kr로 메일을 보낸다.
(7) target.cre.co.kr에서는 chlee의 mailbox로 메일을 저장한다.

2.1.3 다른 도메인으로의 메일 라우팅

아래의 그림은 chlee@cre.co.kr이 who@rsaeuro.com으로 보내는 메일의 라우팅과정이다. (2) local domain의 모든 메일은 mailgw.cre.co.kr로 보내진다.
(3) mailgw.cre.co.kr은rsaeuro.com에 대한 DNS record를 보고 rsaeuro.com에 대한 MX(Mail Exchanger)가 post.rsaeuro.com인 것을 안다.
(4) post.rsaeuro.com으로 메일을 보낸다.

2.1.4 같은 도메인에서의 메일 라우팅

(1) chlee가 같은 도메인의 golmong에게 메일을 보낸다.
(2) 메일은 mailgw.cre.co.kr로 보내진다.
(3) mailgw.cre.co.kr은 aliases화일에서 golmong의 주소를 찾아낸다.
(4) golmong@music.cre.co.kr로 메일을 보낸다.
(5) music.cre.co.kr은 golmong의 mailbox로 메일을 저장한다.

2.2 Mail gateway의 설치

Mail gateway의 설정을 위해서 먼저 DNS record에 다음 라인을 첨가해야 한다.
cre.co.kr. IN MX 10 mailgw.cre.co.kr.

2.2.1 sendmail.cf의 설정을 위한 macro얻기

다음의 장소에서 얻을 수 있다. ftp://ftp.tic.com/pub/cf.pn.tar.Z

2.2.2 mail gateway로 사용할 호스트의 sendmail.cf설정

2.2.3 mail gateway이외의 호스트들의 sendmail.cf설정

2.3 Mail gateway와 POP

PC나 Machintosh의 경우 SMTP를 사용해서 메일을 주고 받을 수 없다. 또한, SLIP이나 PPP접속 사용자의 경우처럼 일시적인 접속의 경우에는 메일을 항상 받을 수는 없다. 이러한 경우 메일을 항상 수신할 수 있는 호스트가 있고 PC에서 remote login을 통하여 자신의 mailbox에 있는 메일을 읽게 된다. POP 프로토콜은 앞의 경우처럼 SMTP를 사용해서 메일을 주고 받을 수 없는 호스트가 SMTP를 운영하고 있는 호스트로부터 메일을 가져와서 local mailbox에 저장하는 것을 가능하게 한다. 이 경우 SMTP를 사용할 수 있는 호스트의 POP protocol을 지원하는 프로그램을 POP server라고 하고 SMTP를 사용할 수 없는 호스트(PC나 Mac)의 UA를 POP client라고 한다.

2.3.1 POP server

다음에서 popper라는 프로그램을 얻는다.
ftp://mailer.fsu.edu/pub/Unix/Email/Server/
ftp://ftp.CC.Berkeley.EDU/pub
그리고 나서 다음과 같이 인스톨한다.
(1)tar xvf popper*.tar; cd popper; make popper
(2)INSTALLDIR 수정; make install
(3)/etc/services화일에 다음을 써넣는다.
    pop3    110/tcp
(4)/etc/inetd.conf화일을 수정한다.
    pop3  stream tcp  nowait root  /usr/local/bin/popper  popper

2.3.2 POP client

POP client로 유명한 것은 Eudora이다. Netscape Mail도 POP 프로토콜을 지원한다.

2.3.3 sendmail configuration