다음 이전 차례

9. 문제 해결

사용자명에 대문자가 들어있는경우 메일을 받으려면?

sendmail을 MTA로 사용하시는 경우에 sendmail.cf의 Mlocal로 시작하는 부분에 보시면 F=이라고 된 부분이 있습니다. 이곳에 u를 추가하면 대문자로 된 계정에서도 메일을 받아볼 수 있습니다. 하지만 계정에는 대문자를 안 쓰시는게 좋습니다. (특히 NIS+를 쓸경우 말썽을 많이 부립니다.)

.forward가 작동하지 않습니다.

Sendmail 8.9.x 부터는 sendmail이 읽어들이는 파일의 모드를 검사합니다. 예를들어 .forward가 있는 디렉토리(일반적으로 홈 디렉토리)의 모드가 그룹에게 쓰기가능하도록 설정되어 있으면 .forward파일자체를 읽지않습니다. 이때문에 .forward가 작동하지 않는다고 투덜대는 사람들이 많습니다. 지금 사용하고 계신 sendmail이 8.9.0이상이라면 자신의 홈디렉토리와 그 상위디렉토리가 그룹에게 쓰기가능하도록 되어있는지 확인해 보시기 바랍니다. 자세한 얘기는 DontBlameSendmail and Enhanced File Security를 참고하시기 바랍니다.

뉴스그룹에 김경욱님이 아래와 같은 글을 올려주셨습니다. 역시 .forward가 작동하지 않는경우를 설명하고 있습니다. 참고하세요.

sendmail.cf에서, .forward에 영향을 미치는 부분은 두군데입니다.

# Forward file search path
O ForwardPath=$z/.forward.$w:$z/.forward

$z (/etc/passwd를 lookup 해서 얻은 유저 디렉토리의 path) 밑의
.forward가 ForwardPath로 잡혀 있습니다. 이 옵션을 disable(#)시키면
forwarding이 되지 않습니다.

다음, 여기서 $z 값을 얻기 위해서 Local delivery agent는 /etc/passwd를
lookup 합니다. 그러나 Mlocal에서 F=w flag가 없으면 Mlocal은
/etc/passwd 를 lookup 하지 않습니다.

Mlocal,         P=/usr/local/bin/procmail, F=lsDFMAw5:/|@qSPfhn9,
S=10/30, R=20/ 40,
                T=DNS/RFC822/X-Unix,
                A=procmail -Y -a $h -d $u

위 두가지 사항을 확인해 보세요.

--
김경욱

access가 작동하지 않습니다.

일단 sendmail.cf를 만든 mc에 FEATURE(access_db, hash -o /etc/mail/access)를 추가하셨는지 검사해 보시고 만일 넣지 않았었다면 추가한 후 다시 sendmail을 생성해 보시기 바랍니다.

가끔 makemap의 버전이 낮아서 안되는 경우가 있습니다. 위와같이 했는경우에도 작동하지 않는다면 sendmail에 같이 들어있는 makemap을 컴파일해서 사용하시면 됩니다. (makemap에서도 사용할 DB등을 명시합니다. sendmail의 컴파일과 동일하게 하시면 됩니다.)


다음 이전 차례