메일 구성 · 2 min read · Dec 25, 2025

SendMail을 스마트 호스트로 구성하고 발신자 주소를 재작성하는 방법

SendMail을 스마트 호스트로 구성하고 발신자 주소를 재작성하는 방법

이 튜토리얼은 로컬호스트에서 생성된 모든 메일을 원격 수신자에게 보내기 위해 다른 SMTP 서버로 전달하도록 sendmail 서버를 구성하는 방법을 설명합니다. 또한 [email protected]의 발신자 주소를 [email protected]로 재작성하는 방법도 설명합니다.

예시 시나리오: 외부로 메일을 릴레이하도록 구성되지 않은 프로덕션 서버가 있습니다. 그러나 해당 서버에서 상태 및 서비스 실패 시 주어진 이메일 주소로 로그를 보내는 애플리케이션이 실행되고 있습니다. sendmail은 localhost.localdomain 이름에서 로컬로 실행되므로 [email protected]의 메일을 원격 smtp 서버로 전달하려고 시도하지만, localhost.localdomain이 유효하지 않은 IP로 확인되기 때문에 거부됩니다. 따라서 이를 극복하기 위해 [email protected]의 발신자 주소를 [email protected]로 재작성해야 합니다. 이렇게 하면 다른 smtp 서버가 [email protected]에서 [email protected] 또는 서비스 상태 메일을 보내고자 하는 다른 주소로 메일을 릴레이합니다.

참고: 이 튜토리얼의 특정 부분은 Redhat 기반 시스템에만 적용되지만, 일반적으로 절차는 모든 sendmail 서버에 적용됩니다.

스마트 호스트 IP : 10.1.1.50
SMTP 호스트 IP : 10.1.1.10

설치된 RPM 확인:

먼저 Sendmail rpm이 설치되어 있어야 합니다. 기본적으로 Sendmail은 시스템 설치와 함께 설치됩니다.

설치된 sendmail rpm을 확인합니다:

root@nerdplanet# rpm -q sendmail sendmail-cf

이 두 패키지는 설치된 것으로 나열되어야 합니다:

sendmail-8.xx
sendmail-cf-8.xx

설치되어 있지 않다면 설치합니다.

RPM 설치

root@nerdplanet# yum install sendmail sendmail-cf

이것은 당신의 리눅스 시스템에 설치될 것입니다.

설치가 완료되면 서버가 시작되고 재부팅 시 자동으로 시작되도록 해야 합니다.

root@nerdplanet# chkconfig sendmail on 
root@nerdplanet# service sendmail start

이제 서버가 실행 중입니다.

먼저 원격 서버의 IP 주소와 도메인 이름을 /etc/hosts에 추가합니다.

vi /etc/hosts
10.1.1.10    smtp.example.com

로컬 DNS가 메일을 릴레이하도록 구성된 SMTP 서버의 IP 주소로 도메인 이름을 확인할 수 있다면 위 단계를 수행할 필요는 없습니다.

메일 전달을 위한 Sendmail 구성 파일 편집

vi /etc/mail/sendmail.mc

스마트 호스트로 메일 전달

dnl # define(`SMART_HOST',`smtp.example.net') 

위 항목이 포함된 줄을 찾아서 SMTP 서버 주소로 교체합니다.

define(`SMART_HOST',`smtp.example.com')

그런 다음 파일을 저장합니다.

발신자 주소 재작성을 위한 genericstable 파일 생성

vi /etc/mail/genericstable

Generics 테이블 파일에 다음 줄을 입력합니다:

root    [email protected]
mohan   [email protected]

위의 줄은 root가 보낸 메일이 [email protected] 대신 [email protected]에서 온 것처럼 가장되며, 사용자 mohan이 보낸 메일은 [email protected] 대신 [email protected]에서 온 것처럼 보이게 됩니다.

그런 다음 파일을 저장합니다.

Sendmail 구성 파일에서 기능 활성화

vi /etc/mail/sendmail.mc

기능을 활성화하기 위해 다음 줄을 추가합니다:

FEATURE(masquerade_envelope)dnl
FEATURE(`genericstable')dnl
GENERICS_DOMAIN(`localhost.localdomain')dnl

그런 다음 실행합니다:

make -C /etc/mail

이것은 /etc/mail 디렉토리 아래의 모든 파일을 컴파일하고 변경 사항을 업데이트합니다.

그 후 sendmail 서비스를 재시작합니다.

root@nerdplanet# service sendmail restart

그게 다입니다. 이제 sendmail이 스마트 호스트로 작동하도록 구성되었습니다.

스마트 호스트에서 메일을 수신하도록 SMTP 서버 구성:


참고: 이 절차는 원격 라이브 SMTP 서버가 sendmail 서버인 경우에만 적용됩니다. 이 시나리오에서는 사실입니다. 다른 SMTP 서버에 대해서는 해당 문서를 참조하십시오.

전제: 라이브 SMTP 서버는 이미 FEATURE (‘access_db’를 사용하고 있습니다..

스마트 호스트에서 메일을 수신하도록 라이브 SMTP 서버의 access 파일을 편집합니다.

vi /etc/mail/access
connect:10.1.1.50    RELAY
cd /etc/mail

Access 데이터베이스 파일을 재구성합니다.

/usr/sbin/makemap hash access < access

sendmail 서비스를 재시작합니다.

root@smtp# service sendmail restart

그게 다입니다. 원격 smtp 서버는 스마트 호스트에서 메일을 수신합니다.

이 튜토리얼이 누군가에게 유용하길 바랍니다. 댓글을 남겨주세요.

원본 링크: 이 튜토리얼은 http://www.nerdplanet.co.uk에서도 이용할 수 있습니다.

감사합니다!

모한.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.