공지사항
제가 운영하는 네이버 카페 개발자 커뮤니티 코어큐브(https://cafe.naver.com/ewsncube)에 가입하시면 컴퓨터 관련 학습 자료와 질의응답을 제공받으실 수 있습니다.
SMTP 서버의 필요성
운영 중인 서비스에서 메일 발송이 필요하다면 온라인에서 제공되는 SMTP(Simple Mail Transfer Protocol) 서비스를 이용해도 되지만 때로는 자체적으로 SMTP 서비스를 구축할 필요가 있다. 본 글에서는 SMTP 서버(Server) 설치를 통해 SMTP 서비스를 구축하는 방법을 소개한다.
SendMail 설치
아래의 명령어를 입력하여 SendMail과 설정 관련 패키지를 설치한다.
yum install sendmail sendmail-cf m4
![](https://blog.kakaocdn.net/dn/kNUTd/btsakc4T47T/kwnueJtiZNQswQTWXHaBo0/img.png)
아래의 명령어를 입력하여 어떤 버전이 잘 설치되었는지 확인한다.
sendmail -d | grep -i Version
![](https://blog.kakaocdn.net/dn/bQweaI/btsajeaSoic/FiGr3ZquKNlYTW3yGfw3MK/img.png)
SendMail 설정
아래의 명령어를 입력하여 Sendmail 설정 파일을 텍스트 에디터로 연다.
vi /etc/mail/sendmail.mc
아래와 같은 구문을 찾아서 주석을 해제한다. 'dnl'이 주석을 의미한다. 공백 때문에 설정을 Sendmail이 못 읽을 수 있으므로 주의한다.
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
![](https://blog.kakaocdn.net/dn/PkR4U/btsamX62gYc/EPSqUVRAiizeciXM3ImaNk/img.png)
아래를 참고하여 SMTP 서버 설정을 적절하게 설정한다.
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
![](https://blog.kakaocdn.net/dn/dKGAEP/btsah9OeFwn/7aLIvtS3m09h6EVNIYCSK0/img.png)
아래를 참고하여 SMTP 서버 도메인을 설정한다.
LOCAL_DOMAIN(`localhost.localdomain')dnl
![](https://blog.kakaocdn.net/dn/oo9ym/btsakeuDPDg/fGXvmtheKCvCafubWkq3S1/img.png)
아래의 명령어를 입력하여 설정 파일을 생성한다.
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
![](https://blog.kakaocdn.net/dn/c2sPwo/btsaEih2Oqq/fR5fwkBF6IYAKvs4KVKRCK/img.png)
아래의 명령어를 입력하고 사진을 참고하여 SendMail 접근 가능한 호스트(Host)의 정보를 설정한다.
vi /etc/mail/access
![](https://blog.kakaocdn.net/dn/eaFTiY/btsamWNNmZB/5h8efFl1Jizx7GryRtK3h0/img.png)
아래의 명령어를 입력하고 사진을 참고하여 운영체제의 로컬 hosts 정보에 메일에서 사용할 도메인을 설정한다.
vi /etc/hosts
![](https://blog.kakaocdn.net/dn/sVNlg/btsak28NLVq/5KUVxXcgzQ2Oa5ccEoNBQk/img.png)
아래의 명령어를 입력하여 SendMail이 자동 실행되도록 설정한다.
systemctl enable sendmail
![](https://blog.kakaocdn.net/dn/7ILqD/btsajdbVCMv/4pazRUE3QVtENxIsao3X9k/img.png)
아래의 명령어를 입력하여 SendMail 설정이 적용되도록 재실행한다.
systemctl restart sendmail
![](https://blog.kakaocdn.net/dn/WmBYF/btsakdQil9P/GOjed5hx1bbGb0Fv4HuKY0/img.png)
메일 발송 테스트
SendMail이 잘 설치되고 설정되었는지를 확인하기 위해 메일 발송 테스트를 수행할 수 있다. 아래의 명령어와 사진을 참고하여 Telnet을 통해 SendMail에 접속하고 메일 발송을 요청하도록 한다.
telnet [SMTP서버주소] [SMTP서버포트]
mail from:<sender@example.com>
rcpt to:<receiver@example.com>
data
메일내용
.
![](https://blog.kakaocdn.net/dn/b9DPQR/btsaETbtvlI/FVLHUElez7ir2voFc6fQE1/img.png)
메일 발송 결과를 확인하기 위해 아래의 명려어를 입력하여 메일 발송 로그를 읽는다. 오류가 발생하는 경우 로그가 나타나는 것이 오래 걸릴 수 있으니 메일 전송 요청이 만료될 때까지 기다린다.
tail -f /var/log/maillog
![](https://blog.kakaocdn.net/dn/cDFrFR/btsayUIyzgv/wPoVyodVzf8oB2ms44UOK0/img.png)
필자의 경우 도메인 설정 오류로 메일 발송 처리가 오래 걸렸고 네이버 메일이 나를 스팸(Spam)으로 간주하여 차단(Block)한 것을 확인할 수 있었다.
'IT > 리눅스마스터1급' 카테고리의 다른 글
인증서 *.p12 파일을 *.pem 파일로 변환 (0) | 2023.05.09 |
---|---|
리눅스 sendmail "Relaying denied. IP name lookup failed [192.168.0.2]" 에러 해결 방법 (0) | 2023.04.16 |
[ Linux 명령어 ] source 명령어란 (0) | 2023.03.27 |
sh 와 source 차이 (0) | 2023.03.26 |
[C언어/C++] tolower, toupper 대문자 소문자 변경 (0) | 2023.03.04 |