리눅스 메일서버의 SMTP를 사용한 메일전송
본문 바로가기

리눅스 메일서버의 SMTP를 사용한 메일전송

액트 2019. 12. 20.

[CentOS 7] 메일서버의 SMTP를 사용한 메일전송



외부에 있는 SMTP 서버(구글, 네이버)를 이용해서 메일을 보내는 방법입니다.

자체 메일 서버가 따로 없거나, 메일 서버를 구축하기 어려운 환경에서 이 방법을 사용합니다.

화이트도메인, SPF등의 설정이 없더라도 구글메일, 네이버메일 등을 이용하기에 스팸으로 분류되지 않습니다.

 

CentOS 버전 확인

[yjshin@localhost ~]$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

 

설정방법

postfix는 기본적으로 설치되어 있지만 확인 후 없으면 설치하면 된다.

  • 확인
[yjshin@localhost ~]# rpm -qa | grep postfix
postfix-2.10.1-7.el7.x86_64 
  • 없다면 아래와 같이 설치
[yjshin@localhost ~]# yum -y install postfix

 

1. postfix 설정

[yjshin@localhost ~]#vi /etc/postfix/main.cf 

# 아래의 구문을 main.cf에 추가 
relayhost = [smtp.gmail.com]:587 
smtp_use_tls = yes 
smtp_sasl_auth_enable = yes 
smtp_sasl_security_options = noanonymous 
smtp_tls_CAfile = /etc/postfix/cacert.pem 
smtp_sasl_password_maps = hash:/etc/postfix/gmail

 

2. /etc/postfix/gmail를 생성

새로 gmail 파일을 만들면서 아래와 같이 구문을 추가한다(본인의 gmail계정:계정패스워드와 같이 입력한다).

[yjshin@localhost ~]# vi /etc/postfix/gmail 

[smtp.gmail.com]:587 username@gmail.com:password

 

2.1 gmail 파일의 퍼미션을 변경한다.

[yjshin@localhost ~]# chmod 600 /etc/postfix/gmail

 

2.2 postmap을 통해 조회 테이블을 만든다.

이 명령어를 사용하면 gmail.db 파일이 생성된다.

[yjshin@localhost ~]# postmap /etc/postfix/gmail

 

3. CA certificate(인증서)를 생성

CA certificate를 생성할때 make 명령어를 사용한다. 

설치 확인 후 없으면 아래와 같이 설치한다. 

make 명령어 설치 확인

[root@localhost certs]# rpm -qa | grep make
automake-1.13.4-3.el7.noarch
make-3.82-24.el7.x86_64
imake-1.0.5-10.el7.x86_64
cmake-2.8.12.2-2.el7.x86_64

없으면 설치

[yjshin@localhost ~]# yum install make

 

3.1 인증서 생성을 위한 디렉토리 위치를 변경 및 인증서 생성

[yjshin@localhost ~]# cd /etc/pki/tls/certs

키와 테스트 인증서를 하나의 파일에 생성한다.

make hostname.pem

[yjshin@localhost certs]# make hostname.pem

 

 생성을 위한 기초 정보 입력

# 국가코드 
Country Name (2 letter code) [GB]: kr 

# 도이름 
State or Province Name (full name) [Berkshire]: Gyeonggi-do 

# 도시이름 
Locality Name (eg, city) [Newbury]: Anyang-si 

# 회사이름 
Organization Name (eg, company) [My Company Ltd]: TEST

# 부서명 
Organizational Unit Name (eg, section) []: management

# 이름 또는 호스트이름 
Common Name (eg, your name or your server’s hostname) []: yjshin.com 

# 이메일주소 Email Address []: sdg0805@gmail.com

 

 생성된 hostname.pem 파일을 복사

[yjshin@localhost certs]# cp /etc/pki/tls/certs/hostname.pem /etc/postfix/cacert.pem

 

4. Postfix 서비스 재시작

[yjshin@localhost certs]# service postfix restart

 

5. 메일 테스트

CentOS 메일은 mailx 서비스가 담당한다.

mailx 서비스 설치 확인

[root@localhost certs]# rpm -qa | grep mailx
mailx-12.5-19.el7.x86_64

없으면 설치

[root@localhost certs]# yuim -y install mailx

 

5.1 메일 테스트

[root@localhost certs]# mail sdg87@naver.com
Subject:  Subject TEST
Contents TEST
EOT
  • "mail 메일주소입력" 명령어로 시작
  • Subject: 제목
  • 빈칸 본문 내용 입력
  • 메일 보내기 끝내기는 <Ctrl>+D 조합키를 누르면 EOT 와 함께 메일을 전송한다.

 

문제해결

메일 전송이 되지 않는 경우 메일로그를 살펴보고 에러를 찾아낸다.

[root@localhost ~]# cat /var/log/maillog 

댓글