· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Docbook Sgml/Mail-Queue

Linux Mail-Queue mini-HOWTO

Linux Mail-Queue mini-HOWTO

조지완

    
   

v2.03, 2001-12-17, sendmail 8.8.7

이 문서에서는 외부 메일을 큐에 쌓아두고 로컬 메일을 전송하는 법에 대해 기술한다. sendmail 로 하여금 사용자가 "그래" 라고 할 때까지 외부 메일을 큐에 걸어두고 로컬 메일을 배달하도록 만드는 데 필요한 수정사항을 담고있다.

고친 과정
고침 0.12002-02-20고친이 조지완
최초 번역, 원문 V2.03, 2001-12-17, sendmail 8.8.7 에 대해

번역상의 오류가 있다면 로 알려주시기 부탁드리며, 이 미니-하우투의 원문은 이쪽 에서 보실 수 있습니다.


1. 들어가며

이 문서는 두 사람에 의해 작성되었다. dial on demand 를 사용하지 않는 방법은 오래된 것으로 Leif Erlingsson 에 의해 씌여졌고, dial on demand 를 사용하는 방법은 Jan P Tietze 에 의해 완성되었다.


2. dial on demand 를 사용하지 않는 방법

Leif Erlingsson 가 작성.

이 방법을 기술한 원 문서에는 불필요한 내용이 많이 포함되어 있다. 여기에 설명된 내용은 원본의 것을 모두 커버한다.


2.1. sendmail 을 기동하기

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 에 디폴트로 적용되어있는 사항이다.


2.2. sendmail 을 설정하기

원칙을 지키는 (serious) sendmail 사용자는 아래에 제공되는 m4 소스를 사용하라. sendmail 을 업그레이드할 계획이 있고 sendmail.cf 를 별로 수정하지 않는 사용자는 m4 소스로 설정하는 편이 좋다.

만약 sendmail 설정을 수정해서 동적 IP 등을 사용하는 환경에서도 envelope return header [1] 등이 제대로 찍히기를 원하는 상황이 아니라면 아래의 m4 소스는 필요가 없다.


2.2.1. 수정할 내용이 별로 없는 경우 sendmail.cf 에 직접 설정하기

이런 방법은 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=\n, L=990,
		T=DNS/RFC822/SMTP,
		A=IPC $h
Mesmtp,		P=[IPC], F=mDFMuXae, S=11/31, R=21, E=\n, L=990,
		T=DNS/RFC822/SMTP,
		A=IPC $h
Msmtp8,		P=[IPC], F=mDFMuX8e, S=11/31, R=21, E=\n, L=990,
		T=DNS/RFC822/SMTP,
		A=IPC $h
Mrelay,		P=[IPC], F=mDFMuXa8e, S=11/31, R=61, E=\n, L=2040,
		T=DNS/RFC822/SMTP,
		A=IPC $h

위의 수정에서 가장 중요한 flag 은 "e" 이다. 당신의 sendmail.cf 에서 이미 설정되어 있는 flag 들이 위에 기술된 내용과 같지 않더라도 상관이 없으며, 단지 "e" 를 추가해주는 것만으로 충분하다. "expensive" 를 의미하는 "e" 가 이미 존재한다면 또 하나의 "e" 를 덧붙일 필요는 없다. [2]


2.2.2. m4 소스를 사용하여 sendmail.cf 를 설정하기

아래의 설명에서는 편의상 sendmail 버전을 8.8.7 로 가정한다. 만약 다른 버전의 sendmail 을 사용하고 있다면 버전 번호를 자신의 것으로 교체하여 작업하면 되겠다. 아래 내용은 8.8.7 이전의 sendmail 에는 적용되지 않으므로 최신 버전의 sendmail 을 설치하기 바란다.

sendmail 소스를 다운로드한다. http://WWW.Sendmail.ORGftp://ftp.sendmail.org 에서 받을 수 있다.

나의 패치는 envelope sender reverse aliasing 과 그 외에 당신의 메일 환경을 제어할 수 있도록 하는 훌륭한 내용을 담고 있는데, 이것을 추천한다.

이 패치를 얻기 위해 (당신의 sendmail 버전이 8.8.7 이라면) Sendmail Patch 에게 "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


2.3. 메뉴 지원에 대한 제안

원래문서의 1.x 버전은 /var/X11R6/lib/fvwm/system.fvwmrc 파일에 대한 메뉴 지원에 대한 내용을 담고 있었다. 현재는 이 내용을 생략했지만 필요하다면

Menu support suggestions 에게 "Menu support suggestions" 라는 제목으로 메일을 보내면 된다.


3. Dial-on-demand 를 사용하는 방법

Jan P Tietze 가 작성.

많은 리눅스 사용자는 다이얼업 회선으로 인터넷에 접속을 하고, 그들 대부분은 dialup on demand 방식으로 동작을 한다. 이는 로컬 네트웍이나 로컬 호스트에서 발생하는 어떤 종류의 IP 패킷이라도 ISP 로의 연결은 자동적으로 설정되고, 더 이상의 패킷 송수신이 없을 때 일정 시간이 지나면 자동적으로 접속이 끊어지는 방식을 뜻한다.

이는 매우 쾌적하고 저렴한 방법이긴 하지만, 단 한가지 경우에는 쾌적하지도 않고 (왜냐하면 모뎀으로 다이얼업을 하는 동안에는 매우 씨끄럽기 때문에) 저렴하지도 않은데, 이것은 바로 e-mail 을 보내는 작업을 하는 경우다. e-mail 은 통상 SMTP 로 보내지는데, SMTP 호스트는 보통 당신의 시스템이거나 인터넷상의 호스트 - 주로 당신이 사용하는 ISP 의 네트웍에 존재하는 호스트 - 가 된다.

다이얼업 회선을 사용하는 경우, 메세지를 보낼때마다 링크를 셋업 [3] 해야만 한다. 이런 방법은 메세지 하나를 보낼 때는 꽤 괜찮지만, 여러 메세지를 보내야 할 때 여러 번 ISP 에 연결하는 것은 지루하고도 비경제적이다. 또한 당신이 사용하는 ISP 가 접속하는 횟수를 제한한다면, 하루 중의 어떤 때에는 메세지를 보내지 못하고 미루어 둔 체 다음에 손수 보내야만 하는 일도 생긴다.

이 문서의 dialup on demand 가 아닌 방식 에서 이 문제가 해결되어 있긴 하지만, 외부 DNS 를 찾기 위해 ISP 로 접속하는 경우에는 단지 e-mail 이 큐에 걸리는 것 만으로도 접속이 유지된 채 남아있을 것이다. 이것은 sendmail 이 호스트명을 정규화(canonify) 하려고 시도하기 때문이다.

이에 대한 해결책은 두 부분으로 나누어진다: 하나는 sendmail.cf 를 약간 수정하여 실제적인 메일 전송작업을 정의하는 것이다. 개인적으로 나는 이 작업을 cron 을 이용해서 처리하는 것을 좋아하며, 필요한 내용은 이제부터 차근차근 기술하도록 하겠다.


3.1. sendmail.cf 설정하기

2절에서 설명한 이유때문에, 나는 sendmail.cf 를 직접 수정하는 것보다는 m4 소스를 사용하기를 권한다. 그렇게 하는 것이 괜한 수고를 더는 지름길이며 설정 변경을 상세하게 할 수 있다.

우선 2절에서 설명된 방법대로 수정을 가한다. 그리고 나서 dial on demand 에 관련된 내용을 처리한다.


3.1.1. 수정할 내용이 별로 없는 경우 sendmail.cf 에 직접 설정하기

직접 설정하는 것은 매우 비실용적이고 상세함과는 거리가 먼 방법이지만, 물론 이것은 당신이 선택할 문제이다.

sendmail.cf 의 끝부분 근처에 아래와 같은 내용이 있을텐데:

R$* < @ $* $˜P > $*		$: $1 < @ $[ $2 $3 $] > $4

행의 제일 앞에 # 을 추가하여 아래와 같이 되도록 하라.

#R$* < @ $* $˜P > $*		$: $1 < @ $[ $2 $3 $] > $4


3.1.2. m4 소스를 사용하여 sendmail.cf 를 설정하기

/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


3.2. 다이얼 지연을 추가하기

다이얼 지연을 추가하는 것은 특히 모뎀을 사용하는 환경에서 유용한 방법이다. sendmail 이 e-mail 을 보내기 위해 외부와의 접속을 시도할 때 (이런 경우에 ISP 로의 링크가 셋업된다.) sendmail 이 타임아웃되는 시간보다 다이얼업 시간이 더 오래 걸리는 경우라면, 다이얼업 지연을 통해서 단순히 sendmail 이 몇 초 지난 다음에 연결을 시도하도록 만들 수 있다.


3.2.1. sendmail.cf 에 직접 설정하기

sendmail.cf 의 어딘가에 아래와 같은 내용이 있을텐데 :

#O DialDelay=10s

(또는 매우 유사한 내용이 있을텐데) "#" 을 제거하라. 만약 행의 첫 부분에 "#" 이 없다면 그대로 두는 것으로 좋다. (이것은 전에 이 설정이 적용되었음을 의미한다.)

만약 sendmail.cf 에 그런 내용이 없다면 추가해 주도록 한다. (sendmail.cf 의 options 부분에 추가하는 것이 바람직하다.)

O DialDelay=10s

"10s" 부분을 적당하다고 여겨지는 시간으로 고친다. (단위는 초)


3.2.2. m4 소스를 사용하여 sendmail.cf 를 설정하기

/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


4. e-mail 을 전송하기

e-mail 전송은 명령행 sendmail -q 을 실행함으로써 이루어진다. sendmail 이 실제적으로 작동하는 내용을 알고 싶은 사람은 sendmail -q -v 를 통해서 보다 자세한 전송과정을 볼 수 있다.

e-mail 전송을 자동화하는 것은 매우 편리한 일인데, 가장 널리 쓰이는 방법은 cron 을 이용하는 것이다.


4.1. e-mail 을 특정한 시간에 전송하는 방법

crontab 을 수정한다 :

crontab -e

아래와 같은 내용을 추가한다 :

05 18-23,0-7	* * Mon,Tue,Wed,Thu,Fri	/usr/sbin/sendmail -q
05 *		* * Sat,Sun		/usr/sbin/sendmail -q

보다 자세한 내용은 crontab man 페이지를 참고하기 바라며, (명령행 man 5 crontab 으로 가능하다.) 내 생각에는 적용된 내용이 꽤 명확한 것 같다. 위 예제에서 crontab 에 등록된 내용은 (메일 큐에 e-mail 이 걸려있는 경우에 한해서) 주중에는 오후 6시부터 오전 7시까지, 주말에는 하루종일 매 5분마다 [4] e-mail 을 전송하도록 하는 것이다.

dial on demand 사용자들은 때때로 하루 중 특정한 시점에서 POP3 를 이용하여 e-mail 을 모으는 것을 원하는 경우가 있다. 그렇다면 아래와 같은 내용을 crontab 에 추가하면 된다 :

0 21		* * * popclient -3 -u <your pop3 user name goes here>
			-p <put your password here>
			-o /var/spool/mail/<the user on your system that should receive the collected e-mail>
			<mailhost.somedomain.com>

위에서는 너무 길어서 여러 줄에 나누어 적었지만 실제로는 물론 한 줄로 적어야 한다.

위와 같이 한 다음, 파일을 저장하고 에디터를 종료한다. 이것으로 crontab 에 등록되었다.


5. License

This document is distributed under the terms of the GNU Free Documentation License. You should have received a copy along with it. If not, it is available from http://www.fsf.org/licenses/fdl.html.

주석

[1]

역주 : 메일 헤더에 찍히는 발신지 주소 정도를 의미하는 것 같습니다.

[2]

역주 : flag 은 위에서 F=... 라고 나타난 부분을 가리킵니다.

[3]

역주: ISP 에 연결하는 것

[4]

역주 : 5분간격이 아니라 정시에서 5분이 지난 시점만을 의미합니다.

Linux Mail-Queue mini-HOWTO

Linux Mail-Queue mini-HOWTO

조지완

    
   

v2.03, 2001-12-17, sendmail 8.8.7

이 문서에서는 외부 메일을 큐에 쌓아두고 로컬 메일을 전송하는 법에 대해 기술한다. sendmail 로 하여금 사용자가 "그래" 라고 할 때까지 외부 메일을 큐에 걸어두고 로컬 메일을 배달하도록 만드는 데 필요한 수정사항을 담고있다.

고친 과정
고침 0.12002-02-20고친이 조지완
최초 번역, 원문 V2.03, 2001-12-17, sendmail 8.8.7 에 대해

번역상의 오류가 있다면 로 알려주시기 부탁드리며, 이 미니-하우투의 원문은 이쪽 에서 보실 수 있습니다.


1. 들어가며

이 문서는 두 사람에 의해 작성되었다. dial on demand 를 사용하지 않는 방법은 오래된 것으로 Leif Erlingsson 에 의해 씌여졌고, dial on demand 를 사용하는 방법은 Jan P Tietze 에 의해 완성되었다.


2. dial on demand 를 사용하지 않는 방법

Leif Erlingsson 가 작성.

이 방법을 기술한 원 문서에는 불필요한 내용이 많이 포함되어 있다. 여기에 설명된 내용은 원본의 것을 모두 커버한다.


2.1. sendmail 을 기동하기

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 에 디폴트로 적용되어있는 사항이다.


2.2. sendmail 을 설정하기

원칙을 지키는 (serious) sendmail 사용자는 아래에 제공되는 m4 소스를 사용하라. sendmail 을 업그레이드할 계획이 있고 sendmail.cf 를 별로 수정하지 않는 사용자는 m4 소스로 설정하는 편이 좋다.

만약 sendmail 설정을 수정해서 동적 IP 등을 사용하는 환경에서도 envelope return header [1] 등이 제대로 찍히기를 원하는 상황이 아니라면 아래의 m4 소스는 필요가 없다.


2.2.1. 수정할 내용이 별로 없는 경우 sendmail.cf 에 직접 설정하기

이런 방법은 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=\n, L=990,
		T=DNS/RFC822/SMTP,
		A=IPC $h
Mesmtp,		P=[IPC], F=mDFMuXae, S=11/31, R=21, E=\n, L=990,
		T=DNS/RFC822/SMTP,
		A=IPC $h
Msmtp8,		P=[IPC], F=mDFMuX8e, S=11/31, R=21, E=\n, L=990,
		T=DNS/RFC822/SMTP,
		A=IPC $h
Mrelay,		P=[IPC], F=mDFMuXa8e, S=11/31, R=61, E=\n, L=2040,
		T=DNS/RFC822/SMTP,
		A=IPC $h

위의 수정에서 가장 중요한 flag 은 "e" 이다. 당신의 sendmail.cf 에서 이미 설정되어 있는 flag 들이 위에 기술된 내용과 같지 않더라도 상관이 없으며, 단지 "e" 를 추가해주는 것만으로 충분하다. "expensive" 를 의미하는 "e" 가 이미 존재한다면 또 하나의 "e" 를 덧붙일 필요는 없다. [2]


2.2.2. m4 소스를 사용하여 sendmail.cf 를 설정하기

아래의 설명에서는 편의상 sendmail 버전을 8.8.7 로 가정한다. 만약 다른 버전의 sendmail 을 사용하고 있다면 버전 번호를 자신의 것으로 교체하여 작업하면 되겠다. 아래 내용은 8.8.7 이전의 sendmail 에는 적용되지 않으므로 최신 버전의 sendmail 을 설치하기 바란다.

sendmail 소스를 다운로드한다. http://WWW.Sendmail.ORGftp://ftp.sendmail.org 에서 받을 수 있다.

나의 패치는 envelope sender reverse aliasing 과 그 외에 당신의 메일 환경을 제어할 수 있도록 하는 훌륭한 내용을 담고 있는데, 이것을 추천한다.

이 패치를 얻기 위해 (당신의 sendmail 버전이 8.8.7 이라면) Sendmail Patch 에게 "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


2.3. 메뉴 지원에 대한 제안

원래문서의 1.x 버전은 /var/X11R6/lib/fvwm/system.fvwmrc 파일에 대한 메뉴 지원에 대한 내용을 담고 있었다. 현재는 이 내용을 생략했지만 필요하다면

Menu support suggestions 에게 "Menu support suggestions" 라는 제목으로 메일을 보내면 된다.


3. Dial-on-demand 를 사용하는 방법

Jan P Tietze 가 작성.

많은 리눅스 사용자는 다이얼업 회선으로 인터넷에 접속을 하고, 그들 대부분은 dialup on demand 방식으로 동작을 한다. 이는 로컬 네트웍이나 로컬 호스트에서 발생하는 어떤 종류의 IP 패킷이라도 ISP 로의 연결은 자동적으로 설정되고, 더 이상의 패킷 송수신이 없을 때 일정 시간이 지나면 자동적으로 접속이 끊어지는 방식을 뜻한다.

이는 매우 쾌적하고 저렴한 방법이긴 하지만, 단 한가지 경우에는 쾌적하지도 않고 (왜냐하면 모뎀으로 다이얼업을 하는 동안에는 매우 씨끄럽기 때문에) 저렴하지도 않은데, 이것은 바로 e-mail 을 보내는 작업을 하는 경우다. e-mail 은 통상 SMTP 로 보내지는데, SMTP 호스트는 보통 당신의 시스템이거나 인터넷상의 호스트 - 주로 당신이 사용하는 ISP 의 네트웍에 존재하는 호스트 - 가 된다.

다이얼업 회선을 사용하는 경우, 메세지를 보낼때마다 링크를 셋업 [3] 해야만 한다. 이런 방법은 메세지 하나를 보낼 때는 꽤 괜찮지만, 여러 메세지를 보내야 할 때 여러 번 ISP 에 연결하는 것은 지루하고도 비경제적이다. 또한 당신이 사용하는 ISP 가 접속하는 횟수를 제한한다면, 하루 중의 어떤 때에는 메세지를 보내지 못하고 미루어 둔 체 다음에 손수 보내야만 하는 일도 생긴다.

이 문서의 dialup on demand 가 아닌 방식 에서 이 문제가 해결되어 있긴 하지만, 외부 DNS 를 찾기 위해 ISP 로 접속하는 경우에는 단지 e-mail 이 큐에 걸리는 것 만으로도 접속이 유지된 채 남아있을 것이다. 이것은 sendmail 이 호스트명을 정규화(canonify) 하려고 시도하기 때문이다.

이에 대한 해결책은 두 부분으로 나누어진다: 하나는 sendmail.cf 를 약간 수정하여 실제적인 메일 전송작업을 정의하는 것이다. 개인적으로 나는 이 작업을 cron 을 이용해서 처리하는 것을 좋아하며, 필요한 내용은 이제부터 차근차근 기술하도록 하겠다.


3.1. sendmail.cf 설정하기

2절에서 설명한 이유때문에, 나는 sendmail.cf 를 직접 수정하는 것보다는 m4 소스를 사용하기를 권한다. 그렇게 하는 것이 괜한 수고를 더는 지름길이며 설정 변경을 상세하게 할 수 있다.

우선 2절에서 설명된 방법대로 수정을 가한다. 그리고 나서 dial on demand 에 관련된 내용을 처리한다.


3.1.1. 수정할 내용이 별로 없는 경우 sendmail.cf 에 직접 설정하기

직접 설정하는 것은 매우 비실용적이고 상세함과는 거리가 먼 방법이지만, 물론 이것은 당신이 선택할 문제이다.

sendmail.cf 의 끝부분 근처에 아래와 같은 내용이 있을텐데:

R$* < @ $* $˜P > $*		$: $1 < @ $[ $2 $3 $] > $4

행의 제일 앞에 # 을 추가하여 아래와 같이 되도록 하라.

#R$* < @ $* $˜P > $*		$: $1 < @ $[ $2 $3 $] > $4


3.1.2. m4 소스를 사용하여 sendmail.cf 를 설정하기

/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


3.2. 다이얼 지연을 추가하기

다이얼 지연을 추가하는 것은 특히 모뎀을 사용하는 환경에서 유용한 방법이다. sendmail 이 e-mail 을 보내기 위해 외부와의 접속을 시도할 때 (이런 경우에 ISP 로의 링크가 셋업된다.) sendmail 이 타임아웃되는 시간보다 다이얼업 시간이 더 오래 걸리는 경우라면, 다이얼업 지연을 통해서 단순히 sendmail 이 몇 초 지난 다음에 연결을 시도하도록 만들 수 있다.


3.2.1. sendmail.cf 에 직접 설정하기

sendmail.cf 의 어딘가에 아래와 같은 내용이 있을텐데 :

#O DialDelay=10s

(또는 매우 유사한 내용이 있을텐데) "#" 을 제거하라. 만약 행의 첫 부분에 "#" 이 없다면 그대로 두는 것으로 좋다. (이것은 전에 이 설정이 적용되었음을 의미한다.)

만약 sendmail.cf 에 그런 내용이 없다면 추가해 주도록 한다. (sendmail.cf 의 options 부분에 추가하는 것이 바람직하다.)

O DialDelay=10s

"10s" 부분을 적당하다고 여겨지는 시간으로 고친다. (단위는 초)


3.2.2. m4 소스를 사용하여 sendmail.cf 를 설정하기

/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


4. e-mail 을 전송하기

e-mail 전송은 명령행 sendmail -q 을 실행함으로써 이루어진다. sendmail 이 실제적으로 작동하는 내용을 알고 싶은 사람은 sendmail -q -v 를 통해서 보다 자세한 전송과정을 볼 수 있다.

e-mail 전송을 자동화하는 것은 매우 편리한 일인데, 가장 널리 쓰이는 방법은 cron 을 이용하는 것이다.


4.1. e-mail 을 특정한 시간에 전송하는 방법

crontab 을 수정한다 :

crontab -e

아래와 같은 내용을 추가한다 :

05 18-23,0-7	* * Mon,Tue,Wed,Thu,Fri	/usr/sbin/sendmail -q
05 *		* * Sat,Sun		/usr/sbin/sendmail -q

보다 자세한 내용은 crontab man 페이지를 참고하기 바라며, (명령행 man 5 crontab 으로 가능하다.) 내 생각에는 적용된 내용이 꽤 명확한 것 같다. 위 예제에서 crontab 에 등록된 내용은 (메일 큐에 e-mail 이 걸려있는 경우에 한해서) 주중에는 오후 6시부터 오전 7시까지, 주말에는 하루종일 매 5분마다 [4] e-mail 을 전송하도록 하는 것이다.

dial on demand 사용자들은 때때로 하루 중 특정한 시점에서 POP3 를 이용하여 e-mail 을 모으는 것을 원하는 경우가 있다. 그렇다면 아래와 같은 내용을 crontab 에 추가하면 된다 :

0 21		* * * popclient -3 -u <your pop3 user name goes here>
			-p <put your password here>
			-o /var/spool/mail/<the user on your system that should receive the collected e-mail>
			<mailhost.somedomain.com>

위에서는 너무 길어서 여러 줄에 나누어 적었지만 실제로는 물론 한 줄로 적어야 한다.

위와 같이 한 다음, 파일을 저장하고 에디터를 종료한다. 이것으로 crontab 에 등록되었다.


5. License

This document is distributed under the terms of the GNU Free Documentation License. You should have received a copy along with it. If not, it is available from http://www.fsf.org/licenses/fdl.html.

주석

[1]

역주 : 메일 헤더에 찍히는 발신지 주소 정도를 의미하는 것 같습니다.

[2]

역주 : flag 은 위에서 F=... 라고 나타난 부분을 가리킵니다.

[3]

역주: ISP 에 연결하는 것

[4]

역주 : 5분간격이 아니라 정시에서 5분이 지난 시점만을 의미합니다.




sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2006-07-20 21:47:48
Processing time 0.0164 sec