パーソナライズされた「ユーザーが退職しました」通知メッセージ

パーソナライズされた「ユーザーが退職しました」通知メッセージ

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

メールボックスを削除すると、メールボックスが存在しないという内容の返信メールが送信されると思います。

関連情報