Unix/Solaris10

GNU Mailman postfix 연동

ForceCore 2008. 1. 22. 08:09
http://blog.naver.com/ssanzing2/140044311290
위 글대로 컴파일까지 하고, apache와 연동까지는 완성했다.
이제 postfix와의 연동이 남았다.
http://kldp.org/KoreanDoc/html/Mailman-KLDP/Mailman-KLDP-4.html
위 글을 믿고 계속 가보자.
문서의 $prefix는 필자의... 언제나처럼 소스코드의 default로대로 둔,
/usr/local/mailman이다.

# su - listserv
$ cd /usr/local/mailman/cron
$ crontab crontab.in
모두 이상없이 잘 됨. su - listserv를 안 하고 하는 방법도 있다.
$ cd /usr/local/mailman/cron
$ crontab listserv crontab.in
(위는 솔라리스 스타일의 crontab 명령어이다. 리눅스 스타일은 crontab -u listserv crontab.in 인듯)

(솔라리스지만 이라고 해야 하나? ㅋㅋ... 그럼에도 필자가 솔라리스를 고집하는 이유는 솔라리스는 뿌리깊은 나무라서 ㅡ,.ㅡ 꾸준히 쓰는 사람이 있고 그에 따라 거의 언제나 해결책이 있기 때문이다...;; 여태까지는 그랬다. 컴파일이 실패한적이... 있기는 한데 다른 더 좋은 프로그램으로 대체해왔다. 그 대표적인 예가 dovecot이 되겠다.)

그리고 이제 alias를 추가할 차례이다.
필자는 postfix가 읽는 alias파일을
/etc/postfix/aliases로 해놓았었다.
이 파일을 열었다. (*하지 마시오! 최신 문서에 따르면, 하면 안된다 ㅡ,.ㅡ)

mailman: postmaster
mailman-owner: mailman

이렇게 두 줄을 넣었다....
* 하지 말아야 함

$prefix/Mailman/mm_cfg.py 수정.
MTA = 'Postfix'
라고 적는다.
Postfix를 default값으로 설치했다면 나머지 Default.py에서 POSTFIX_ALIAS_CMD, POSTFIX_MAP_CMD가 제대로 되었는지 체크할 필요는 없을 것이다.

# bin/genaliases
수행.
# chown listserv:listserv data/aliases*
# chmod g+w data/aliases*
로 소유권 이전도 해준다.

이제 postfix를 방법할 차례. main.cf를 수정하여
/usr/local/mailman/data/aliases를
alias_maps에 추가.

# newaliases
로 시스템의 alias db를 갱신.

여기까지도 문제 없음. 여기까지가 컨닝 문서의 4.3 최종 시스템 셋업하기 이다.

문서가 조금 옛날 것이라 /usr/local/malman/Mailman/mm_cfg.py를 보라고 하는데
실제로 거기에 들어가보면 form Defaults import라고 되어있다.
Defaults.py를 봐야 함. 엄... 새 문서를 찾아야 할 것 같다.
문서에서 보라고 하는 variable들이 obsoleted되었음.

http://www.gnu.org/software/mailman/mailman-install/customizing.html
새로 찾았다. gnu사이트의 것이니 물론 확실하다.
should you make any changes 라고 하는 것을 보니 설정을 안 봐도 될 것이다.

공식문서의 10 Start Mailman qrunner를 할 차례.
옛날 문서에는 아예 나오지도 않는 부분이다...;;;

$prefix로 들어가서
bin/mailmanctl start를 해본다.

필자는 에러가 난다 -_-;
Site list is missing: mailman
아마도, 최신 문서를 따르지 않아서 그런 것 같군.
공식문서의 8장, Create a site-wide mailing list를 따라야 한다.

흐음...
$ bin/newlist mailman
Enter the email of the person running the list: postmaster
Initial mailman password: 적당히 입력.
하니...
Illegal list name: mailman@yyy
, yyy는 서버 이름.
에러가나서... postfix설정에서 mailman관련해서 넣은 두 줄을 도로 뺐다.

그래도 에러가 안 없어진다.
because... DEFAULT_EMAIL_HOST와 DEFAULT_URL_HOST 모두 다 FQDN... 서버의 별명이 아니라 서버의 완전힌 도메인 명이어야 하기 때문이다.

$ ./configure --with-username=listserv --with-groupname=listserv --with-mailhost=yyy.xxx.ac.kr --with-urlhost=yyy.xxx.ac.kr

에러가 달라졌다.
Bad owner email address: postmaster
postmaster@yyy.xxx.ac.kr으로 변경. @localhost 이런 건 안 된다....

newlist 성공.

그러면 aliases파일에 뭘 추가해야 하는지 화면에 나올 것이다. 시키는대로 한다.
추가하고
# newaliases
실행.

이제...
# bin/mailmanctl start
를 해본다... 된다. mailmanctl은 /etc/init.d에 소프트링크 걸어서 쓰면 되겠군.
# ln -s /usr/local/mailman/bin/mailmanctl /etc/init.d/mailman

이제 중요한 비밀번호를 정할 차례이다.
메일링리스트의 "root"비번을 정할 차례임.
$ bin/mmsitepass 새비번
그리고 list creator 비번도 정한다.
$ bin/mmsitepass -c 새비번

이제. 기다리고 기다리던.
첫번째 메일링리스트를 만들 차례이다.
http://yyy.xxx.ac.kr/mailman/create 에 접속한다....
에러 -_-;;; Mailman은 nobody로 웹서버가 실행하기를 기대하고 있지만
실제 웹서버는 webservd로 실행중이기 때문이다 (뷁)
그래서. configure를 또 해야 한다.
--with-cgi-gid=webservd
옵션을 붙여서...
$ ./configure --with-username=listserv --with-groupname=listserv --with-mailhost=yyy.xxx.ac.kr --with-urlhost=yyy.xxx.ac.kr --with-cgi-gid=webservd

드디어... +_+;; 페이지가 뜬다.
이제, GUI니까, 시키는대로 하면 된다.

웹서버에 접속할 때,
http://yyy/mailman/create로 접속하면 안 통한다. FQDN으로 접속할 것.
이제 끝. 훗.
앞으로 관리 작업을 하기 위해서는
http://yyy.xxx.ac.kr/mailman/admin
으로 접속하면 된다.