저의 리눅스박스에는 IP만 부여되어 있고 도메인이름은 없습니다.
그래서 작년 초 리눅스를 설치하면서부터 sendmail 설정에
애를 먹었습니다. 얼마간 호스트이름을 속이는 방법도 써봤고
nullclient방식도 사용했었지요. 그러나 어느 것도 만족스럽지
못했습니다.
그러나 이제 대충 해결이 된 듯하군요. 다음과 같이 했습니다.
1. mc파일을 우선 만듭니다. 제가 만든 건 이렇습니다.
<pre>
include(`../m4/cf.m4')
VERSIONID(`Sendmail Config for Linux Box which has NO DNS Entry')
OSTYPE(linux)
FEATURE(nouucp)
FEATURE(nocanonify)
FEATURE(local_procmail)
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable')
FEATURE(redirect)
FEATURE(use_cw_file)
FEATURE(`access_db')
FEATURE(`blacklist_recipients')
FEATURE(`rbl')
FEATURE(`masquerade_envelope')
dnl define(`LOCAL_RELAY', `bukak.seokyeong.ac.kr')
dnl define(`MAIL_HUB', `bukak.seokyeong.ac.kr')
define(`SMART_HOST', `bukak.seokyeong.ac.kr')
undefine(`UUCP_RELAY')
undefine(`BITNET_RELAY')
MAILER(smtp)
MASQUERADE_AS(bukak.seokyeong.ac.kr)
LOCAL_USER(root)
LOCAL_USER(admin)
LOCAL_USER(nomos)
EXPOSED_USER(root)
EXPOSED_USER(admin)
</pre>
여기서 물론 <tt>bukak.seokyeong.ac.kr</tt>은 우리학교 메일서버입니다.
그리고 이 파일은 <tt>/usr/lib/sendmail-cf/cf</tt>에 위치하고
있어야 합니다.
2. mc파일에서 cf파일을 만듭니다.
<pre>
m4 my.mc > sendmail.cf
</pre>
3. 만들어진 <tt>sendmail.cf</tt>를 <tt>/etc</tt>로 복사합니다.
원래 있던 <tt>sendmail.cf</tt>는 <tt>sendmail.cf.ORIG</tt>로
백업해두는 것도 잊지마십시오.
4 sendmail을 재가동합니다.
<pre>
/etc/rc.d/init.d/sendmail restart
</pre>
5. 다됐습니다. 간단하죠. 이제 외부로 나가는 메일은 메일서버,
즉 bukak에 릴레이 신청이 들어가는데(SMART_HOST),
이때 제 아이디 뒤에 bukak.seokyeong.ac.kr이라는 FQDN이 붙어서
나가게 됩니다.(masquerade_envelope) 물론 로칼메일들은 리눅스박스
안에서만 전송됩니다. 이 점이 nullclient와 다릅니다.
6. 메일 받아오는 건 fetchmail을 시키고 있습니다.
fetchmail 설정은 언급하지 않겠습니다.
<tt>fetchmailconf</tt>가 대강 해 줄 겁니다.
아직은 별 문제를 발견하지 못했는데, 혹시 잘못된 설정이나 있지 않은지
걱정이 되는군요.
이상의 설정에 관해 아이디어를 얻은 곳은 <a
href="http://gaston.snu.ac.kr/~jmjeong/linux/tips.html">
정재목님의 홈페이지</a>와 <tt>/usr/lib/sendmail-cf/README</tt>입니다.