DJXユーザ登録で登録Policy設定でMail File不要のユーザの登録がErrorする
DJX管理ツールからユーザ登録する際、Policyでユーザ登録設定をOやOUで定義されている場合があるかと思いますが、このユーザ登録設定でメールDBが不要と設定されている場合に、ユーザ登録がErrorすることがあります。
エラーメッセージは以下のようになります。
処理結果 エラー
メッセージ メールテンプレート mailxx.ntf が、登録サーバー CN=<ServerName>/O=<Domain Name> にありません
ユーザーの登録は行われますが、メールファイルは作成されません
ユーザー ID ファイルは以下のファイル名で作成されました
xxxxxxxx.id
エラーに記述されている通り、Mail TemplateがServerに無い場合に発生するのですが、Version Upを行い、古いMail Templateは不要になり削除した場合に問題となります。
DJXのユーザ登録ロジックでは、以下のように、Mail DB不要のユーザでもTemplateの存在をチェックしているために発生します。
MailFileCreationが1で無い場合も、CreateMailDBのフラグを立てており、後のStepでMail Templateの存在チェックが行われ、エラーするのです。
If doc.MailServer(0) <> "" And doc.MailFile(0) <> "" Then
If PolicyDoc.MailFileCreation(0) ="1" Then
reg.CreateMailDb = True
Else
reg.CreateMailDb = True
reg.UseAdminProcess = True
End If
・・・・・・
DO_CHECK_MAILTEMPLATE:
' Is the Template file Exist?
On Error 4060 GoTo NO_ACCESSEXT2 ' No access privilege
If reg.CreateMailDb = True Then
Set mdb = thisSession.GetDatabase(doc.MailServer(0), reg.MailTemplateName)
If mdb Is Nothing Then
Call ErrorLogging(ERR_NO_MAILTEMPLATE, doc, reg.MailTemplateName, doc.MailServer(0),"","")
reg.CreateMailDb = False
MAILFAIL = True
Else
If Not mdb.IsOpen Then
Call ErrorLogging(ERR_NO_MAILTEMPLATE, doc, reg.MailTemplateName, doc.MailServer(0),"","")
reg.CreateMailDb = False
MAILFAIL = True
End If
End If
End If
全くもって変な話ですが、これが現状のCodeです。
これが質が悪いのは、ユーザ登録Policy設定はかなり初期の段階で設定していると思いますが、設定文書で「他のインターネットメール」を指定していると、Mail Template指定するFieldすら表示されないことです。
このFieldはDefaultで設定され、ユーザ登録Policy設定を作成した時点のVersionに依存します。つまり、Version Up後も古いMail Templateが指定されたままとなっているのです。
つまり、サーバー移行とVersion Upを同時に行い、新サーバを新規に立てて、Mail DBなどのデータのみ移行した際にこの問題は発覚します。
こういう意味で、ユーザがなかなか気が付かず、質が悪いErrorということです。
回避策は、ユーザ登録Policy設定文書を編集し、一度メールシステムをメールファイルが必要なシステム(NotesやiNotes)に設定し、Mail Template名を最新のMail Templateに更新してから、再度、メールシステムを「他のインターネット」に戻すことです。
皆さんも、サーバ移行を伴うVersion Upの際にはご注意ください。
サーバ移行を伴わず、既存環境への上書きVersion Upを行う際には明示的にTemplateを整理しない限り問題はありません。