Jan P Tietze <jptietze (at) mail.hh.provi.de> 가 작성.
많은 리눅스 사용자는 다이얼업 회선으로 인터넷에 접속을 하고, 그들 대부분은 dialup on demand 방식으로 동작을 한다. 이는 로컬 네트웍이나 로컬 호스트에서 발생하는 어떤 종류의 IP 패킷이라도 ISP 로의 연결은 자동적으로 설정되고, 더 이상의 패킷 송수신이 없을 때 일정 시간이 지나면 자동적으로 접속이 끊어지는 방식을 뜻한다.
이는 매우 쾌적하고 저렴한 방법이긴 하지만, 단 한가지 경우에는 쾌적하지도 않고 (왜냐하면 모뎀으로 다이얼업을 하는 동안에는 매우 씨끄럽기 때문에) 저렴하지도 않은데, 이것은 바로 e-mail 을 보내는 작업을 하는 경우다. e-mail 은 통상 SMTP 로 보내지는데, SMTP 호스트는 보통 당신의 시스템이거나 인터넷상의 호스트 - 주로 당신이 사용하는 ISP 의 네트웍에 존재하는 호스트 - 가 된다.
다이얼업 회선을 사용하는 경우, 메세지를 보낼때마다 링크를 셋업 [1] 해야만 한다. 이런 방법은 메세지 하나를 보낼 때는 꽤 괜찮지만, 여러 메세지를 보내야 할 때 여러 번 ISP 에 연결하는 것은 지루하고도 비경제적이다. 또한 당신이 사용하는 ISP 가 접속하는 횟수를 제한한다면, 하루 중의 어떤 때에는 메세지를 보내지 못하고 미루어 둔 체 다음에 손수 보내야만 하는 일도 생긴다.
이 문서의 dialup on demand 가 아닌 방식 에서 이 문제가 해결되어 있긴 하지만, 외부 DNS 를 찾기 위해 ISP 로 접속하는 경우에는 단지 e-mail 이 큐에 걸리는 것 만으로도 접속이 유지된 채 남아있을 것이다. 이것은 sendmail 이 호스트명을 정규화(canonify) 하려고 시도하기 때문이다.
이에 대한 해결책은 두 부분으로 나누어진다: 하나는 sendmail.cf 를 약간 수정하여 실제적인 메일 전송작업을 정의하는 것이다. 개인적으로 나는 이 작업을 cron 을 이용해서 처리하는 것을 좋아하며, 필요한 내용은 이제부터 차근차근 기술하도록 하겠다.
2절에서 설명한 이유때문에, 나는 sendmail.cf 를 직접 수정하는 것보다는 m4 소스를 사용하기를 권한다. 그렇게 하는 것이 괜한 수고를 더는 지름길이며 설정 변경을 상세하게 할 수 있다.
우선 2절에서 설명된 방법대로 수정을 가한다. 그리고 나서 dial on demand 에 관련된 내용을 처리한다.
직접 설정하는 것은 매우 비실용적이고 상세함과는 거리가 먼 방법이지만, 물론 이것은 당신이 선택할 문제이다.
sendmail.cf 의 끝부분 근처에 아래와 같은 내용이 있을텐데:
R$* < @ $* $˜P > $* $: $1 < @ $[ $2 $3 $] > $4 |
행의 제일 앞에 # 을 추가하여 아래와 같이 되도록 하라.
#R$* < @ $* $˜P > $* $: $1 < @ $[ $2 $3 $] > $4 |
/usr/src/sendmail-8.8.7/cf/cf/yourhostname.smtp.mc 에 아래의 내용을 추가하라 :
FEATURE(nocanonify)dnl |
최종적인 sendmail.cf 는 아래와 같은 명령행을 통해 생성된다. 새로운 내용을 덮어쓰기 전에 원래 설정파일인 /etc/sendmail.cf 을 백업해 두는 것을 잊지 않도록 하라.
cp /etc/sendmail.cf /etc/sendmail.cf.bak cd /usr/src/sendmail-8.8.7/cf/cf m4 yourhostname.smtp.mc > /etc/sendmail.cf |
다이얼 지연을 추가하는 것은 특히 모뎀을 사용하는 환경에서 유용한 방법이다. sendmail 이 e-mail 을 보내기 위해 외부와의 접속을 시도할 때 (이런 경우에 ISP 로의 링크가 셋업된다.) sendmail 이 타임아웃되는 시간보다 다이얼업 시간이 더 오래 걸리는 경우라면, 다이얼업 지연을 통해서 단순히 sendmail 이 몇 초 지난 다음에 연결을 시도하도록 만들 수 있다.
sendmail.cf 의 어딘가에 아래와 같은 내용이 있을텐데 :
#O DialDelay=10s |
(또는 매우 유사한 내용이 있을텐데) "#" 을 제거하라. 만약 행의 첫 부분에 "#" 이 없다면 그대로 두는 것으로 좋다. (이것은 전에 이 설정이 적용되었음을 의미한다.)
만약 sendmail.cf 에 그런 내용이 없다면 추가해 주도록 한다. (sendmail.cf 의 options 부분에 추가하는 것이 바람직하다.)
O DialDelay=10s |
"10s" 부분을 적당하다고 여겨지는 시간으로 고친다. (단위는 초)
/usr/src/sendmail-8.8.7/cf/cf/yourhostname.smtp.mc 에 아래의 내용을 추가하라 :
define(`confDIAL_DELAY',`10s') |
"10s" 부분을 적당하다고 여겨지는 시간으로 고친다. (단위는 초)
최종적인 sendmail.cf 는 아래와 같은 명령행을 통해 생성된다. 새로운 내용을 덮어쓰기 전에 원래 설정파일인 /etc/sendmail.cf 을 백업해 두는 것을 잊지 않도록 하라.
cp /etc/sendmail.cf /etc/sendmail.cf.bak cd /usr/src/sendmail-8.8.7/cf/cf m4 yourhostname.smtp.mc > /etc/sendmail.cf |
| [1] | 역주: ISP 에 연결하는 것 |