7. 관리하기, 팁, FAQ, etc...

7.1. 도메인 추가후에는

qmail 과 vpopmail 이 돌아가고 있는 상태에서 vadddomain 으로 도메인을 추가했다면 /etc/rc.d/init.d/qmail reload 또는 kill -HUP 시그날을 qmail-send 에게 보내서 /var/qmail/user 설정 파일을 다시 읽도록 해야 한다.

7.2. root 와 mailer-daemon 유저를 추가해라

qmail, vpopmail 로 전환후 잊지 말고 만들어 줘야할 계정들이 있다. 나의 경우 하나의 일반 계정에 모두 알리아스로 만들어 주었다. 이전에 qmail 만을 쓰고 있던 시스템이라면 /var/qmail/alias/ 안의 파일들을 기억하라.

root
mailer-daemon

7.3. 알리아스와 포워드 계정

알리아스와 포워드 계정은 거의 비슷한 기능을 하는데 다른점은 알리아스는 이 서버에 존재하는 메일 계정에 다른 이름을 여러개 설정하는 것이고, 포워드 계정은 도착한 메일을 설정해 놓은 다른 도메인의 메일 계정(들)로 보내는 것이다.

다음 설정 과정을 보면 이해가 쉬울것이다.

qmailadmin 에서는 쉽게 설정 할수 있겠고, 만약 qmailadmin 을 설치하지 않은 경우 다음과 같이 한다.

# 알리아스

silver 라는 팝 메일 계정이 존재하고, webmaster 라는 알리아스를 만드는 경우.

해당 도메인 디렉토리(~vpopmail/domains/도메인/)에 다음과 같은 내용의 .qmail-webmaster 파일을 만든다.

/home/vpopmail/domains/도메인/silver/Maildir/

이제 webmaster 로 오는 메일은 silver 가 받을 것이다.

# 포워드

silver 로 오는 메일을 babo@kldp.org 라는 다른 도메인으로 포워딩 해줄때.

해당 도메인 디렉토리(~vpopmail/domains/도메인/)에 다음과 같은 내용의 .qmail-silver 파일을 만든다.

&babo@kldp.org

이제 이 도메인의 silver 로 오는 메일들은 babo@kldp.org 로 보내질 것이다.

7.4. 각 도메인마다 메일 계정, 메일링 리스트 수 한계 정하기

이것은 웹 호스팅 업체에서 qmailadmin 으로 각 유저들에게 사용중인 도메인의 메일 설정을 직접 하게 해줄때 매우 유용하게 쓰일수 있을것이다.

각 도메인마다 메일,메일링 리스트의 설정 한계를 줄수 있는데, 이것은 ~vpopmail/domains/도메인/ 에 .qmailadmin-limits 파일을 만들어 주면 된다. 형식은 다음과 같다.

maxpopaccounts          X
maxaliases              X
maxforwards             X
maxmailinglists         X
maxautoresponders       X

X 는 해당 도메인이 사용할수 있는 최대한의 수를 넣어주면 되겠다.

7.5. bounce 되는 메일에 메세지 넣기

해당 도메인으로 수신되는 메세지가 바운스 되는 경우가 있는데 보통, 팝 유저의 쿼타 용량이 한도를 넘었거나, 유저가 존재하지 않을 경우이다.

다음과 같은 파일을 만들어 각 가상 도메인의 디렉토리에 넣어 놓으면 바운스 되는 메일들에 포함되어 되돌려 지며 당신은 센스있는 관리자가 된다 :-)

.over-quota.msg 에는 메일 유저의 쿼타 용량이 초과 되었으므로 메일 수신을 할수 없다는 메세지를.

.no-user.msg 에는 우리 도메인엔 그런 메일 계정 없지롱 하는 내용의 메세지를 넣어 두면 된다.

이 파일들이 없다면 vpopmail은 바운스되는 메일에 뻣뻣한 영문 메세지 만을 포함 시킨다.

7.6. 존재하지 않는 계정으로 오는 메일을 모두 받아 보려면

이것은 ~vpopmail/domains/virtual_domain/.qmail-default 파일을 수정하면 된다. 기본적으로 존재하지 않는 계정으로 오는 메일은 다음과 같이 바운스 되게 되어 있다.

| /vpopmail-디렉토리/bin/vdelivermail '' bounce-no-mailbox

만약 admin@test.com 으로 모두 받아보려면 다음과 같이 수정 한다.

| /vpopmail-디렉토리/bin/vdelivermail '' admin@test.com

7.7. 존재하지 않는 계정으로 오는 메일을 다른 도메인으로 보내려면

~vpopmail/domains/virtual_domain/.qmail-default 파일을 다음과 같이 수정한다.

| /vpopmail-디렉토리/bin/vdelivermail '' $EXT@newdomain.com 

7.8. qmailadmin 으로 메일링 리스트 추가할때

필자가 버그 리포팅을 몇번 했지만 qmailadmin 으로 메일링 리스트 추가할때 약간의 버그가 존재한다. (qmailadmin-0.37 에서, 그후의 버젼에는 없어졌을지도 모르지만)

특히 뉴스 메일같은 moderated list 를 추가할때는 제대로 설정이 안되는것 같다. 일반적인 메일링 리스트는 별 이상 없으므로 그냥 쓰던가 나같이 결벽증이 있는 사람들은 qmailadmin 을 이용하지 않고 메일링 리스트는 직접 ezmlm-make 를 이용하는 것이 좋겠다. :-)

7.9. vpopmail pop3 서버의 로그

아무런 설정을 주지 않았다면 vpopmail의 pop3 서버는 팝 유저들이 어떤 이유로든 로그인을 실패 했을 경우에만 로그를 남긴다.(/var/log/maillog 또는 /var/log/messages)에)

vpopmail 설치시 다른 옵션을 줄수 있는데,

--enable-logging=n : 아무런 로그도 남기지 않는다.
--enable-logging=y : 모든 pop3 접속 기록과, 에러 메시지를 남긴다.
--enable-logging=e : 오직 에러 메시지들만 남긴다. (디폴트)

7.10. 서버에서 메일 클라이언트를 사용하는 유저들을 위해

pop3로 메일을 자기 컴퓨터로 긁어가는 사용자들은 아무런 문제도 없을테지만, 서버에 직접 접속하여 메일 클라이언트를 사용하는 사용자들은 메일을 읽을수 없을테니 불만이 생길 것이다.

이런 사용자들을 위해 .qmail 파일을 조작해 사용자의 Mailbox 나 Maildir 로 가게 하는 방법도 있지만 나는 popclient 라는 조그마한 프로그램을 이용했다.

popclient 는 다음에서 받을수 있다.

http://www.csp.trentu.ca/~csess/popclient.tar.gz 또는 http://kltp.kldp.org/tmp/popclient.tar.gz

(이것은 칼 헤리스의 아주 오래된 코드인데 이것을 에릭 레이먼드가 fetchmail 로 발전 시켰지요.)

이것을 사용하면 로컬 pop3 서버에 접속하여 메일을 자신의 계정 mbox 에 옮기는 것이 가능하다.

mbox 형태의 메일함은 대부분의 메일 클라이언트에서 지원하므로 유저들에게 popclient 를 사용하여 localhost 에서 메일을 옮겨 사용하라고 만 해주면 되겠다.

사용법은 다음과 같다.

popclient -3 -u 유저 -p 암호 -o ~/mbox localhost

이외, 더 좋은 방법이 있다면 필자에게 알려주면 고맙지요 :-)

7.11. qmail 설치 디렉토리가 /var/qmail 이 아니라면?

만약 qmail이 /var/qmail 이외의 디렉토리에 설치되었다면 vpopmail 설정시 다음과 같은 옵션을 주어야 한다.

./configure --enable-qmaildir=qmail 설치 디렉토리

7.12. 도메인 마다 IP 주소가 다를 경우

IP 알리아싱을 사용하여 각 도메인마다 다른 IP를 사용하는 경우에는 vpopmail 설치시 --enable-ip-alias-domains=y 옵션을 줄수 있다.

이때 해당 도메인의 DNS 설정은 정확한 forward, reverse lookup 를 가져야 한다. 이와 같이 각 도메인마다 IP 주소가 다를 경우 POP 사용자들은 암호 인증시 "user@domain.com"의 형식이 아닌 "user" 형식을 사용할수 있다.

7.13. vpopmail 설정시 --enable-large-site=y 은 무엇인가?

--enable-large-site=y 는 mysql을 사용할때만(--enable-mysql=y) 해당되는 것이며, 차이점은 --enable-large-site=y 의 경우 도메인마다 각기 다른 db 테이블을 생성하게 된다. 기본적으로는 한개의 테이블에서 모든 도메인과 이메일 계정을 관리한다.

vpopmail의 제작처인 inter7.com 의 설명에 의하면 이 옵션은 소수의 도메인에 매우 많은 수의 이메일 계정을 가지고 있을때 이 옵션을 권장한다. 하지만 반대로 매우 많은 수의 도메인에 소수의 이메일 계정이 있다면 이것은 좋지 않은 옵션이다.

7.14. qmail을 rpm으로 설치했을 경우 주의점!

qmail의 rpm 패키지중 어떤 것들은 cron job으로 주기적으로 /var/qmail/users/assign 을 /etc/passwd를 참조하여 갱신하는 경우가 있다. 이것은 vpopmail의 설정을 모두 바꾸어 버리므로, 해당 cron job을 지우고, vpopmail과 관련된 모든 가상 도메인, 설정파일들을 재 설치 해야 한다.

7.15. CDB에서 MySQL 로의 전환

mysql을 사용하지 않고 vpopmail로 도메인, 유저들을 관리하고 있다가 vpopmail+mysql로의 전환을 하려 한다면, 메일 계정을 sql db로 변환 해주어야 한다.

변환 방법은 ./vconvert -c -s 로 해주면 된다. 이 명령은 시스템에 있는 모든 가상 도메인과 유저들을 하나의 테이블로 변환 해준다. 만약 각각의 테이블로 변환 하려 한다면, ./vconvert -c -s 도메인1 도메인2 ... 와 같이 해준다.

7.16. NFS file locking 문제점

vpopmail 의 디렉토리가 NFS 파일 시스템상에 위치하며, 그 NFS 서버가 user level NFS 서버를 사용하고 있다면, file locking 문제가 발생한다고 한다. 이것은 최신 커널에 포함되어 있는 kernel-level NFS, 즉 knfsd를 사용하면 해결된다고 한다.

7.17. oracle, sybase 를 사용한다면

vpopmail 은 mysql 이외에 oracle, sybase 같은 db와 사용이 가능하다.

오라클 사용자들은 voracle.h 을 수정하여 서비스, 유저, 암호등을 설정한후 proc voracle.pc 를 실행시켜 준다.

sybase 사용자들은 vsybase.h 에 서버, 유저, 암호, app 정보를 수정, 컴파일 한다.

7.18. sqwebmail 을 이용한 웹 메일 서비스

지금 까지 설치한 시스템에 역시 http://www.inter7.com 에서 배포하는 sqwebmail 을 설치하면 바로 웹 메일 서비스를 해줄수 있다. 하지만 이 프로그램은 아직 한글화가 되어 있지 않으므로 한글 문제는 각자 해결해야 한다.

7.19. imap

imap 을 사용하려 한다면 courier-imap을 사용하면 된다. 최신 버젼의 courier-imap은 vpopmail 이 설치되어 있는 시스템이라면 자동으로 해당 모듈이 첨가되므로, 별다른 설정없이 사용할수 있다.

7.20. Qmail 서버 속도 향상 시키기

개인적으로 권장하지는 않지만...

만약 자신의 Qmail smtp 서버가 느리다고 생각된다면 다음과 같이 할수 있다. 기본적으로 tcpserver는 사용되어지는 모든 ip 주소의 DNS 와 ident 를 체크하게 되어있다. tcpserver -H -R 를 사용하면 체크하지 않게 되므로 속도 향상을 볼수 있다.