Postfix를 사용하여 특정 도메인 (로컬이 아닌)으로 메일 배달을 일시적으로 중지하려면 어떻게합니까?


13

Postfix 및 사용자 지정 전송 사용 수신자의 도메인에 따라 전송 속도를 관리 할 수 ​​있습니다. (예를 들어, *@hotmail.com에 초당 최대 하나의 메시지를 보냅니다)

또한 유사한 규칙을 사용하여 잘못된 대상을 차단합니다 (htmail.com은 즉시 차단되어 대기열에서 많은 루프를 피함).

그러나 24 시간 또는 48 시간 동안 대상으로의 메일 배달을 일시적으로 중단하고 싶습니다 (*@gmail.com으로 보내는 메일은 일시 중지되었으며 다른 모든 메일은 전달됨). 이 시간 동안 메시지가 대기열에 들어가고 구성을 변경하여 원하는 경우에만 배달됩니다.

누구나 그 방법을 알고 있습니까?

감사

답변:


20

메시지를 보류 상태로 설정

/etc/postfix/main.cf :

smtpd_recipient_restrictions = 
    ...
    check_recipient_access hash:/etc/postfix/hold

/ etc / postfix / hold :

gmail.com        HOLD
blah.com         HOLD

postmap hash:/etc/postfix/hold파일을 업데이트 할 때마다 실행해야 합니다.

보류중인 모든 메시지를 해제하려면 postsuper를 사용하십시오 .

# postsuper -H ALL

결국 작동하지 않는 것 같습니다. 메일이 즉시 제출됩니다. 어쩌면 내가 $ mynetworks에서 메일을 보내기 때문에? 거부와 취소도 작동하지 않습니다. 운송 오류가 발생했습니다.
Julien Tartarin

좋아, 나의 mailx와 함께 로컬로 보낸 메일은 smtpd로 보내지지 않았기 때문에 확인되지 않았다. 잘 작동합니다 :)
Julien Tartarin


0

특정 도메인을 보류하려면 :

postqueue -p | awk 'BEGIN { RS = "" } { if ($7 == "your@domain.com" ) print $1 }' | tr -d '!*' | postsuper -h -

특정 도메인에 대해 릴리스하려면

postqueue -p | awk 'BEGIN { RS = "" } { if ($7 == "your@domain.com" ) print $1 }' | tr -d '!*' | postsuper -H -

그냥 싫다. $ 7은 대기열 ID와 같은 줄에있는 발신자 이메일 주소와 일치합니다. 받는 사람 전자 메일 주소는 다음 줄에 있으며 전자 메일 일치가 아닌 도메인 일치가 필요합니다.
Antti Rytsölä
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.