나는 이 문제를 해결하는이 답변을 시도했다 . 그러나 내가 가지고있는 버전 (2.11.0)에서는 메시지를 쉽게 수정할 수없는 것 같습니다.
예를 들어 / var / spool / mqueue 디렉토리는 없지만 대신 / var / spool / postfix / ...가 있습니다.
두 가지를 명확히하고 싶습니다.
- 첫째,이 답변은 sendmail NOT postfix에 적용되었습니다.
- 둘째, 직접 조작 -raw-queue 파일은 전혀 지원되지 않았습니다.
여기 몇 가지 옵션이 있습니다
1. smtp_generic_maps 매개 변수
이 답변은이 훌륭한 답변에서 영감을 얻었습니다 . 이전 주소를 새 주소로 자동으로 다시 작성합니다. 이전 주소를 새 주소로 매핑 할 파일을 정의 할 수 있습니다.
/etc/postfix/main.cf:
smtp_generic_maps = hash:/etc/postfix/generic
/etc/postfix/generic:
account@localdomain.example.com account@example.com
잊지 마세요 postmap /etc/postfix/generic
및 실행postfix reload
- 거꾸로 : 당신은 메시지를 다시 큐에 넣을 필요가 없습니다
- 단점 : Postfix는 해당 발신자와 수신자 주소를 다시 작성합니다
account@localdomain.example.com
.
2. sender_canonical_address
첫 번째 옵션의 단점을 극복하기 위해을 사용할 수 있습니다 sender_canonical_maps
. 이 솔루션은 Postfix 작성자 제안을 기반으로 합니다 . 첫 번째 옵션과 동일하게 파일을 정의하여 이전 주소를 새 주소에 매핑 할 수 있습니다.
/etc/postfix/main.cf:
sender_canonical_maps = hash:/etc/postfix/sender_canonical
/etc/postfix/sender_canonical:
account@localdomain.example.com account@example.com
실행 postmap /etc/postfix/sender_canonical
한 다음 실행하십시오 postfix reload
. postfix 대기열의 흐름으로 인해 명령을 사용하여 영향을받는 대기열을 다시 큐에 넣어야합니다.postsuper -r queueid
- 거꾸로 : Postfix가 수신자 주소를 다시 쓰지 않습니다.
- 단점 : 영향을받는 모든 메시지를 다시 큐에 넣어야합니다. 그러나 하나의 명령으로 연기 된 모든 것을 다시 큐에 넣을 수 있습니다
postsuper -r ALL deferred
3. postfix queue의 직접 조작
이것은 고급 처리를 위해 큐를 수정하는 수동 이전 방법입니다. 이 답변은 postfix-users 메일 링리스트 에서 나왔습니다.
한마디로
위의 명령에 대한 설명서는 이 페이지를 참조하십시오
참고 : postfix-users 메일 링리스트의
원래 솔루션은 대기열을 추출 하는 데 사용 합니다. 이 명령은 대기열의 헤더, 본문 및 메타 정보를 추출합니다. 아래 뾰족한 Azendale으로 , 때문에 메타 정보의 잘못된 이메일을 보내 거부합니다.postcat -q queueid >tempfile
sendmail
-bh
매개 변수와 함께 매개 변수를 사용하면 q
postcat이 메타 정보를 포함하지 않고 머리글과 본문에만 출력을 필터링합니다. 이것의 부작용은 임시 파일이 대부분의 전자 메일 클라이언트가 .eml 형식으로 인식하는 형식이므로 결과 (편집 된) 메시지를 볼 수 있다는 것입니다.
postcat -qbh queueid >tempfile
. (측면의 이점 : 그때는 .eml 형식입니다.) 방금 사용한 경우-q
sendmail을 실행할 때 아무것도하지 않는 것 같습니다. 접미사 버전 2.8.4. 누구든지 이것을 확인할 수 있습니까? 그렇다면이 답변을 편집하겠습니다.