Sendmail 메일 발송 설정하기 (다음 한메일 문제 해결)

기존에 우분투 18.04에 sendmail 명령어로 메일 발송을 하기 위해 postfix 를 설치했었는데.. 다음(https://www.daum.net/) 같은 곳은 메일이 제대로 발송되지 않았다.

그래서 postfix 대신 sendmail 패키지를 설치해보았는데 몇가지 설정이 필요하다.

참고로 이글은 메일서버 구축과는 다르다. php 나 go언어 등에서 sendmail 명령어로 메일 발송 하는 부분만을 다룬다.

가장 먼저 그냥 설치해본다.

$ sudo apt install sendmail

이러면 아래와 같은 오류를 만날 수도(?) 있다.

WARNING: local host name (doogle) is not qualified; see cf/README: WHO AM I?

로컬 호스트이름이 제대로 설정되지 않아서 그렇다. 미리 도메인 설정을 한 다음에 아래와 같이 호스트이름을 설정한다.

$ sudo vi /etc/hostname

/etc/hostname 파일 내용을 보면 제대로된 도메인이름이 아닌 적당한 값이 적혀있을 수 있다. 제대로 doogle.link (당연히 이부분은 본인이 지정한 도메인명으로 바꿔야 한다.) 설정한다. 파일을 저장해도 바로 시스템에 적용되지 않는데 아래와 같이 하면 바로 적용된다.

$ sudo hostname -F /etc/hostname

SSH 원격접속이리면 로그아웃 후 다시 재로그인하면 바뀐 호스트명을 터미널 프롬프트에서 확인할 수 있다.

이제 정상적으로 hostname 을 변경했으므로 sendmail 패키지를 재설치 한다.

$ sudo apt purge sendmail sendmail-bin
$ sudo apt autoremove
$ sudo apt install sendmail

터미널에서 메일 작업이 필요하다면 mailutils 패키지도 설치한다.

$ sudo apt install mailutils

이제 다음 한메일로 메일 발송을 테스트 해본다.

$ mail test@hanmail.net
Cc:
Subject: 메일테스트입니다.
테스트메일내용입니다. 내용 편집을 끝내려면 엔터후 ctrl + d 키를 누르면 됩니다.
[ctrl+d]

이제 다음 한메일로 가서 받은 메일함을 확인해보면 정상적으로 메일이 도착했을 것이다. ^^
(인코딩 문제로 제목이 깨질수는 있다.)

만약 이렇게 했는데도 메일이 오지 않는다면 가장 흔한 문제로 도메인 SPF 설정이 필요할 수 있다.