회사 동료가 배치 작업의 결과를 메일로 보내는 걸 구현한 걸 보여줬습니다. [python과 구글 smtp 서버를 이용해 email을 전송해보자] 이걸 보고 생각난게, 이런 작업 결과도 내 이메일 계정이 아닌, 서버의 이메일 계정으로 보내면 그럴듯하겠다는 생각을 했습니다. 아래 그림 1, 그림 2처럼 말이죠.
그래서 오늘은 저번에 만든 오라클 클라우드 VM에 메일 서버를 설치했습니다.
postfix
먼저 postfix 설치.
$ sudo apt-get install postfix
설치 중에 옵션을 묻는 것이 나오는데, 기본 값으로 ( internet site ) 진행합니다.
No configuration: 설정 변경없이 초기값(기존 값) 사용
Internet site: SMTP로써 메일을 발송/수신할 때 사용.
Internet with smarthost: 메일 수신은 다른 걸 사용하고 송신만 할 때 사용
Satellite system: 메일은 발송은 다른데서하고 전달만 하는 걸로 사용
Local only: 로컬 사용자에게만 메일을 발송한다
다음으로 도메인을 묻는 옵션이 있는데, 도메인이 있다면 적어주면 됩니다. 저는 없어서 그냥 server hostmame을 사용했습니다.
mailutils
그리고 다음으로 메일을 만들어줄 mailutils 설치.
$ sudo apt-get install mailutils
설치가 완료되었으면 메일을 발송해 봅니다.
$ echo "Hello, $(hostname). Today is $(date)" | mail -s "Test Mail" {{email addresss}}
그리고 메일을 확인해 봅니다. ( 아마 대부분 스팸함에 있을 것 같습니다. )
나만의 메일서버 2줄로 완성했고, 발송은 1줄로 되었습니다. 간단하죠? 무료로 서버 만든 김에 메일 서버도 하나 만들어서 사용해보세요.
스팸차단설정
아참, 이렇게만 두면, 제 메일서버가 대용량 스팸메일을 전송하는 gateway로 이용될 수도 있으니, 설정하나만 추가 해두시죠. KISA에서 운영하는 불법 스팸 대응센터에서 스팸차단 리스트를 제공해줍니다. 설정도 한 줄만 하면 되고, 일 10만 통 이하로 발송하는 시스템에서 사용하기 적합하다고 하니 개인용으로 설정한 메일서버에서 쓰기 딱 좋은 것 같습니다.
( https://spam.kisa.or.kr/rbl/sub2_R.do?idx=10¤tPage=1 )
$ vi /etc/postfix/main.cf
# span차단리스트 설정 추가.
smtpd_sender_restrictions = reject_rbl_client spamlist.or.kr
# postfix 데몬 재시작
$ $ systemctl restart postfix