티스토리 뷰

우분투 서버에서 메일 발송하기 위해선 대부분 sendmail이나 postfix 중 하나를 선택해서 사용해야한다.
동시에 사용할 경우 충돌 이슈가 생길 수 있으며 대부분 postfix를 권장한다. postfix가 sendmail에 비해 설치가 간편하기 떄문이다.
다만, 현재 세팅하고 있는 서버의 기존 리소스가 sendmail을 사용하고 있어, sendmail로 설정하려고 한다.

 

1. 호스트 서버에 sendmail 설치하기

# sendmail 설치
$ sudo apt-get update
$ sudo apt-get install sendmail sendmail-cf sendmail-bin -y

# postfix 설치일 경우
$ sudo apt-get install postfix mailutils

 

 

2. 호스트 서버에서 메일 발송 테스트

 echo “메일 본분입니다.” | mail -s “이것은 테스트입니다.” test@example.com

 

 

3. 발송 확인

sudo tail /var/log/maillog

 


 

메일이 정상적으로 발신되고 수신이 되었다면 컨테이너 내부에서 발송가능하도록 설정해보자.

컨테이너 내부에서 호스트 서버 sendmail 을 통해 발송하기 위해서는 몇가지 설정이 필요하다.

1. 호스트 서버에서 내부 Docker container 요청 받도록 설정하기
$ sudo vi /etc/mail/sendmail.mc

#127.0.0.1에서 0.0.0.0으로 변경
DEMON_OPTIONS(’Port=smtp, Addr=127.0.0.1, Name=MTA’)dnl
//DEMON_OPTIONS(’Port=smtp, Addr=0.0.0.0, Name=MTA’)dnl

# sendmail 설정 이후 sendmail 재시작 해준다.
sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
sudo systemctl restart sendmail
sudo systemctl status sendmail

 


$ yum install -y epel-release msmtp msmtp-mta mailx

 

1. /etc/msmtprc 설정하기
defaults
auth off // 인증 off
tls off // tls off
logfile /var/log/msmtp.log

account default
host 172.17.0.1 // docker.internal.host
port 25
from test@example.com // 기본 메일 발송 주소
 

2. sendmail 심볼릭 설정하기. 

ln -sf /usr/bin/msmtp /usr/sbin/sendmail
 
3. 컨테이너 내부에서 메일 발송 테스트하기
echo “메일 본분입니다.” | mail -s “이것은 컨테이너 내부 발송 테스트입니다.” test@example.com
 
 

호스트 서버에서 정상적으로 발송되나, 컨테이너 내부에서 발송되지 않는 경우 아래 내용 추가로 확인해본다.

 

1. 도커 컨테이너 ip 확인하기

ip addr show eth0
inet 172.17.0.2/16 // 도커 컨테이너 ip가 172.17.0.2 가정

 

2. 컨테이너 ip 확인 후 호스트서버 /etc/mail/access 파일 수정하기
$vi /etc/mail/access

#/etc/mail/access
...
172.17.0.2 RELAY // 컨테이너 IP 추가
//or 대역 추가일 경우 172.17.0 RELAY

//access.db 파일 재생성
sudo makemap hash /etc/mail/access < /etc/mail/access

//재시작
$sudo systemctl restart sendmail
반응형

'공부합시다' 카테고리의 다른 글

Bitwarden-cli 사용하기  (0) 2024.08.22
TDD AAA 패턴  (0) 2024.07.04
Oracle 시퀀스(Sequence)와 Identity Column  (0) 2024.05.22
VIM 명령어  (0) 2023.07.07
git merged branch 삭제하기  (0) 2022.04.18
댓글