나는 이 문제를 해결하는이 답변을 시도했다 . 그러나 내가 가지고있는 버전 (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 >tempfilesendmail
-bh매개 변수와 함께 매개 변수를 사용하면 qpostcat이 메타 정보를 포함하지 않고 머리글과 본문에만 출력을 필터링합니다. 이것의 부작용은 임시 파일이 대부분의 전자 메일 클라이언트가 .eml 형식으로 인식하는 형식이므로 결과 (편집 된) 메시지를 볼 수 있다는 것입니다.
postcat -qbh queueid >tempfile. (측면의 이점 : 그때는 .eml 형식입니다.) 방금 사용한 경우-qsendmail을 실행할 때 아무것도하지 않는 것 같습니다. 접미사 버전 2.8.4. 누구든지 이것을 확인할 수 있습니까? 그렇다면이 답변을 편집하겠습니다.