linux

[CentOS] 지메일(Gmail) SMTP로 메일 보내기

mysop 2023. 7. 12. 22:46
반응형

최근 지메일의 스팸설정과 보안이 강화되면서

자체 메일서버로 발송한 자잘한 메일들이 아예차단되는 문제가 자주 발생하고 있다

(스팸함 조차 들어가지 못하게 아이피자체를 차단해 버린다)

 

지메일 차단 푸는 방법을 전에 게시한적이 있는데...

2021.10.21 - [기타] - Gmail 로 메일발송이 차단된경우

2022.10.07 - [기타] - 지메일로 메일이 차단된 경우 (시즌 2)

 

지메일만 막힌다면 반대로 

지메일 SMTP를 통해 메일을 발송하면

최소한 아이피 차단같은 일은 벌어지지 않을거라 생각된다.

 

CentOS에서 사용하는 메일 발송 프로그램은

10년전에는 Sendmail이었지만 요즘은 Postfix를 주로 사용한다

 

Postfix로 지메일 SMTP연동하는 방법을 진행해 보자

 

Postfix 설정에 다음과 같이 추가해 주자

# vi /etc/postfix/main.cf

relayhost = [smtp.gmail.com]:587 #지메일 SMTP
smtp_use_tls = yes # tls통신 사용
smtp_sasl_auth_enable = yes # 계정로그인 사용
smtp_sasl_password_maps = hash:/etc/postfix/gmail #지메일 암호파일
smtp_tls_CAfile = /etc/postfix/ssl/cert-i.pem # 인증서
smtp_sasl_security_options = noanonymous 
smtp_sasl_tls_security_options = noanonymous

암호파일을 생성하자

# vi /etc/postfix/gmail

[smtp.gmail.com]:587 계정아이디@gmail.com:지메일비밀번호

문제는 지메일비밀번호가 문제다.

기존 접속하는 비밀번호로 로그인이 안될경우

지메일 2차인증을 설정하여 앱로그인 비밀번호를 만들어 입력하는걸 추천한다.

 

지메일 2차인증후 앱비밀번호 설정 하기

https://support.google.com/accounts/answer/185833?hl=ko 

 

앱 비밀번호로 로그인 - Google 계정 고객센터

도움말: 앱 비밀번호는 권장되지 않으며 대부분의 경우 필요하지 않습니다. 계정을 안전하게 보호하려면 'Google 계정으로 로그인'을 사용하여 앱을 Google 계정에 연결하세요. 앱 비밀번호는 16자

support.google.com

 

지메일 비밀번호 파일에 퍼미션 권한을 준다

# chmod 600 /etc/postfix/gmail

그리고 postmap으로 조회테이블을 만들어 준다

# postmap /etc/postfix/gmail

해당 디렉토리 밑에 gmail.db파일이 생성되어 있으면 된다

 

인증서 생성은 생략한다.

이미 생성된 http용 ssl인증서를 연결해도 된다.

다만 비밀번호가 걸려있지 않는 인증서로 하는게 좋다

 

2022.02.11 - [기타] - SSL인증서 비밀번호 삭제

 

설정이 모두 잘 되었으면 postfix를 재시작해준다

# service postfix restart

메일 발송테스트를 간단하게 해보자

당연한 이야기지만 외부로 587번 포트가 열려있어야 한다

 

# telnet localhost 25

Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 서버명 ESMTP Postfix

ehlo 서버명
250-servername.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

mail from:cksoft@mysop.net
250 2.1.0 Ok

rcpt to:cksoft@mysop.net
250 2.1.5 Ok

data
354 End data with <CR><LF>.<CR><LF>
subject:TEST TEST
testmail
.

250 2.0.0 Ok: queued as DBA23106A10B

 

정상적으로 메일이 지메일을 통해 발송되었으면 /var/log/maillog에 아래와 같이 로그가 발생한다

 

텔넷 연결
postfix/smtpd[5482]: connect from localhost[127.0.0.1]
postfix/smtpd[5482]: DBA23106A10B: client=localhost[127.0.0.1]

메세지작성
postfix/cleanup[5486]: DBA23106A10B: message-id=<20230712133658.DBA23106A10B@mysop.net>

구글SMTP와 통신
postfix/qmgr[14962]: DBA23106A10B: from=<cksoft@mysop.net>, size=341, nrcpt=1 (queue active)
postfix/smtp[5487]: DBA23106A10B: to=<cksoft@mysop.net>, relay=smtp.gmail.com[74.125.203.109]:587, delay=24, delays=20/0.06/2.7/1.1, dsn=2.0.0, status=sent (250 2.0.0 OK  1689169034 c3-20020a170902724300b001b1c3542f57sm3948122pll.103 - gsmtp)
postfix/qmgr[14962]: DBA23106A10B: removed

상태값이 200번대로 나오면 정상적으로 발송되었다

 

status=sent (250 2.0.0 OK  어쩌구 저쩌구... - gsmtp)

 

Postfix - GMAIL
Postfix - GMAIL

 

 

 

출처 : https://webdir.tistory.com/171

 

[CentOS] Gmail의 SMTP를 사용한 메일전송

외부에 있는 SMTP 서버(구글등)를 이용해서 메일을 보내는 방법입니다 네이버웍스나 구글앱스, 다음 도메인메일서비스등과 함께 사용하면 여러가지 이점이 있는데 메일서버를 구축하기 어려운

webdir.tistory.com

 

728x90
반응형