■ /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 테이블을 작성하는 파일을 지정
#Kvirtuser 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 실행