웹&컴퓨팅

sendmail

x2chi 2007. 11. 8. 13:15
반응형

■ /etc/mail 에서 수정해야 할 4가지
1. local-host-names     // 메일서버 도메인 지정(가상호스트를 쓸경우 아이디 뒤에 붙는 메일서버)
2. sendmail.mc            // /etc/mail 에서 make를 실행해 sendmail.cf를 만든다
3. sendmail.cf              // cf파일은 너무나 방대한 분량이기때문에 mc를 사용해 필요부분만 편집한다
4. virtusertable              // 가상 유저


■ sendmail.mc
# STMP 인증기능 사용(47,48번째 줄), 앞에 주석(dnl)을 없애면 사용함으로 된다
# SMTP는 오래전에 만들어진 프로토콜이라 스팸메일을 막기 위해 인증기능을 사용한다
dnl TRUST_AUTH_MECH('EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define('confAUTH_MECHANISMS', 'EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

# 단순한 메일만 주고 받는게 아니라 메일 서버로 사용하고자 할땐(104번째 줄) 앞에 주석처리
dnl DAEMON_OPTIONS('Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

* 설정후
  1. sendmail.mc 파일이 설정이 끝나면 'm4 sendmail.mc sendmail.cf' 명령을 사용해 cf파일을 만든다
  2. sendmail restart 명령으로 sendmail 재시작


■ sendmail.cf

1. 섹션
  local info : 로컬 호스트 정보를 정의
  options : 환경설정 정의
  massage precedence : 메시지 순서값 정의
  trusted Users : 발신자의 주소를 변환할 권한을 가지고 있는 사용자 정의
  format of headers : 메일에 삽입되는 헤더를 정의
  rewriting rules : 사용자의 메일  프로그램에 있는 이메일 주소를, 메일 배달 프로그램에 필요한 폼으로 다시 작성하는 명령
  mailer definitions : 메일을 배달하는데 사용하는 프로그램 정의


2. 설정파일에서 사용되는 명령
  C : 클래스 정의(문자열)
  D : 매크로 정의
  E : 환경변수 정의
  F : 클래스 정의(file, pipe)
  H : Header 정의
  K : Key file 정의(map 정의)
  M : Mailer 정의
  O : 옵션
  P : massage precedences
  R : 덮어쓰기
  S : Ruleset(새로운 규칙시작)
  T : Trusted users(사용자 지정)
  V : 설정파일 버전

3. 세부설정
### local info 섹션 ###

# localhost를 문자열 w클래스로 정의
Cwlocalhost

# 파일 w클래스로 정의. 이곳에 추가할 내용을 Cwlocalhost www.naver.com 이런식으로 정의해도 된다
Fw/etc/mail/local-host-names

# 릴레이를 허용할 도메인 지정. /etc/mail/access에서 릴레이 제어를 하고 있기 때문에 여기선 거의 쓰기 않는다
FR-o /etc/mail/relay-domains

# sendmail이 return 메일을 보낼때 사용하는 사용자 이름 지정
DnMAILER-DAEMON

# Kmailertable hash -o /etc/mail/mailertable
Mailer 테이블을 작성하는 파일을 지정


#K
virtuser hash -o /etc/mail/virtusertable
가상 유저 테이블을 지정

#Kaccess hash -o /etc/mail/access
메일 수신자  데이터 베이스 파일을 지정



### options 섹션 ###

# 7비트로 받아 들이지 않게 설정
O SevenBitInput=False

# 8비트 데이트로 처리하게 설정
O EightBitMode=pass8

# aliases파일의 위치를 지정
O AliasFile=/etc/aliases

# 메일의 최대 용량을 제한하는 옵션. 기본적으로 주석처리 되어 있어 무제한으로 설정되어 있다
O MaxMessageSize=1000000

# sendmail을 백그라운드로 실행한다
O DeliveryMode=background

# 최대 메일 포워딩 수를 정의하고 있다(큐잉 서버를 만들 때 사용되는 것으로 기본값은 주석처리)
O MaxHopCount=17

# help 파일 위치 지정
O HelpFile=/usr/lib/sendmail.hf

# .forward 파일 위치 지정
# $w는 호스트 이름을 가리키는 매크로 값이고 $z는 사용자 홈 디렉토리를 가리킨다
O ForwardPath=$z/.forward.$w:$z/.forward


# 큐 디렉토리 위치 지정(큐 디렉토리는 메일 발송 실패 또는 대기 하고 있는 메일들이 임시로 저장되는 곳)
O QueueDirectory=/var/spool/mqeue

# 타임 아웃 시간 설정(1분)
O Timeout.connect=1m

# 리턴 메일이 발송될 시간 지정(5일동안 발송되지 않으면 보낸사람에게 반송된다)
O Timeout.queuereturn=5d

# 메일이 최종 발신지까지 4시간동안 발송되지 않으면 메일을 보낸 사람에게 경고 메일을 보낸다
O Timeout.queuewarn=4h

# status 파일 위치 지정
O StatusFile=/var/log/sendmail.st

# Mailer 의 UID와 GID를 설정한다. (UID : 8 , GID : 12)
O DefaultUser=8:12

# 메일을 바로 발송하지 않고 최소한 30분동안 큐잉 상태로 대기 시킨다(기본값 주석처리)
O MinQueueAge=30m


■ /etc/aliases
 - 가상 또는 실제 유저를 지정해 특정 유저로부터 오는 메일을 여러 사용자 또는 SMTP로 포워딩 할때 쓴다. 설정이 끝나면 적용을 위해 newaliases 명령을 꼭 쓴다
 - 형식 : [1차 목적지]:              [최종목적지]
 - 파일 수정이 끝나면 반드시 'newaliases' 명령을 실행에 적용시킨다
 1. 메일링 리스트가 소수일때 보내기 (mailing@naver.com)
    mailing:           user1, user2@naver.com, user3, user4, user5@naver.com     // ,로 구분
 2. 메일링 리스트가 다수일때 (mailing@naver.com)
    mailing::          include: /etc/mailing     // mailing이라는 파일안에 메일주소나 사용자명을 적어준다


■ /etc/mail/access
  - 메일 허용도메인을 RELAY한다
  - 공백은 탭으로 구분
  - /etc/mail에서 작업한 파일을 적용시키기 위해선 /etc/mail 에서 make 실행

반응형