SW개발/우분투 리눅스

주소를 찾을 수 없음. 도메인을 찾지 못하여 메일을 전송하지 못했습니다. 오타나 불필요한 공백이 있는지 확인한 후 다시 시도하세요.

공무원 봉급 2022. 6. 2. 11:07

 

ssmtp를 이용해서 자동으로 메일을 전송하는 서비스를 구성하였습니다. 총 3개의 서버에서는 해당 서비스가 잘 동작하는데, 유독 한 서버에서만 아래와 같은 이메일이 전송되고 있습니다.

주소를 찾을 수 없음
rpiseongju 도메인을 찾지 못하여 user@rpiseongju 주소로 메일을 전송하지 못했습니다. 오타나 불필요한 공백이 있는지 확인한 후 다시 시도하세요.

본 페이지에서는 이와 같은 에러 메시지가 메일로 수신될 때 이를 해결하는 방법에 대해서 설명드리고자 합니다.

 

문제의 상황

시골집에 라즈베리파이를 설치했습니다. 이 라즈베리파이에는 Ubuntu 리눅스가 설치되어 있는데, 1시간에 한 번씩 공인 IP를 확인해서 IP가 변경되면 이메일을 통해서 변경된 IP를 알려주는 서비스가 구성되어 있습니다. 시골집에서 사용하는 IP가 혹시나 변경될까봐 이런 서비스를 구성해두었는데, 아직까지 한 번도 IP가 변경된 적은 없네요.

변경된 IP 정보가 메일로 수신되어야 하는데, "도메인을 찾지 못해서 메일을 전송하지 못했습니다."라는 메시지가 지속적으로 발생을 했습니다.

 

문제 분석

ssmtp로 메일을 전송하는 기능이 제대로 구현되지 않아서 발생하는 문제로 추정이 됩니다. 아래의 명령으로 ssmtp 설정 파일을 살펴봅니다.

$ sudo vi /etc/ssmtp/ssmtp.conf

 

설정 파일을 살펴보다보니까 mailhub 설정은 올바른데 hostname 설정이 주석처리되어 있어서 발생한 문제였습니다.

#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=esregnet0409@gmail.com

# The place where the mail goes. The actual machine name is required no 
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=smtp.gmail.com:587

# Where will the mail seem to come from?
#rewriteDomain=

# The full hostname
#hostname=smtp.gmail.com:587

(이하 생략)

 

위의 설정을 보면 보내는 메일 설정은 gmail로 해두었으면서, hostname 설정이 없었습니다. hostname 설정이 없으면 메일을 보낼때 당연히 local host로 취급을 하겠지요.

왜 hostname을 주석 처리해놨는지 모르겠습니다. 주석을 삭제하여 hostname 설정을 아래와 같이 변경해줍니다.

기존 #
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=esregnet0409@gmail.com

# The place where the mail goes. The actual machine name is required no 
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=smtp.gmail.com:587

# Where will the mail seem to come from?
#rewriteDomain=

# The full hostname
#hostname=smtp.gmail.com:587

(이하 생략)
변경 #
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=esregnet0409@gmail.com

# The place where the mail goes. The actual machine name is required no 
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=smtp.gmail.com:587

# Where will the mail seem to come from?
#rewriteDomain=

# The full hostname
hostname=smtp.gmail.com:587

(이하 생략)

만약 gmail을 통해서 ssmtp 설정을 하셨다면 설정값을 다시 한번 확인해보시기 바랍니다.

 

ssmtp 보내는 메일 설정 방법

우분투 리눅스에서 ssmtp로 이메일을 전송할 수 있도록 설정하는 방법은 아래의 기사를 참조하시기 바랍니다.

 

Ubuntu Linux에서 ssmtp로 이메일 전송하는 초간단 방법 (이메일 전송 자동화)

ssmtp 패키지를 이용하여 이메일을 전송하는 방법에 대해서 설명합니다.

boyinblue.github.io

 

이상입니다.