
Eu administro meu próprio servidor de e-mail, mas estou recebendo "spam" de um determinado indivíduo. Para tentar desencorajar essa pessoa de me enviar mais e-mails, gostaria de devolver o e-mail recebido (com base no endereço de e-mail dele). Mas ainda quero que o e-mail seja entregue porque pode servir como “evidência” de assédio online.
Meu pensamento era enviar o e-mail recebido para duas contas (na tabela virt-user). Um que aceita o e-mail, o outro que o devolve enviando um e-mail informando que a entrega falhou.
Isso pode ser feito? E como eu faria para configurar isso no Postfix?
Agradeço antecipadamente.
Responder1
Basicamente você não quer que as mensagens sejam devolvidas aqui, mas para alguns remetentes seu servidor ainda deve gerar mensagens adicionais.
Você pode escrever um script que possa construir uma mensagem quepareceuma devolução (por exemplo, criar uma "rejeição falsa") e organizar as coisas para que as mensagens deste remetente acionem esse script,além dissoao parto normal.
Uma maneira de fazer isso é definiralways_bcc
para algum alias, e o destino desse alias deve ser o caminho do scriptprefixado com o tubo, então o script será executado e alimentado com a mensagem a ser analisada. A mensagem aparecerá em stdin. O script poderia então analisar a mensagem, verificar o endereço do remetente e sair sem fazer nada ou criar uma devolução falsa. Como este é apenas um receptor adicional da mensagem, não alterará o caminho padrão de recepção de correio; a correspondência ainda será entregue a quem foi originalmente destinada. Mas certifique-se de que o scriptsempreexiste com sucesso (por exemplo, nunca falha com qualquer código de erro diferente de zero), caso contrário, o remetentevaitem um salto real, bastante enigmático.
Além /etc/aliases
disso:
bcc_script: |/usr/local/bin/bcc_script.py
(não esqueça de executar newaliases
após editar este arquivo).
Além /etc/postfix/main.cf
disso:
always_bcc = bcc_script
O /usr/local/bin/bcc_script.py
início será semelhante a este:
#!/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
Observe que não testei esse código e pode não funcionar imediatamente. Você pode encontrar outros exemplos na Internet.