SENDMAIL(8)

명칭
sendmail - 전자 메일 배송 demon

서식
sendmail [flags] [address ...]
newaliases
mailq [-v]
hoststat
purgestat
smtpd

해설
sendmail (은)는 메세지를 한 명 또는 복수의 입수자 (recipient) 에 보냅니다. 필요하면 인터넷 워크를 통해 메세지를 올바른 장소에 전송 합니다.

sendmail (은)는 유저 인터페이스로서 사용되는 것은 고려되고 있지 않습니다. 유저에게 있어 사용하기 쉬운 프론트엔드는 다른 프로그램으로 제공됩니다. sendmail (은)는, 미리 메일로서 정형된 메세지 (을)를 배송하기 위해(때문에)인 만큼 사용됩니다.

인수를 지정하지 않고 기동하면(자), sendmail (은)는 표준 입력을 파일의 종단까지, 또는 `. '만을 포함한 행까지 읽어들여, 거기서 확인한 메세지의 카피를, 열거된 주소에 보냅니다. 주소의 문법이나 내용에 의거해 경로에 사용하는 네트워크를 결정합니다.

로컬 주소는, 어느 파일안을 검색해 적당한 앨리어스(alias)를 실시합니다. 선두에 backslash `\'가 붙은 주소에 대해서는, 앨리어스(alias)는 행해지지 않습니다. 8.10 으로부터, 보내는 사람은 앨리어스(alias) 전개의 대상으로 포함되게 되었습니다. 즉, `john'가 `group'에 메일을 보낸다 때에, `john'가 `group'에 포함되어 있다면, 보낸 메세지는 `john'에도 보내집니다.

  파라미터

-Ac 동작 모드가 최초의 메일 송신 의뢰인 것을 나타내지 않은 경우에서도, submit.cf 를 사용합니다.

-Am 동작 모드가 최초의 메일 송신 의뢰인 것을 나타내고 있는 경우에서도, sendmail.cf 를 사용합니다.

-Btype
    보디의 타입을 type (으)로 설정합니다. 현재 유효한 것은, 7BIT 인가 8BITMIME 입니다.

-ba ARPANET 모드로 이행합니다. 모든 입력행은 CR-LF 로 끝나지 않으면 안되어, 모든 메세지의 말미에는 CR-LF 가 다합니다. 또, ``From:''와 ``Sender:'' 필드는 보내는 사람의 이름으로서 체크됩니다.

-bd demon 모드로 실행합니다. sendmail 하 fork (을)를 실시해, 백그라운드에서 동작해, 소켓 번호 25 로 SMTP connection를 기다립니다. 통상 이 모드는, /etc/rc (으)로부터 실행되고 있습니다.

-bD foreground로 동작하는 이외는 -bd (와)과 같습니다.

-bh 계속적인 호스트 상황 데이타베이스의 현재의 값을 표시합니다.

-bH 계속적인 호스트 상황 데이타베이스로부터 기한 마감의 엔트리를 말소합니다.

-bi 앨리어스(alias) 데이타베이스를 초기화합니다.

-bm 보통으로 메일을 배송합니다(디폴트).

-bp 메일 큐의 리스트를 표시합니다.

-bP 큐안의 엔트리수를 표시합니다. 공유 메모 리사 포트 첨부의 경우만, 사용 가능합니다.

-bs 표준 입출력으로 RFC821 에 의거했다 SMTP 프로토콜을 사용합니다. 이 플래그는, -ba 플래그 중 SMTP 호환의 모든 조작을 포함합니다.

-bt 주소의 테스트 모드로 기동합니다. 이 모드는 대화 모드로 주소를 입력해, 처리의 과정을 표시합니다. 설정 파일 (을)를 디버그 하는데 사용합니다.

-bv 이름의 체크만을 실시합니다. 메세지의 수집이나 배송은 실시해 선. 베리파이모드는, 유저나 메일링리스트가 유효한지 어떤지를 확인한다 위해(때문에) 사용합니다.

-Cfile
    다른 설정 파일을 사용합니다. sendmail (은)는, 다른 설정 파일 (을)를 사용하는 경우는 root 로서 실행할 수 없습니다.

-dX 디버그치를 X (으)로 설정합니다.

-Ffullname
    보내는 사람의 풀네임을 설정합니다.

-fname
    ``from''에 들어가는 이름(즉, 포락선중의 보내는 사람 (envelope sender) 의 이름입니다)를 설정합니다. 최초의 송신 의뢰동안에 From: 헤더가 없어지고 있는 경우, 이 주소는 From: 헤더 중(안)에서도 이용되는 경우가 있습니다. 포락선중의 보내는 사람 주소는, 메세지 전송 상태의 통지의 입수자로서 이용되어 또, Return-Path: 헤더에도 나타납니다. -f (은)는, ``trusted''유저(보통은 root, daemon, network 입니다)가 사용하는지, 보내는 사람이 자기 자신의 이름을 지정해 사용하는 경우만 지정할 수가 있습니다. 그 이외의 경우, X-Authentication-Warning 헤더가 메세지에 부가됩니다.

-G  메세지의 릴레이 (게이트웨이) 송신. 예를 들면, rmail 하지만 sendmail (을)를 부를 때가 그렇습니다.

-hN 호프 카운트를 N (으)로 설정합니다. 호프 카운트는, 메일이 처리될 때마다 증가해 갑니다. 호프 카운트가 상한에 이르렀다 (이)라고 해 메일은 「앨리어스(alias)가 루프 하고 있다」라고 하는 취지의 에러 메세지와 함께 돌려 보내집니다. 만약 이 플래그가 지정되지 않으면, 메세지의 안의 ``Received:''행이 카운트 됩니다.

-i  입력되는 메세지중의 `. '만을 포함한 행을 무시합니다. 이 플래그는, 데이터를 파일로부터 읽어들이는 것 같은 경우에 사용할 필요가 있습니다.

-L tag
    syslog 메세지중에서 사용되는 식별자를, 지정했다 tag (으)로 설정합니다.

-N dsn
    배송 상황의 통지 조건을 dsn (으)로 설정합니다. dsn 에는, `never' (아무것도 통지하지 않는다) 또는, 콤마로 단락지은, `failure' (배송이 실패했을 경우에 통지한다) `delay' (배송이 늦었을 경우에 통지한다) `success' (배송이 정상적으로 행해졌을 경우에 통지한다) 의 편성을 지정할 수가 있습니다.

-n  앨리어스(alias)를 실시하지 않습니다.

-O option=value
    옵션 option (을)를, 지정했다 value (으)로 설정합니다. 이 형식에서는 긴 옵션명이 사용됩니다. 자세하게는 후에 기술합니다.

-ox value
    옵션 x (을)를, 지정했다 value (으)로 설정합니다. 이 형식에서는, 한 글자의 옵션명 밖에 사용할 수 없습니다. 짧은 옵션명에 대해서는 이 메뉴얼에는 기술되고 있지 않습니다. 자세하게는, Sendmail Installation and Operation Guide (을)를 참조해 주세요.

-pprotocol
    메세지를 받아들이기 위해서(때문에) 이용하는 프로토콜명을 설정합니다. 설정할 수 있는 것은, ``UUCP''와 같은 프로토콜명만인가 프로토콜+호스트명, 예를 들어 ``UUCP:ucbvax'' 등입니다.

-q[time]
    큐 속에 있는 메세지를 지정한 시간 간격으로 처리합니다. time (을)를 생략 했을 경우는, 큐의 내용을 한 번밖에 처리하지 않습니다. time (은)는, 초를 나타내는 `s', 분을 나타내는 `m' (디폴트), 시간을 나타내는 `h', 날을 나타내는 `d', 주를 나타내는 `w'의 단위를 붙인 숫자로 지정합니다. 예를 들어, `-q1h30m' (이)나 `-q90m' (은)는, 타임 아웃을 1 시간 30 분으로 설정합니다. 디폴트에서는, sendmail (은)는 demon로서 백그라운드에서 실행됩니다. 이 옵션은, 문제 없고 -bd (와)과 함께 지정 가능합니다.

-qp[time]
    -qtime 와 닮아 있습니다만, sendmail 는, 큐를 처리하는 child process를 정기적으로 fork 하는 것이 아니라, 큐의 처리와 sleeve를 교대로 실시하는 1 개의 영속적인 child process를 fork 합니다. sleeve 시간은 인수로 지정합니다. 디폴트는 1 초입니다. 직전의 큐 실행에 대해 큐가 하늘이었던 경우, 프로세스는 항상 최저 5 초는 sleeve 합니다.

-qf 큐에 보존되고 있는 메세지를 1 번만 처리합니다. 이 때, fork() 하지 않고 , foreground로 실행합니다.

-qG name
    name (이)라는 이름의 큐 그룹중의 작업만 처리합니다.

-q[! ]I substr
    큐 ID 의 캐릭터 라인에 substr 하지만 포함되는 작업만을 처리합니다. ! 하지만 지정되면(자), 그 역이 됩니다.

-q[! ]R substr
    입수자의 리스트의 캐릭터 라인에 substr 하지만 포함되는 작업만을 처리합니다. ! 하지만 지정되면(자), 그 역이 됩니다.

-q[! ]S substr
    보내는 사람의 캐릭터 라인에 substr 하지만 포함되는 작업만을 처리합니다. ! 하지만 지정되면(자), 그 역이 됩니다.

-R return
    메세지가 바운스 했을 때에 반송되는 메세지의 양을 설정합니다. return 파라미터에는, 메세지 전체를 반송하는 경우는 `full' (을)를, 헤더만을 반송하는 경우는 `hdrs' (을)를 지정합니다.

-rname
    -f 플래그와 같습니다만, 낡은 형식입니다.

-t  입수자를 메세지로부터 읽어냅니다. To:, Cc:, Bcc: 필드가 입수자 의 주소로서 읽힙니다. Bcc: 필드는 메세지의 전송전에 삭제됩니다.

-V envid
    오리지날의 포락선 ID 를 설정합니다. 이것은, DSN 를 서포트하는 서버간으로는 SMTP 상을 전달해, DSN 에 따른 에러 메세지 중(안)에서 반송됩니다.

-v  상세 모드로 이행합니다. 앨리어스(alias)의 전개등이 보고됩니다.

-X logfile
    지정되었다 logfile 에, 메이라에 출입하는 정보 모든 것을 기록합니다. 메이라를 디버그 할 때의 마지막 수단으로서의 보고 사용해 주세요. 매우 대량의 정보가 눈 깜짝할 순간에 기록 됩니다.

--  명령 플래그 처리를 정지해, 나머지의 인수를 주소로서 사용합니다.

  옵션
sendmail 에는, 설정할 수가 있는 많은 처리 옵션이 있습니다. 통상, 이러한 옵션은 시스템 관리 책임자만이 사용합니다. 옵션은, 명령행으로부터 -o 플래그를 사용해(짧은 옵션명으로) 지정하거나 -O 플래그를 사용해(긴 옵션명으로) 지정하거나 설정 파일로부터 지정할 수가 있습니다. 여기에 기술해 있는 것은 부분적인 물건으로, 명령행으로부터 지정하는 경우에 편리한 것만을, 긴 옵션명으로 가리키고 있습니다. 완전한 리스트(와 상세)는, Sendmail Installation and Operation Guide (을)를 참조해 주세요. 옵션에는 이하의 물건이 있습니다.

AliasFile=file
    다른 앨리어스(alias) 파일을 사용합니다.

HoldExpensive
    접속하는데 시간이 걸리는 호스트와 접속할 때는, 곧바로 접속하지 않고, 리퀘스트는 큐에 넣어집니다.

CheckpointInterval=N
    sendmail 하지만, N 개의 배송에 성공할 때마다 큐 파일에 체크 포인트를 설정합니다(디폴트는 10 개입니다). 이것에 의해, 시스템의 크래쉬에 의해 긴 메일링리스트의 배송이 중단 되었을 때에도, 재개시에 같은 사람에게 중복 해 배송되는 것을 막습니다.

DeliveryMode=x
    배송 모드를 x (으)로 설정합니다. 배송 모드에는 `i' 대화적(동기적) 배송 모드, `b' 백그라운드(비동기적) 배송 모드, `q' 큐 모드(실제의 배송은, 큐가 실행될 때 행해진다), `d' 연기 모드( -D 옵션으로 지정되었다 MAP (디폴트는 호스트 MAP)에 대해 데이타베이스의 검색을 하지 않는 이외는 `q' (와)과 같다)가 있습니다.

ErrorMode=x
    에러 처리를 모드 x (으)로 설정합니다. 유효한 모드로서 `m' (은)는 에러 메세지를 돌려 보냅니다. `w' (은)는 에러 메세지를 보내는 사람의 단말에 써냅니다 (보내는 사람이 로그인하고 있지 않으면, 메일을 돌려줍니다). `p' (은)는, 에러 메세지를 단말에 표시합니다(디폴트). `q' (은)는, 에러 메세지를 버립니다(exit 코드만을 돌려줍니다). `e' (은)는, BerkNet 용으로 특별 처리를 합니다. 만약, 모드 `m' (이)나 `w' (을)를 사용하고 있는 경우에, 에러가 된 메세지가 에러 메일로서 돌려 보내지고 두, 보내는 사람이 sendmail (을)를 실행하고 있다 머신상의 유저라면, 메세지의 카피는 보내는 사람의 홈 디렉토리에 있다 dead.letter 에 추가됩니다.

SaveFromLine
    메세지의 처음에 UNIX-style 의 From 행을 남깁니다.

MaxHopCount=N
    메일이 루프 하고 있다고 판단되지 않는, 최대의 호프수를 지정합니다.

IgnoreDots
    `. '만을 포함한 행을 메세지의 마지막으로서 해석하지 않습니다.

SendMimeErrors
    에러 메세지를 MIME 포맷으로 돌려 보냅니다. 설정되어 있지 않은 경우는, DSN (Delivery Status Notification: 배송 상황 통지) SMTP 확장은 무효가 됩니다.

ConnectionCacheTimeout=timeout
    connection 캐쉬의 타임 아웃을 설정합니다.

ConnectionCacheSize=N
    connection 캐쉬의 사이즈를 설정합니다.

LogLevel=n
    로그 레벨을 설정합니다.

MeToo=False
    앨리어스(alias)에 자기 자신이 포함되어 있어도, ``me''(보내는 사람 자신)에는 보내지 않습니다.

CheckAliases
    newaliases(1) 명령의 실행때, 앨리어스(alias)의 우변(앨리어스(alias)의 값)의 유효성을 체크합니다.

OldStyleHeaders
    이 옵션이 설정되어 있으면, 메세지가 낡은 스타일의 헤더 (을)를 가지는 일이 있는 것을 의미합니다. 이 옵션이 설정되어 있지 않으면, 이 메세지가 새롭다 스타일을 가지고 있는 것이 프로텍션됩니다(2 개의 주소의 사이는 스페이스의 차이 에 콤마로 단락지어집니다). 이 옵션이 설정되어 있으면(자), 헤더의 포맷을 대부분의 경우에 올바르게 결정하는 적응 알고리즘이 이용됩니다.

QueueDirectory=queuedir
    큐 메세지를 보존하는 디렉토리를 선택합니다.

StatusFile=file
    지정한 이름의 파일에 통계 정보를 세이브합니다.

Timeout.queuereturn=time
    큐 속의 배송되지 않았던 메세지의 타임 아웃 시간을 설정합니다. 이 시간내에(호스트의 다운 등에 의해) 배송을 하지 않았을 때에는, 실패한 취지의 메세지가 돌려 보내집니다. 디폴트는 5 일입니다.

UserDatabaseSpec=userdatabase
    세트 했을 경우, 유저 데이타베이스를 봐, 포워드 정보를 얻습니다. 이 방법을 앨리어스(alias) 기구의 보조로서 사용할 수가 있습니다. 이 방법은, 데이타베이스가 분배되는 것을 의도하고 있는 점이 다릅니다. 한편, 앨리어스(alias)는, 그 호스트 로컬에서만 유효합니다. sendmail 하지만 USERDB 부착으로 컴파일되어 있지 않으면 사용할 수 없습니다.

ForkEachJob
    큐를 처리하는 동안, 각 작업 마다 fork (을)를 실시합니다. 메모리가 적은 머신 그럼 편리합니다.

SevenBitInput
    도착하는 메세지를 7 비트로 합니다 (8 비트째는 떨어뜨립니다).

EightBitMode=mode
    8 비트의 입력을 7 비트의 행선지에 보내는 경우의 처리 방법을 mode (으)로 설정합니다. 처리 방법에는, m (mime 화) 7 비트 MIME 형식에 변환, p (패스) 8 비트인 채 배송(프로토콜에는 위반합니다), s (엄밀) 메세지를 바운스, (이)가 있습니다.

MinQueueAge=timeout
    배송의 시행동안, 작업이 큐에 축적되는 시간을 설정합니다.

DefaultCharSet=charset
    캐릭터 집합이 특히 지정되어 있지 않은 8 비트 데이터에 label 붙이고 할 때에 이용하는, 디폴트의 캐릭터 집합을 설정합니다.

DialDelay=sleeptime
    connection의 확립이 실패했을 경우에, 재시행까지 sleeptime 만 sleeve 합니다. On Demand로 다이얼 접속하는 사이트에서의 사용에 편리합니다.

NoRecipientAction=action
    입수자 헤더 (To:, Cc:, Bcc:)가 없는 경우의 동작을 action (으)로 설정합니다. none 메세지를 변경하지 않는, add-to 포락선으로 지정된 입수자를 넣은 To: 헤더를 더하는, add-apparrently-to 포락선으로 지정된 입수자를 넣은 Apparrently-To: 헤더를 더하는, add-bcc 하늘의 Bcc: 헤더를 더하는, add-to-undisclosed `To: undisclosed-recipients:;' 그렇다고 하는 헤더를 더한다, 라고 하는 동작을 지정할 수 있습니다.

MaxDaemonChildren=N
    기다리고 SMTP demon가 동시에 생성하는 child process의 최대수를 N (으)로 설정합니다.

ConnectionRateThrottle=N
    SMTP 포트에의 1 초당의 최대 connection수를 N (으)로 설정합니다.

앨리어스(alias) 속에서 최초의 캐릭터가 `|'로 시작되는 것은, 메일의 내용을 파이프로 명령에 보내는 것이라고 해석됩니다. sendmail 에 인수의 사이부터 공백 캐릭터를 삭제시키지 않게 하는 경우는 이름을 쿼트 할 (" 로 묶을) 필요가 있습니다. 이하에, 예를 나타냅니다:

    msgs: "|/usr/bin/msgs -s"

앨리어스(alias)에는, ``:include:filename'' 그렇다고 하는 문법도 있습니다. sendmail (은)는, 메일의 입수자의 리스트를 얻기 위해서(때문에), 지정된 파일을 읽습니다. 이하에, 예를 나타냅니다:

    poets: ":include:/usr/local/lib/poets.list"

상기의 예의 경우는, /usr/local/lib/poets.list (을)를 읽어, `poets'의 그룹의 유익의 주소 리스트를 만듭니다.

sendmail (은)는, 이하에 나타내는 것 같은 종료 코드를 돌려줍니다. 이러한 코드는, <sysexits.h> 에 정의되고 있습니다.

EX_OK
    모든 주소에 대해 완전하게 성공했습니다.

EX_NOUSER
    유저명을 인식할 수 없습니다.

EX_UNAVAILABLE
    처리에 필요한 리소스를 얻을 수 없습니다.

EX_SYNTAX
    주소에 문법적인 실수가 있습니다.

EX_SOFTWARE
    인수가 잘못되어 있는 등의, 내부적인 에러입니다.

EX_OSERR
    ``cannot fork''' (와)과 같은, 일시적인 OS 에러입니다.

EX_NOHOST
    호스트명을 인식할 수 없습니다.

EX_TEMPFAIL
    메세지는 곧바로는 보내지지 않았습니다만, 큐에는 넣을 수 있었습니다.

newaliases 그렇다고 하는 명령로 실행되면(자), sendmail (은)는 앨리어스(alias) 데이타베이스를 재구축 합니다. mailq 그렇다고 하는 명령로 실행되면(자), sendmail (은)는 메일 큐의 내용을 표시합니다. hoststat 그렇다고 하는 명령로 실행되면(자), sendmail (은)는, 계속적인 호스트 상태 데이타베이스의 내용을 표시합니다. purgestat 그렇다고 하는 명령로 실행되면(자), sendmail (은)는, 계속적인 호스트 상태 데이타베이스로부터 기한 마감의 엔트리를 말소합니다. smtpd 그렇다고 하는 명령로 실행되면(자), -bd 옵션을 지정된 것 똑같이, sendmail (은)는 demon로서 동작합니다.

주
sendmail (은)는, 많은 문제의 원인이라고 꾸짖을 수 있는 일이 자주 있습니다만, 실제의 곳, 그러한 문제는, 디렉토리의 모드가 과잉에 허가된 상태인 등, 다른 문제에 기인하는 것입니다. 이 때문에, sendmail (은)는, 시스템 디렉토리와 파일의 모드를 체크해, 그것들 디렉토리, 파일이 신뢰하는에 충분할 것인지 어떤지를 결정합니다. DontBlameSendmail 옵션을 설정하는 것으로써, 이 체크를 오프로 해, 시스템의 보안를 저하하는 일도 할 수 있습니다만, 기본적으로는, 퍼미션의 문제는 수정되지 않습니다. 상세한 정보는, http://www.sendmail.org/tips/DontBlameSendmail.html (을)를 참조해 주세요.

관련 파일
/etc/mail/sendmail.cf 그것 자신을 제외해, 이하의 파일의 패스는 모두 /etc/mail/sendmail.cf 의 내부에서 지정되어 있습니다. 이하의 값은 개략에 지나지 않습니다.

/etc/mail/aliases
    앨리어스(alias)명의 생 데이터

/etc/mail/aliases.db
    앨리어스(alias)명의 데이타베이스

/etc/mail/sendmail.cf
    설정 파일

/etc/mail/helpfile
    헬프 파일

/etc/mail/statistics
    통계 정보 파일

/var/spool/mqueue/*
    임시 파일

관련 항목
mail(1), syslog(3), aliases(5), mailaddr(7), mail.local(8), rc(8), rmail(8)

DARPA Internet Request For Comments RFC819, RFC821, RFC822. Sendmail Installation and Operation Guide, No. 8, SMM.

http://www.sendmail.org/

역사
sendmail 명령은 4.2BSD (으)로부터 등장했습니다.