您可以使用“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
Run Code Online (Sandbox Code Playgroud)
上面的路由器再次是关于假期的片段,但是重写它应该没有问题。此外,它使用 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' \
}}
Run Code Online (Sandbox Code Playgroud)
同样,它使用的是 mysql 后端(它是从同一个配置文件 ofcoz 复制粘贴的)。重点是设置“from”、“to”、“subject”和“text”变量。自动回复传输将使用这些来撰写回复邮件。如果您需要通知发件人有关用户不在的信息,您可以删除查找,并且在大多数情况下您可以包含静态文本。同样,这个例子是关于假期邮件的,用户可以自定义他/她的消息。
请参阅有关自动回复驱动程序的页面:http ://wiki.exim.org/EximAutoReply
此外,exim 文档也很有用。