Postfix: отклонять входящие письма, но все равно доставлять их

Postfix: отклонять входящие письма, но все равно доставлять их

Я использую свой собственный почтовый сервер, но некий человек присылает мне «спам». Чтобы попытаться отговорить этого человека от отправки мне писем, я хотел бы отклонить входящее письмо (на основе его адреса электронной почты). Но я все равно хочу, чтобы письмо было доставлено, поскольку оно может служить «доказательством» онлайн-преследования.

Моя идея заключалась в том, чтобы отправлять входящие письма на два аккаунта (в virt-user-table). Один из них принимает письма, а другой возвращает их, отправляя обратно сообщение о том, что доставка не удалась.

Можно ли это сделать? И как мне это настроить в Postfix?

Заранее спасибо.

решение1

По сути, вы не хотите, чтобы почта возвращалась сюда, но для некоторых отправителей ваш сервер все равно должен генерировать дополнительное сообщение.

Вы можете написать скрипт, который может создать сообщение, котороевыглядит каквозврат (например, создание «поддельного возврата») и организовать все так, чтобы сообщения от этого отправителя запускали этот сценарий,кроме тогок нормальной доставке.

Один из способов сделать это — установитьalways_bccк некоторому псевдониму, и целью этого псевдонима должен быть путь к скриптус префиксом в виде трубы, поэтому скрипт будет запущен и снабжен сообщением для анализа. Сообщение появится на stdin. Затем скрипт может проанализировать сообщение, проверить адрес отправителя и либо успешно завершиться, ничего не делая, либо создать поддельный возврат. Поскольку это всего лишь дополнительный получатель сообщения, он не изменит стандартный путь получения почты; почта все равно будет доставлена ​​тому, кому она изначально предназначалась. Но убедитесь, что скриптвсегдасуществует успешно (например, никогда не завершается сбоем с любым ненулевым кодом ошибки), в противном случае отправительволяесть реальный отскок, довольно загадочный.

В /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

Обратите внимание, что я не тестировал этот код и он может не сработать сразу. Вы можете найти другие примеры в Интернете.

Связанный контент