Notes/Domino Mail転送設定での注意点 -1- | Lotus Notes/Domino (R) をこよなく愛して。。。。

Notes/Domino Mail転送設定での注意点 -1-

皆さんの会社でも、Notes/Dominoの機能を活用してMailを自動的に転送するような設定を行われている場合もあることと思います。


Mailの転送設定は、Notes/Dominoの標準ではDomino DirectoryのPerson文書の転送先Addressに転送先のMail Addressを設定する方法と、Mail Ruleで設定する方法があります。


また、全く別に皆さんの会社で転送Agentを作成されて運用されている場合もあるのではないでしょうか?


Notes/Dominoの基本機能で行った場合は、


1.Domino Directoryの転送Addressの設定


Mail_Forwarding_1


2.Mail Ruleでの転送先の設定


Mail_Forwarding_2


という二つの方法があるわけですが、これらは少し動きが異なります。


Domino Directoryで転送設定を行った場合は、受信者(User)のMail DBにはMailは残ることなく、Mailが指定されたAddressに転送されます。


これはRouterが($Users) ViewのMailAddress(転送先)を参照して、RouterがUserのMail DBにMailが配信される前に処理をするからです。


Securityの観点では好ましくないですが、ちょっとした外出などで携帯に転送するような場合、本来のMail DBにもMailは残しておきたいというような場合に、この方法を使うと、MailはDBに残らなくなりますので注意が必要です。


もう一つの方法は、Mail Ruleで転送を行うことですが、この際は「Copyを送信」という形態をとります。


Mail RuleもMail受信前のAgentと同様にRouterで配信する際に稼動するAgentとなりますので、Routerが配信する際に「Copyを送信」で指定したAddressにも同時に配信するようになります。


ただ、送信方法は全体を送るか、Headerのみを送るかのどちらかしか選べません。


しかし、この場合は、Mailは受信者のMail DBに残り、かつ、転送処理が行われたことがわかるようにMarkされます。


Mail_Forwarding_3



これらの方法で転送を行うと、単純に転送されてしまうだけとか、Copyを転送するとSubjectでForwardされたMailが分からないといった理由で自由に処理したいためにAgentを組まれている場合もあることでしょう。


特に、携帯に送る場合などは、巨大な添付Fileは削除して送りたいとか、転送設定が間違っていてMailが届かず帰ってきた場合に対処したいとか、Summaryだけ転送したいとかといった要望から、そういったことをされている場合が多いと思います。


こういうAgentを組んで対処する場合にも2つの方法があります。


1.Mail受信後のAgentでの処理


2.Mail受信前のAgentでの処理


前者は、Mail DBにMailが配信された後に動くAgentで、Agent Managerが管理して動作するAgentとなります。


後者は、Mail DBにMailが配信される前に動くAgentで、Routerが管理して動作するAgentです。


この2つの大きな違いはAgentの実行を管理するTaskですが、この違いにより、即時性という観点で大きな違いが生まれます。


Mail受信前のRouterが処理するAgentは即時に実行されますが、Mail受信後のAgent Managerが実行するAgentは、Agent Managerが判断してServerがBusyな状態であれば実行が先送りされることもあり、即時性の保障はないのです。


こういうことから、皆さんの会社ではR5でMail受信前Agentがサポートされたことにより、それを使われていることもあるかも知れませんし、内容を編集したいがために、Routerが管理するMail.boxに直接文書を作成するといったProgramming Techniqueを利用されている方もいらっしゃるかも知れません。


Notes/Domino R5の頃は、標準TemplateとしてMailing List Templateが提供されていたということを覚えていらっしゃる方もおられるでしょうが、実はこのTemplateは送られてきたMailをMemberに送付する処理をMail受信後のAgentで処理し、Mail.boxにMemberに送付するMessageを生成するという動きをしています。


この動きを真似て、Mail受信前Agentに同様な処理を書いて、即時性を実現しておられる皆さんも中にはいらっしゃるかも知れません。


もしかすると以前に紹介したかも知れませんが、Mail受信前AgentでのMail.boxへの直接書き込みに関しては、Domino R5とDomino 6以降で扱いが変わっています。


というのも、Mail受信前Agentというのは、Routerで動く訳で、RouterはMail.boxを見ながら処理するわけです。


Routerが実行するAgentがRouterに影響を及ぼすMail.boxを直接触るというのは良くないことでしょう。


そういう意味からだと思いますが、Mail受信前AgentでのMail.boxへの直接書き込みはDomino 6以降で一部制限されています。


というのは、添付Fileが入っているようなMailをMail.boxに直接書き込むことが出来なくなっているのです。


Textのみ書き込む場合は何ら問題なく処理されます。


もし、皆さんのMail受信前の転送Agentがこのように添付Fileを含む場合でも、Mail.boxに直接書き込んでいるようなら、Domino 6以降にVersion UpするとErrorで動かなくなってしまうのです。


添付FileをMail.boxに直接書き込む場合は、Mail.boxに対してAgentの実行者が書き込み権限を持っている必要があり、権限が無い場合は書き込みが拒否されてしまうのです。



回避策としては、Mail.boxのACLを変更して、Agentの実行権限者にMail.boxへの文書作成権限を与えることですが、一般的に好ましいことではありません。


即時性というのは、外部にMailを転送する場合は、所詮e-Mailですから保障されるものではありませんので、このような場合はMail受信後のAgentで処理する方が一般的なのです。


Mail受信前AgentはRouterで動かされるため、即時性はありますが、Performanceの観点を考えると問題になる場合もあります。


こういったことも考えながら、Mailの転送処理をどのように行うかを考えることも重要かも知れません。



今回は、Mailの自動転送方法についていくつかの方法を紹介しました。



次回は、Mailの転送にDominoの標準機能である、Domino DirectoryのPerson文書での転送先設定を行った場合を考察してみます。



<続く>