个性化的“用户已离开公司”通知消息

个性化的“用户已离开公司”通知消息

运行 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 后端(它是从同一个配置文件复制粘贴的,ofcoz)。重点是设置“发件人”、“收件人”、“主题”和“文本”变量。自动回复传输将使用这些变量来撰写回复邮件。如果您需要通知发件人用户缺席,您可以删除查找,并且在大多数情况下您可以包含静态文本。同样,这个例子是关于休假邮件的,用户可以自定义他/她的消息。

请参阅有关自动回复驱动程序的此页面: http://wiki.exim.org/EximAutoReply

此外,进出口文件也很有用。

答案2

我认为当您删除邮箱时它会发送一个退回邮件,说该邮箱不存在。

相关内容