리눅스 메일서버의 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
'IT > Linux' 카테고리의 다른 글
CENTOS 7 에서 MySQL Select 하여 결과 값을 SMTP 메일 보내기 (0) | 2020.01.03 |
---|---|
리눅스 MariaDB 설치 및 초기 접속, DB 생성부터 테이블 생성까지 (0) | 2019.12.24 |
리눅스 yum groupinstall 명령어 오류 - no packages in any requested group available to install or update (2) | 2019.12.20 |
CentOS 초기 설치 후 설정 및 네트워크 설정하기 (0) | 2019.12.20 |
CentOS 다운로드 하는 방법, 이전 버전 다운로드 (0) | 2019.12.20 |
댓글