
나는 내 자신의 메일 서버를 운영하지만 특정 개인으로부터 "스팸"을 받고 있습니다. 이 사람이 나에게 더 이상 이메일을 보내지 못하도록 하기 위해 수신 이메일을 (그 사람의 이메일 주소를 기준으로) 반송하고 싶습니다. 하지만 온라인 괴롭힘에 대한 "증거"가 될 수 있기 때문에 이메일이 전달되기를 원합니다.
내 생각은 수신 이메일을 두 개의 계정(virt-user-table에 있음)으로 보내도록 하는 것이었습니다. 하나는 이메일을 수락하고, 다른 하나는 전달이 실패한 이메일을 다시 보내 반송합니다.
이것이 가능합니까? 그리고 Postfix에서 이것을 어떻게 설정합니까?
미리 감사드립니다.
답변1
기본적으로 여기에서 메일이 반송되는 것을 원하지 않지만 일부 발신자의 경우 서버가 여전히 추가 메시지를 생성해야 합니다.
다음과 같은 메시지를 작성할 수 있는 스크립트를 작성할 수 있습니다.처럼 보인다반송(예: "가짜 반송" 생성) 및 이 보낸 사람의 메시지가 이 스크립트를 트리거하도록 작업을 조정합니다.게다가일반배송으로.
이를 수행하는 한 가지 방법은always_bcc
일부 별칭으로 변경하고 해당 별칭의 대상은 스크립트 경로여야 합니다.파이프 앞에 붙은, 스크립트가 실행되고 구문 분석할 메시지가 제공됩니다. 메시지는 stdin에 나타납니다. 그런 다음 스크립트는 메시지를 구문 분석하고 보낸 사람 주소를 확인한 다음 아무것도 하지 않고 성공적으로 종료하거나 가짜 반송을 생성할 수 있습니다. 이는 단지 메시지의 추가 수신자이므로 표준 메일 수신 경로는 변경되지 않습니다. 메일은 원래 목적지였던 사람에게 여전히 배달됩니다. 하지만 스크립트를 확인하세요.언제나성공적으로 존재합니다(예: 0이 아닌 오류 코드로 인해 절대 실패하지 않음). 그렇지 않으면 보낸 사람~ 할 것이다실제 바운스가 있고 매우 비밀스러운 바운스가 있습니다.
추가 로 /etc/aliases
:
bcc_script: |/usr/local/bin/bcc_script.py
(이 파일을 편집한 후 실행하는 것을 잊지 마세요 newaliases
).
추가 로 /etc/postfix/main.cf
:
always_bcc = bcc_script
다음 /usr/local/bin/bcc_script.py
과 비슷하게 시작됩니다.
#!/bin/env python3
import sys, email
try:
msg = email.message_from_bytes(sys.stdin.read())
if msg['From'] != '[email protected]':
sys.exit(0)
# creating of the fake bounce here
...
except Exception:
pass
# do nothing, fail silently to avoid bounces if the code above throws runtime error
이 코드는 테스트하지 않았으므로 바로 작동하지 않을 수도 있습니다. 인터넷에서 다른 예를 찾을 수 있습니다.