
執行 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
我假設當您刪除郵箱時,它會發送一條反彈訊息,表示該郵箱不存在。