sendmail + dovecot 메일 서버 구성
2. MTA 구성
/etc/mail/sendmail.mc 파일에서 아래 내용을 수정
#주석제거
#아래부분은 dnl 처리
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
3. cf 파일로 반영
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
만일 cannot open `/usr/share/sendmail-cf/m4/cf.m4': No such file or directory 와 같은 오류가 발생하면
sendmail-cf 패키지를 설치해준다.
yum install sendmail-cf
4. 메일 사용 도메인 등록
/etc/mail/local-host-names 파일에 사용할 도메인 기재
5. 필요한 경우 virtusertable 에 계정별 메일주소 할당
/etc/mail/virtusertable 에 메일주소 + 계정 또는 포워딩 주소 할당
makemap hash virtusertable.db < virtusertable 실행
6.
sendmail 재시작
7. dovecot 설정
##mbox 관련
/etc/dovecot/conf.d/10-mail.conf 파일을 확인해보면 mail_location 부분이 주석처리 되어 있음
mail_location = mbox:~/mail:INBOX=/var/mail/%u
라고 하면 계정 밑에 mail 이라는 디렉토리가 필요하고, 받은 메일 내용은 /var/mail/사용자아이디에 저장된다는 내용
8. dovecot, saslauthd 재시작
9. AUTH적용 확인
telnet localhost 25
ehlo localhost
#결과중에 아래 내용이 있는지 확인
250-AUTH LOGIN PLAIN
10. 접속관련 설정
릴레이 및 수신관련 설정을 /etc/mail/access 파일로 한다.
아래와 같은 형태로 설정한다.
[태그:]도메인/아이피/메일주소 옵션
태그
- Connect: 주소 또는 도메인
- From : 송신자 주소
- To : 수신자 주소
옵션
- OK(모든 것을 허용(Relay)한다.)
- RELAY(관련메일의 수신/발신을 허용한다.)
- REJECT(관련메일의 수신/발신을 거부한다.)
- DISCARD (/etc/sendmail.cf에 지정된 $#discard mailer에 지정된 곳으로 메일을 폐기), 폐기하지만 아무런 오류메세지도 발생하지 않음(정상처리된 것처럼 인식)
- ??? message : ??? 는 3글자의 RFC821 에 정의된 리턴코드를 사용할 수 있고
message 는 오류메세지를 임의로 설정할 수 있다.
예) 500 오류메세지 입니다.
예) 특정아이피 릴레이 허용
Connect:127.0.0.1 RELAY
예) 특정메일주소 수신거부
TO:aaaa@aaa.com DISCARD #아무 오류메세지 뜨지 않음, 정상수신된것 처럼 인식
TO:aaaa@aaa.com REJECT # 수신오류 발생
# RFC 821 응답코드
211 System status, or system help reply
214 Help message
[Information on how to use the receiver or the meaning of a
particular non-standard command; this reply is useful only
to the human user]
220 <domain> Service ready
221 <domain> Service closing transmission channel
250 Requested mail action okay, completed
251 User not local; will forward to <forward-path>
354 Start mail input; end with <CRLF>.<CRLF>
421 <domain> Service not available,
closing transmission channel
[This may be a reply to any command if the service knows it
must shut down]
450 Requested mail action not taken: mailbox unavailable
[E.g., mailbox busy]
451 Requested action aborted: local error in processing
452 Requested action not taken: insufficient system storage
500 Syntax error, command unrecognized
[This may include errors such as command line too long]
501 Syntax error in parameters or arguments
502 Command not implemented
503 Bad sequence of commands
504 Command parameter not implemented
550 Requested action not taken: mailbox unavailable
[E.g., mailbox not found, no access]
551 User not local; please try <forward-path>
552 Requested mail action aborted: exceeded storage allocation
553 Requested action not taken: mailbox name not allowed
[E.g., mailbox syntax incorrect]
554 Transaction failed