Персонализированное уведомление «Пользователь покинул компанию»

Персонализированное уведомление «Пользователь покинул компанию»

Запустив exim4, я не могу понять, как отправить уведомление отправителю, если на определенный адрес приходит почта (адрес пользователя, который покинет компанию).

решение1

Вы можете использовать драйвер "автоответа" для отправки автоматических ответных сообщений. Обычно он используется для сообщений об отпуске, но, конечно, он способен отправлять обратно любые виды почты.

Грубо говоря, вам нужен маршрутизатор, который (в зависимости от некоторых условий) перенаправляет сообщение в транспорт с помощью драйвера автоответа. Маршрутизатор выглядит примерно так:

vacation_reply:
    driver=accept
    domains = +local_domains
    senders = ! ^.*-request@.*:\
            ! ^bounce-.*@.*:\
            ! ^.*-bounce@.*:\
            ! ^owner-.*@.*:\
            ! ^postmaster@.*:\
            ! ^webmaster@.*:\
            ! ^listmaster@.*:\
            ! ^mailer-daemon@.*:\
            ! ^root@.*:\
            ! ^noreply@.*

    condition=${lookup mysql {\
            select email from vacation where \
                 email='${quote_mysql$local_part}@${quote_mysql:$domain}'\
                 and active='y'\
            }}
    no_expn
    transport=vacation_transport
    unseen
    no_verify

Маршрутизатор выше — это фрагмент об отпуске, опять же, но у вас не должно возникнуть проблем с его переписыванием. Кроме того, он использует mysql в качестве бэкэнда, поэтому ваша конфигурация будет немного отличаться, если вы используете файлы, например, но вы поняли...

При наличии маршрутизатора вам понадобится транспорт (в этом примере он называется «vacation_transport»), который выглядит примерно так:

vacation_transport:
    driver=autoreply
    from= ${lookup mysql {\
            select concat('"',name,'" <',username,'>') \
            from mailbox where username='${local_part}@${domain}' AND active=1 \
    }}
    to= ${lookup mysql {\
            select '${quote_mysql:$sender_address}' \
            from vacation where email='${local_part}@${domain}' and active='y' \
    }}

    subject= ${lookup mysql {\
                    select subject from vacation \
                    where email='${local_part}@${domain}' and active='y' \
            }}

    text= ${lookup mysql {\
            select body from vacation \
            where email='${local_part}@${domain}' and active='y' \
    }}

Опять же, он использует бэкэнд mysql (конечно, это копипаст из того же файла конфигурации). Суть в том, чтобы задать переменные "from", "to", "subject" и "text". Транспорт автоответа будет использовать их для составления ответного письма. Если вам нужно уведомить отправителя об отсутствии пользователя, вы можете удалить подстановки, и в большинстве случаев вы можете включить статический текст. Опять же, этот пример касается писем об отпуске, где пользователь может настроить свое сообщение.

См. эту страницу о драйвере автоответчика: http://wiki.exim.org/EximAutoReply

Так жедокументация eximтоже полезно.

решение2

Я предполагаю, что когда вы удалите почтовый ящик, он пришлет ответ о том, что почтовый ящик не существует.

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