Postfix 설정 · 5 min read · Sep 26, 2025

사용자 정의 Postfix 반송 메시지 구성 방법

Postfix 버전 2.3부터 Postfix는 사용자 정의 반송 메시지를 지원합니다. 이 가이드는 사용자 정의 Postfix 반송 메시지와 최대 대기 시간 설정 방법을 보여줍니다.

1 Postfix 버전

먼저 Postfix 버전을 확인하여 사용자 정의 반송 메시지를 지원하는지 확인해야 합니다:

postconf -d | grep mail_version
server2:~# postconf -d | grep mail_version  
mail_version = 3.4.13  
milter_macro_v = $mail_name $mail_version  
server2:~#

Postfix가 2.3 이상이면 준비가 완료된 것입니다.

2 maximal_queue_lifetime 및 delay_warning_time 설정

http://www.postfix.org/postconf.5.html에서:

maximal_queue_lifetime: 메시지가 배달 불가능으로 반송되기 전에 대기하는 최대 시간입니다.

delay_warning_time: 발신자가 여전히 대기 중인 메일의 메시지 헤더를 받는 시간입니다.

postconf -n 명령은 /etc/postfix/main.cf에 현재 구성된 설정을 보여주고, postconf -d 명령은 /etc/postfix/main.cf에 다른 설정이 없을 경우 유효한 기본 설정을 보여줍니다.

현재 maximal_queue_lifetime의 값을 확인하려면 다음을 실행할 수 있습니다:

postconf -d | grep maximal_queue_lifetime  
postconf -n | grep maximal_queue_lifetime

postconf -n이 아무것도 표시하지 않으면, 이는 postconf -d의 값이 현재 사용되고 있음을 의미합니다:

server2:~# postconf -d | grep maximal_queue_lifetime  
maximal_queue_lifetime = 5d  
server2:~# postconf -n | grep maximal_queue_lifetime  
server2:~#

delay_warning_time에 대해서도 동일하게 적용됩니다:

postconf -d | grep delay_warning_time  
postconf -n | grep delay_warning_time
server2:~# postconf -d | grep delay_warning_time  
delay_warning_time = 0h  
server2:~# postconf -n | grep delay_warning_time  
server2:~#

이 설정을 수정하려면 postconf -e 명령을 사용할 수 있습니다. 이 명령은 설정을 /etc/postfix/main.cf에 기록합니다. 예를 들어:

postconf -e 'maximal_queue_lifetime = 1d'  
postconf -e 'delay_warning_time = 0h'

그 후 Postfix를 재시작합니다:

service postfix restart

이 두 설정이 중요한 이유는 그 값이 사용자 정의 반송 메시지에서 사용될 수 있기 때문입니다.

3 사용자 정의 반송 메시지 만들기

http://www.postfix.org/bounce.5.html에서:

템플릿 파일은 실패한 메일, 지연된 메일, 성공적인 배달 또는 주소 확인을 위한 템플릿을 지정할 수 있습니다. 이러한 템플릿은 각각 failure_template, delay_template, success_template 및 verify_template로 명명됩니다. 모든 네 개의 템플릿을 반송 템플릿 파일에 지정할 필요는 없습니다.

각 템플릿은 “template_name = <

이제 /etc/postfix/bounce.cf 파일을 생성하여 다음과 같이 템플릿을 포함할 수 있습니다(여기서는 네 개의 템플릿을 모두 사용하지만 필요 없는 것은 생략할 수 있습니다). 파일은 반드시 빈 줄로 끝나야 합니다!

nano /etc/postfix/bounce.cf
#
# 메일이 발신자에게 반송될 때 사용되는 실패 템플릿;
# 목적지가 메시지를 거부했거나, 메시지가 대기열에서 만료되기 전에 목적지에 도달할 수 없었습니다.
#

failure_template = <

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

                   The mail system
EOF


#
# 메일이 지연될 때 사용되는 지연 템플릿. 주의할 점:
# 기본 템플릿은 delay_warning_time 값을 시간 단위로 표시하며,
# _hours 접미사를 매개변수 이름에 추가하여 표시합니다; maximal_queue_lifetime 값을
# 일 단위로 표시하며, _days 접미사를 추가합니다.
#
# 다른 접미사는: _seconds, _minutes, _weeks. 이 특별한 동작을 가진
# main.cf 매개변수는 없습니다.
#
# 이러한 시간 매개변수에 대해 매우 다른 설정이 있는 경우
# 이러한 접미사(및 주변 텍스트)를 조정해야 합니다.
#

delay_template = <

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

                   The mail system
EOF


#
# 메일이 사서함에 배달되었을 때, 별칭이나 목록이 확장되었을 때,
# 또는 DSN 지원을 발표하지 않는 시스템에 배달되었을 때 사용되는 성공 템플릿입니다.
# 여기서 Postmaster-Subject:를 지정하는 것은 오류입니다.
#

success_template = <

메시지를 원하는 대로 사용자 정의할 수 있습니다. 메시지에서는 모든 main.cf 변수를 사용할 수 있습니다(예: $myhostname). delay_template를 살펴보면 추가 변수 $delay_warning_time_hours 및 $maximal_queue_lifetime_days를 사용하고 있음을 알 수 있습니다. $delay_warning_time_seconds, $delay_warning_time_minutes, $delay_warning_time_days, $delay_warning_time_weeks 또는 $maximal_queue_lifetime_seconds, $maximal_queue_lifetime_minutes, $maximal_queue_lifetime_hours, $maximal_queue_lifetime_weeks를 사용할 수도 있지만, http://www.postfix.org/bounce.5.html에서 이러한 변수에 대해 설명하는 내용을 염두에 두어야 합니다:

delay_warning_time_suffix: delay_warning_time 매개변수의 값을 접미사로 지정된 시간 단위로 확장합니다. 접미사는 초, 분, 시간, 일 또는 주 중 하나입니다.

maximal_queue_lifetime_suffix: maximal_queue_lifetime 매개변수의 값을 접미사로 지정된 시간 단위로 확장합니다. delay_warning_time 아래에서 가능한 접미사 값을 참조하십시오.

따라서 템플릿에서 $delay_warning_time_minutes 변수를 사용하고자 한다면, “hours” 대신 “minutes”라는 단어를 따라야 합니다.

다음으로 Postfix가 사용자 정의 템플릿을 사용하도록 설정합니다:

postconf -e 'bounce_template_file = /etc/postfix/bounce.cf'

모든 변수가 실제 값으로 대체되었을 때 템플릿이 어떻게 보이는지 확인하고, 템플릿에 오류가 없는지(예: /etc/postfix/bounce.cf의 끝에 줄 바꿈이 누락됨) 확인하려면 다음을 실행합니다:

postconf -b /etc/postfix/bounce.cf
server2:~# postconf -b /etc/postfix/bounce.cf  
expanded_failure_text = <  

If you do so, please include this problem report. You can  
delete your own text from the attached returned message.  

                   The mail system  
EOF  

expanded_delay_text = <  

If you do so, please include this problem report. You can  
delete your own text from the attached returned message.  

                   The mail system  
EOF  

expanded_success_text = <

오류가 표시되지 않으면, 사용자 정의 템플릿을 사용할 수 있도록 Postfix를 재시작합니다:

service postfix restart

4 링크

Share: X/Twitter LinkedIn

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

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