個性化的「用戶已離開公司」通知訊息

個性化的「用戶已離開公司」通知訊息

執行 exim4,如果某個地址收到郵件(將離開公司的用戶的地址),我無法弄清楚如何向寄件者發送通知訊息。

答案1

您可以使用“autoreply”驅動程式發送自動回覆訊息。它通常用於發送假期訊息,但它當然也能夠發回任何類型的郵件。

粗略地說,您需要的是一個路由器,它(取決於某些條件)使用自動回覆驅動程式將訊息重新導向到傳輸。路由器是這樣的:

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 後端(它是來自同一設定檔 ofcoz 的複製貼上)。重點是設定“from”、“to”、“subject”和“text”變數。自動回覆傳輸將使用這些來撰寫回覆郵件。如果您需要通知寄件者使用者缺席,您可以刪除查找,並且在大多數情況下您可以包含靜態文字。同樣,這個例子是關於假期郵件的,用戶可以自訂他/她的消息。

有關自動回覆驅動程式的信息,請參閱此頁面: http://wiki.exim.org/EximAutoReply

另外,進出口文件也很有用。

答案2

我假設當您刪除郵箱時,它會發送一條反彈訊息,表示該郵箱不存在。

相關內容