We're using Domino 8.5 and upon request, I'm studying the option of putting emails on hold outside business hours for some users. I can't schedule a task that stops the router and starts it on defined hours, as it would hold all emails for everyone.

I found I can create rules on the server configuration document to put mails on hold, but I don't want to check the mail.box every morning to release held messages and disable the rule, so I was wondering if an agent could eventually turn the rule on and off on scheduled times, and flag held messages for release?

I found an old article that comes a little close to it, but I don't know the values I should look for to affect held messages and not the messages in delivery failure like the example (article) and from what I understood, it relies on some tool that I'm not really confident I can use without side effects.

My lotusscript level is really low, but I have an idea it runs against the mail.box database and parses the list of mails with specific flags to change them and that should cause the router to send the emails.

Can this be done via an agent in the mail.box database? And then, can the server document rules, be changed via an agent as well? or a scheduled task?

How would that integrate with Domino Traveler?

Is there eventually a better solution I haven't found yet?

  • Seems like a problem that's best solved on the client side. If they don't want to see the emails they can simply not check for them. Remember, the remote sender will still see the mail as "delivered to" your server even if you didn't deliver it to an inbox yet, so the sender won't know of any server side hold. Good luck. – Daniel Farrell Sep 16 '19 at 16:47

It's been a while... My recollection is that releasing a held message is a very straightforward job that an agent can easily do, but I'm pretty certain that scheduled agents in the mail.box database itself won't run. Your agent doesn't have to be in mail.box, though. You can put an agent in any NSF -- let's call it mailrelease.nsf for example, and write the agent code to open mail.box and loop through the documents that are in it and release them. That's no problem.

But using an agent to enable or disable rules... Again, it's been a while, but my recollection is that rules are quite complicated. They are compiled and (I believe) cached, and there is a history of bugs that caused rules that appeared to be disabled to still run and/or vice versa. I would not recommend using your approach.

There are probably 3rd party products out there that do exactly what you want, though. You don't necessarily have to buy one, but you can do what they do.

The 3rd party Domino email management products (that's what I would Google if I wanted to find them!) that I'm familiar with generally use extension manager DLLs (written with the Notes C API) to do things like putting messages on hold, rather than relying on rules. Fortunately, there's a project called Trigger Happy on the OpenNTF site that provides you with the C code to hook server events and lets you configure it to run agents when those events happen. So in this case, what you would do is use it to trigger your agent whenever a document is written to mail.box. Your agent would check the time of day and check the sender to see if it is one of the users whose messages you want to delay, and it would put the message on hold or just leave it as-is, depending on the result. Your agent in mailrelease.nsf would still be used to release the messages at the time you specify for it to run.

  • Thanks for the informations, this is very helpful. – Eric Sep 20 '19 at 7:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.