Postfix로 서버에서 발송되는 메일을 리다이렉트하기

서비스나 웹사이트를 테스트를 하다보면 사용자에게 메일이 발송되는지 확인해야 하는 경우가 있다. 또한 실제로 운영되는 서비스를 테스트 환경에 놓고 테스트 하다가 메일이 사용자에게 발송되어 버리는 경우가 생길 수 있다. 물론 sendmail을 꺼두는 것도 방법이긴 하지만… Postfix를 사용하고 있다면 서버에서 발송되는 모든 메일을 하나의 메일 주소로 수신하게 설정할 수 있다. (Postfix가 서버에 없다면 설치하자.)

먼저 /etc/postfix/recipient_canonical_map 파일을 다음과 같이 작성한다.

/./    dev@haruair.com

이 맵핑 파일에서 앞부분은 정규표현식이며 수신자가 정규표현식에 해당하면 뒷부분의 이메일로 리다이렉트 하도록 처리해준다. 정규표현식으로 여러 조건을 만들어 여러 이메일로 리다이렉트 할 수도 있다. 해당 파일을 저장하고 나서 /etc/postfix/main.cf를 열어 맵핑한 파일을 참조하도록 다음 설정을 추가한다.

recipient_canonical_classes = envelope_recipient
recipient_canonical_maps = regexp:/etc/postfix/recipient_canonical_map

위 설정에서 recipient_canonical_classes는 기본값이 envelope_recipient, header_recipient인데 header_recipient는 수신자를 해당 리다이렉트 되는 이메일로 치환해버리기 때문에 확인하는데 불편함이 있어서 위와 같이 envelope_recipient만 설정한다. 두번째는 보는 것과 같이 맵파일의 경로를 설정해준다.

수정을 완료하고 저장한 후 postfix 설정을 다시 불러오면 모든 과정이 끝난다.

$ postfix reload

postfix 설정에 관한 자세한 내용은 postfix 문서에서 확인할 수 있다.

참고로 Windows에서는 Papercut을 켜두면 해당 서버에서 발송되는 메일이 실제로는 발송되지 않고 모두 로컬에 저장되어 그 내용을 확인할 수 있다.

김용균

안녕하세요, 김용균입니다. 문제를 해결하기 위해 작고 단단한 코드를 작성하는 일을 합니다. 웹의 자유로운 접근성을 좋아합니다. 프로그래밍 언어, 소프트웨어 아키텍처, 커뮤니티에 관심이 많습니다.

이 글 공유하기

이 글이 유익했다면 주변에도 알려주세요!

페이스북으로 공유하기트위터로 공유하기링크드인으로 공유하기Email 보내기

주제별 목록

같은 주제의 다른 글을 읽어보고 싶다면 아래 링크를 확인하세요.

July 31, 2014

Mono 환경에서 OWIN 시작하기

OWIN은 Open Web Interface for .NET의 약어로 요즘 MS 진영에서 핫한(?) 오픈소스 프로젝트다. 다음은 OWIN 공식 사이트에 나와 있는 프로젝트의 목표. The goal of the OWIN interface is to d…

July 15, 2014

MAMP에서 Sublime Text로 Xdebug 사용하기

PHP를 디버깅하기 위해서는 Xdebug와 같은 확장을 서버에 설정해야 하고 리모트로 디버깅 하기 위한 클라이언트 프로그램이 요구된다. 이 글에서는 서버로 MAMP를 활용하며 클라이언트로 Sublime text를 활용한다. Xdebug 활성화하기 M…