이번 글에서는 Sendmail을 구축한 서버로 메일을 전송하였을 때 전송이 실패하는 원인 중 하나에 대해 알아보려합니다.
오늘 알아볼 내용은 서버내에서 계정명에 대문자가 포함된 경우입니다.
기본적으로 제공되는 Sendmail은 계정의 대소문자를 구분하지 않고 무조건 소문자로 바꿔 버립니다.
그렇기 때문에 대문자가 포함된 계정으로 메일을 발송 시 전송이 실패가 됩니다.
이제 위 원인에 대하여 해결할 수 있는 방법을 알아보도록 하겠습니다.
(Sendmail을 미리 설치하였습니다.)
먼저 대문자가 포함된 계정을 생성합니다. (Jun)
그 다음 생성된 계정으로 메일을 보내보도록 하겠습니다.
위 처럼 내용 입력 후 보내봤습니다.
위 와 같이 메일 전송이 실패했다는 메일이 돌아옵니다.
메일 가운데 보시면 User unknown이라는 메세지가 있습니다.
서버내에서 오류 로그를 살펴보겠습니다.
# vi /var/log/maillog
maillog 상에서도 아래에서 2번째 줄에 User unknown이라는 메세지가 확인됩니다.
그리고 자세히 보면 jun이라는 계정을 알 수 없다라고 나오는데 처음에 설명드린 것과 같이
Sendmail은 계정의 대소문자를 구분하지 않고 무조건 소문자로 바꾸어 버리기 때문에 Jun이라는 대문자 포함된 계정으로 메일을 보내도 jun으로 인식하게됩니다.
이 문제에 대한 해결 방법은 매우 간단합니다. 문제 해결을 위해 sendmail.cf 설정파일을 열어 보겠습니다.
# vi /etc/mail/sendmail.cf
위 내용 중 F=lsDFMAw5 라고 되어있는 부분이 있습니다. 여기에 한 글자만 추가하면 대소문자 구별이 되게 설정됩니다.
F=lsDFMAw5u 라고 수정하고 sendmail restart를 한 뒤 다시 메일을 보내보도록 하겠습니다.
test 메일을 보내보았습니다. 그리고 서버에서 확인 결과 정상적으로 받아지는 점 확인하였습니다.
이상 여기까지 Sendmail에서 발생하는 오류 중 하나인 대문자 포함 계정에 대한 메일 발송 오류에 대하여 알아보았습니다.