실제로 여러 다른 도메인을 지원하려는 경우 Instyle의 답변을 구현하기가 매우 어렵고 다음과 같은 이유로 잘못되었습니다.
a)의 예 transport_maps
에서 해당 도메인으로 전송 된 모든 이메일은 이메일이 반송 이메일인지 여부에 관계없이 해당 특정 서비스로 전송됩니다. 특정 도메인 이름을 사용하기 때문에 실제로는 반송 이메일이어야합니다. 그러나 그렇게 보장 할 수는 없습니다.
b) 스크립트로 전송 된 데이터는 바운스 메시지가 아니라 이메일 자체입니다. 다시 말해, 코드에서 이메일이 반송 된 이유를 모를 수도 있습니다 (예 : 로컬 반송이 원본 이메일 만 발송 함).
postfix에서 해당 설정을 수행하는 올바른 방법은 반송 알림 클래스를 사용하는 것입니다.
1) /etc/postfix/main.cf에서
notify_classes = bounce
bounce_notice_recipient = bounces@example.com
transport_maps = hash:/etc/postfix/transport_maps
2) / etc / postfix / transport_maps에서
# when you make changes to this file, run:
# sudo postmap /etc/postfix/transport_maps
bounces@example.com bulkbounce:
보시다시피, 이제 bounces@example.com
이메일이 반송 될 때마다 postfix에 사용하도록 지시합니다 . 그런 다음 전송 맵에서의 bulkbounce
모든 이메일 주소를 처리하는 서비스로 사용하십시오 bounces@example.com
.
마지막으로 bulkbounce
스크립트를 사용하여 정의 할 수 있습니다 .
3) /etc/postfix/master.cf에서
bulkbounce unix - n n - - pipe
flags=FRq user=bounce argv=/home/bounce/bin/snapbounce --sender ${sender} --recipient ${recipient}
이 스크립트에는 사용자가 있어야합니다. nobody
좋은 선택입니다. 특정 사용자를 원하면 다음을 사용하여 만들 수 있습니다.
useradd bounce
에 스크립트가 없으면 master.cf
이메일이 대량 반송 계정으로 전송됩니다. 따라서 파일에서 전자 메일을 구문 분석하는 스크립트가 있으면 transport_maps
및 master.cf
변경 없이 작동합니다 .
아래 의견에서 :
fyi-re : 이중 바운스 ... 반송
주소 (와 같은 VERP 주소)를 수정하는 경우 스크립트에서 바운스 를 구문 분석하는 데 관심이있는 경우, user+id@fromdomain.com
에 main.cf
대한 행을 주석 처리하려고합니다 .bounce_notice_recipient
+id
Message-Id
의 헤더에 자신의 주소 를 입력 할 수 있으면 다시 보내야합니다. 누가 누군지 확인하기에 충분합니다.