| Unix/Solaris 관련게시판 |
|---|
| 2001/11/12(17:36) from 61.84.168.217 | |
| 작성자 : 강줄기 (jkkang65@hanmail.net) | 조회수 : 3565 , 줄수 : 28 |
| [sendmail] Delivery 에 대해서... |
|---|
|
/* Mail Delivery Modes */ 위에서 언급한 적이 있지만, smail은 메시지를 즉시 전달하거나, 또는 그것을 나중에 처리하기위해 queue할 수 있다. 만약 메시지를 queue하도록 한다면, smail은 모든 메일을 메시지 디렉토리인 /var/spool/smail 아래로 저장한다. 그것은 별도로 시키지 않는한 그 메시지들을 처리하지 않는다. (이를 일컬어 "running the queue"라고 한다). config 파일의 delivery_mode 속성을 foreground, background, 또는 gueued중의 하나로 지정해주어 세가지 delivery mode중 하나를 선택할 수 있다. 이는 foreground에서(인커밍 메시지를 즉시 처리함), background에서(메시지는 수신 프로세스의 자식 프로세스에게 전달되며, 부모 프로세스는 fork시킨 뒤 즉시 종료한다), 그리고 queue되어 배달할 것인지를 선택한다. 만약 config 파일에 boolean 변수 queue_only가 지정되어 있다면, 이들 옵션에 관게없이 인커밍 메시지는 모두 queue된다. 메시지가 queue되도록 해놓는다면, 정기적으로 (10분 또는 15분마다) queue를 체크하는지도 확인해야한다. smail을 daemon mode로 돌릴경우, 커맨드 라인에 -g10m 옵션을 추가하여 매 10분마다 queue를 처리하게 해야한다. 다른 방법으로는, 이 인터벌로 cron에서 runq를 소한하는 것이 있는데, runq는 smail에대한 링크이다. smail에 -bp 옵션을 주어 현재 mail queue를 표시하게 할 수도 있다. 이와 비슷하게, mailq를 smail에 링크시키고 mailq를 실행할 수도 있다. $ mailq -v m0pvB1r-00023UB From: root (in /var/spool/smail/input) Date: Sun, 24 Apr 94 07:12 MET DST Args: -oem -oMP sendmail root@vstout.vbrew.com Log of transactions: Xdefer: reasom: (ERR_148) transport smtp: connect: Connection refused 이는 하나의 메시지가 message queue에 있음을 보여준다. 트랜잭션 로그(tranaction log: mailq에 -v 옵션을 주었을때만 표시된다)는 그 메시지가 돼 전달되고 있지 않은지에 관한 부가적인 원인을 알려준다. 메시지를 배달하려는 시도가 아직 없었다면, 어떠한 트랜잭션 로그도 표시되지 않을 것이다. 메시지를 queue시키지 않을 경우에도, 이따금씩 smail은 일시적인 이유로인해 즉시 배달하지 못할 경우 메시지를 queue에 집어 넣는다. SMTP 커넥션의 경우, 이는 아마도 unreachable한 호스트일 것이다; 그러나 파일 시스템이 full일 때에도 메시지 배달이 연기될 수 있다. 그러므로 (runq를 써서) 매 시간마다 queue를 청소하 주어야하며, 그렇지 않을 경우 메시지는 영원히 queue에 머물러 있을 것이다. # sendmail -bp # mailq -v 위의 명령어는 같은것이다. |
|
|
|