Leif Erlingsson <leif (at) lege.com> 가 작성.
이 방법을 기술한 원 문서에는 불필요한 내용이 많이 포함되어 있다. 여기에 설명된 내용은 원본의 것을 모두 커버한다.
Slackware 등에서는 /etc/rc.d/rc.M 에 :
echo "Starting sendmail daemon (/usr/sbin/sendmail -bd -os) [queue only mode]..." /usr/sbin/sendmail -bd -os # NOT "-bd -q 15m", the "standard" flags! |
RedHat 등에서는 /etc/rc.d/init.d/sendmail.init 에 :
echo -n "Starting sendmail: [queue only mode]" daemon sendmail -bd -os # NOT daemon sendmail -bd -q1h |
와 같이 수정하도록 한다.
-os 옵션은 사실상 필수적인 것이 아니다. 이것이 하는 역할은 :
SuperSafe 옵션은 sendmail 이 매우 안전하게 작동하도록 보장한다. 심지어 사용자가 즉각적인 메일 전송을 원하는 경우에라도 sendmail 은 queue 에 메일을 쌓아두는 방법으로 처리하는데, 이것은 극히 드문 재앙(메일 전송시에 시스템이 다운되는) 등에도 전송중이던 메일을 안전하게 지키는데 기여한다. 이 옵션은 언제나 활성화되어 있어야만 한다. |
하여간 이 내용은 sendmail.cf 에 디폴트로 적용되어있는 사항이다.
원칙을 지키는 (serious) sendmail 사용자는 아래에 제공되는 m4 소스를 사용하라. sendmail 을 업그레이드할 계획이 있고 sendmail.cf 를 별로 수정하지 않는 사용자는 m4 소스로 설정하는 편이 좋다.
만약 sendmail 설정을 수정해서 동적 IP 등을 사용하는 환경에서도 envelope return header [1] 등이 제대로 찍히기를 원하는 상황이 아니라면 아래의 m4 소스는 필요가 없다.
이런 방법은 sendmail 의 버전에 전적으로 의존하는 경향이 있으므로 아래에 설명된 내용은 sendmail-8.8.x 에만 해당됨을 일러둔다.
/etc/sendmail.cf 를 수정 :
# avoid connecting to "expensive" mailers on initial submission? O HoldExpensive=True |
... 다음으로 ...
##### @(#)smtp.m4 8.33 (Berkeley) 7/9/96 ##### Msmtp, P=[IPC], F=mDFMuXe, S=11/31, R=21, E=\r\n, L=990, T=DNS/RFC822/SMTP, A=IPC $h Mesmtp, P=[IPC], F=mDFMuXae, S=11/31, R=21, E=\r\n, L=990, T=DNS/RFC822/SMTP, A=IPC $h Msmtp8, P=[IPC], F=mDFMuX8e, S=11/31, R=21, E=\r\n, L=990, T=DNS/RFC822/SMTP, A=IPC $h Mrelay, P=[IPC], F=mDFMuXa8e, S=11/31, R=61, E=\r\n, L=2040, T=DNS/RFC822/SMTP, A=IPC $h |
위의 수정에서 가장 중요한 flag 은 "e" 이다. 당신의 sendmail.cf 에서 이미 설정되어 있는 flag 들이 위에 기술된 내용과 같지 않더라도 상관이 없으며, 단지 "e" 를 추가해주는 것만으로 충분하다. "expensive" 를 의미하는 "e" 가 이미 존재한다면 또 하나의 "e" 를 덧붙일 필요는 없다. [2]
아래의 설명에서는 편의상 sendmail 버전을 8.8.7 로 가정한다. 만약 다른 버전의 sendmail 을 사용하고 있다면 버전 번호를 자신의 것으로 교체하여 작업하면 되겠다. 아래 내용은 8.8.7 이전의 sendmail 에는 적용되지 않으므로 최신 버전의 sendmail 을 설치하기 바란다.
sendmail 소스를 다운로드한다. http://WWW.Sendmail.ORG 나 ftp://ftp.sendmail.org 에서 받을 수 있다.
나의 패치는 envelope sender reverse aliasing 과 그 외에 당신의 메일 환경을 제어할 수 있도록 하는 훌륭한 내용을 담고 있는데, 이것을 추천한다.
이 패치를 얻기 위해 (당신의 sendmail 버전이 8.8.7 이라면) Sendmail Patch <sendmail (at) lege.com> 에게 "sendmail-8.8.7" 라는 제목으로 메일을 보내달라.
또한 패치들은 이 미니-하우투의 sgml 소스인 http://www.lege.com 에서도 얻을 수 있다!
만약 당신이 "외부메일은 큐에 걸어놓고 로컬메일을 우선적으로 발송하는" 기능만 원한다면 위에서 언급한 패치를 적용할 필요는 없다. 패치에는 다른 내용들도 많이 포함되어 있기 때문이다. 하지만 많은 리눅스 사용자들이 그 패치가 매우 유용하다고 생각할만큼 쓸모있는 내용이라고 확신한다. (원하는 경우라면 패치를 통해서 잘 동작하는 가상 도메인도 얻을 수 있다. 가상 도메인은 local 일 필요가 없으며 reverse aliasing 이라고 알려진 xaliases 를 제공한다.)
sendmail 소스를 풀면 /usr/src/sendmail-8.8.7/ 을 얻는다. /usr/src/sendmail-8.8.7/cf 으로 이동한다.
나의 패치를 원하는 경우라면 아래의 내용을 적용하고, 그렇지 않다면 이 단계는 건너뛴다 : 만약 procmail 을 로컬 MDA 로 사용하지 않는 경우라면 이 패치를 적용하기 전에 /usr/src/sendmail-8.8.7/cf/ostype/linux.m4 을 백업해 두어야 한다. 나의 패치를 /tmp/sendmail-8.8.7-cf-cpio-idcmu.gz 로 저장한 다음,
cd /usr/src/sendmail-8.8.7/cf gzip -dc < /tmp/sendmail-8.8.7-cf-cpio-idcmu.gz | cpio -idcmu |
만약 procmail 을 사용하지 않는다면 방금 백업해두었던 /usr/src/sendmail-8.8.7/cf/ostype/linux.m4 파일을 복구시킨다.
패치를 적용했든 적용하지 않았든 상관없이, 아래에 기술한 것과 비슷한 내용이 /usr/src/sendmail-8.8.7/cf/cf/yourhostname.smtp.mc 에 추가되어 있는지 확인해야 한다. (만약 패치를 적용하였다면 "elijah" 라는 문자열을 포함하는 파일이 /usr/src/sendmail-8.8.7/cf 아래에 존재하는지 조사해도 된다.) :
dnl # Defer Delivery to "expensive" mailers until next time the dnl # queue is processed using "O HoldExpensive=True" and make dnl # sure smtp mailers are "expensive". dnl # (See original "sendmail" book Chapter 30: Options, dnl # "Oc - Don't connect to expensive mailers", or dnl # 2nd Edition "sendmail" book Chapter 34.8.29, dnl # "HoldExpensive (c), Queue for expensive mailers".) dnl # / Leif Erlingsson <leif@lege.com> define(`confCON_EXPENSIVE', `True') define(SMTP_MAILER_FLAGS, e) MAILER(local)dnl MAILER(smtp)dnl |
원래문서의 1.x 버전은 /var/X11R6/lib/fvwm/system.fvwmrc 파일에 대한 메뉴 지원에 대한 내용을 담고 있었다. 현재는 이 내용을 생략했지만 필요하다면
Menu support suggestions <fvwmrc (at) lege.com> 에게 "Menu support suggestions" 라는 제목으로 메일을 보내면 된다.
| [1] | 역주 : 메일 헤더에 찍히는 발신지 주소 정도를 의미하는 것 같습니다. |
| [2] | 역주 : flag 은 위에서 F=... 라고 나타난 부분을 가리킵니다. |