반응형
작성일: 2024년 5월 7일

 

 

Sendmail 설치

Sendmail 패키지 설치는 간단하다. 아래와 같이 2줄의 명령어를 실행하면 끝 !!!

$ apt update -y

$ apt install sendmail

 

 

Sendmail 설정 (당장 필요한 부분만 간단하게 수정~)

만약, 아래와 같이 Sendmail을 발신 전용으로 사용하는 경우라면

  • Sendmail 서버가 설치된 Ubuntu OS 호스트에서 mail CLI 또는 mailx CLI를 통해서 mail 발송만 하는 경우
  • Sendmail 서버가 설치된 Ubuntu OS 호스트에서 내가 개발한 mail 전송 프로그램이 localhost address(127.0.0.1) 주소로 binding해서 보내는 경우

설정을 수정하지 않고, 기본 설정값으로 사용해도 다 잘 동작한다.

 

단, Sendmail 서버가 설치된 장비가 아닌 Remote 장비에서 email을 발송하도록 하거나 

내가 설치한 Sendmail 서버를 수신용 서버로 사용하고자 한다면 아래와 같이 인터넷 Address(즉, 0.0.0.0)을 사용할 수 있도록 설정 항목을 수정해야 한다.

 

$ vi /etc/mail/sendmail.mc

... 중간 생략 ...
## NOTE: Addr 항목 값을 "0.0.0.0"으로 변경한다.
DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=0.0.0.0')dnl
DAEMON_OPTIONS(`Family=inet,  Name=MSP-v4, Port=submission, M=Ea, Addr=0.0.0.0')dnl
... 중간 생략 ...

$ m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

 

 

Sendmail 서버 프로그램을 설치한 장비의 domain name을 /etc/mail/local-host-names 파일에 설정한다.

$ vi /etc/mail/local-host-names
localhost
my-host.my-domain.kr
mail.my-domain.kr

 

 

수정했으니까, sendmail을 재기동하여 수정된 설정을 반영한다.

$ systemctl restart sendmail

 

 

 

Sendmail 서버를 이용하여 메일 발송하는 테스트하기

우선, 간단한 mail 에이전트 CLI 프로그램을 설치한다.

$ apt-get install mailutils

 

 

mail CLI를 이용하여 메일을 발송하는 스크립트를 작성한다.

$ vi send-mail.sh

#!/usr/bin/zsh

MY_DATE=$(date)
MY_SUBJ="This is test mail (${MY_DATE})"
echo "My hello world at ${MY_DATE}" | mail -s $MY_SUBJ sejong@naber-nara.kr


$ chmod +x send-mail.sh

$ ./send-mail.sh

 

 

별루 설정한거 없고, 작업한게 없지만 

메일을 잘 갈 것이다 ^^

Python, Golang 같은 언어로 sendmail 서버 프로그램에 메일 전송 요청을 했는데, 별로 어려운 거 없이 잘 작동하는 것을 확인했다.

(기본 설치는 SMTP 서버 접근에 대한 인증이 따로 없어서 그냥 바로 테스트가 된다. 쫌~~~ 위험함 ㅠㅠ) 

 

참고: Python은 아래 Web Docs의 Example code를 복붙(Copy & Paste)하면 잘 동작한다.

 

https://docs.python.org/ko/3/library/email.examples.html

 

 

 

DNS 서버에 MX Record 추가하기

아래 예제와 비슷한 모양으로 MX Record를 추가해준다.

 

$ vi /var/cache/bind/my-domain.kr.zone

... 중간 생략 ...

; MX Records
;
@       IN      MX      10    mail
@       IN      MX      20    mailx
... 중간 생략 ...

 

이렇게 DNS 서버(즉, 네임서버)에 MX Record가 설정되면

제3자가 sejong@my-domain.kr으로 메일을 보낼 때, 자동으로 mail.my-domain.kr 또는 mailx.my-domain.kr이 SMTP 수신 서버라고 인지하게 된다.

 


 

+ Recent posts