CPU : AMD64 x86_64
OS : RHEL 4.1
smtp/current 에러 내용 :
@400000004461b5440c073364 tcpserver: fatal: temporarily unable to figure out IP address for 0.0.0.0: file does not exist

결론은 qmail-smtpd, checkpassword 가 64로 컴파일 할 경우 정상동작하지 않는다.

결국 저 두파일만 32비트 머신에서 컴파일한 버전으로 끼워 맞췄다. (설정들을 똑같게 하도록 64비트에서 패치한 소스를 그대로 가져다가 빌드했다.)

해결책 출처 :
http://qmail.kldp.org/phpbb/viewtopic.php?t=5809&highlight=amd64



qmail용 64비트 패치를 어디선가 본 것 같은데...

Posted by freezn
메일이 안가길래 로그를 확인해보니 너무 많아서-_-; 아예 최소로 돌리고 다음과 같이 직접 실행으로 테스트해봤다.

명령 :
/usr/local/bin/tcpserver -vHRl 0 -x /etc/tcp.smtp.cdb 0 25 cat

에러 :
tcpserver: fatal: temporarily unable to figure out IP address for 0.0.0.0: file does not exist

qmail 관련 forum들을 찾아보면 AMD64(옵테론,Opteron)인 경우 이 상황을 자주 만나는 듯 하다.
황당하지만 이렇게 하면 해결된다.

해결 :
touch /etc/dnsrewrite


정보 출처 :
http://forums.gentoo.org/viewtopic-p-2639199.html#2639199

qmail은 AMD64랑 궁합이 잘 맞지 않는가보다 ㅡㅜ
...옵테론 미워할거야 ㅡㅜ

- AMD64 에서만 이 문제가 나는 이유는 뭘까?? 자동으로 파일을 생성하지 못하나??
Posted by freezn
vpopmail 없이 qmail 만을 이용해서 사용할 때 그나마 좀 편리해지라고 삽질 해봤다.

#!/bin/bash
##################################################
DIR_BASE=/home/MailHome
QM_BIN_DIRMAKE=/var/qmail/bin/maildirmake
QM_DIR_NAME=Maildir
GID=mailusers
if (test -z $1); then
       echo "usage : $0 [mailuserid]"
else
       UID=$1
       DIR_HOME=${DIR_BASE}/${UID}
       DIR_USER_MAIL=${DIR_HOME}/${QM_DIR_NAME}
       useradd -g ${GID} -s /sbin/nologin -d ${DIR_HOME} ${UID}
       RETVAL=$?
       # when account create successfully
       if (test $RETVAL -eq 0); then
               rm -rf ${DIR_HOME}/.[a-zA-Z0-9]*
               ${QM_BIN_DIRMAKE} ${DIR_USER_MAIL}
               chown ${UID}.qmail -R ${DIR_USER_MAIL}
               chmod 770 -R ${DIR_USER_MAIL}
               passwd ${UID}
       fi
fi

추가 과정 :
쉘 접속이 불가능한 계정을 추가한다.
계정 추가에 성공하면:
해당 계정 홈디렉토리에 숨겨진 파일들을 지워버린다.
홈디렉토리 안에 Maildir 을 생성한다(qmail 메일 디렉토리)
생성한 메일디렉토리에 qmail 데몬이 접근할 수 있도록 한다.
추가한 계정의 패스워드를 정한다.

1. 사용자 추가
2. (아이디 중복 등) 사용자 추가에 실패시
3. 사용자 제거
Posted by freezn