首页 文章

如何挂钩IBM Lotus Notes的'send email'

提问于
浏览
1

我正在为IBM Lotus Notes创建一个插件 . 在实际发送电子邮件之前,我需要在用户点击“发送电子邮件”按钮后立即更改电子邮件的内容 . 我搜索过Lotus Notes的API但找不到解决方法 . 在/ opt / ibm / lotus / notes / framework / shared / eclipse / plugins文件夹中有一个名为com.ibm.notes.mailsend的库 . 但我在互联网上找不到任何与之相关的文档,也不知道如何捕获有关发送电子邮件的事件 . 有谁知道如何实现我需要的功能?谢谢 .

更新:谢谢理查德 . 基本上我已经弄清楚如何挂钩电子邮件发送 . 但我还需要提供一个选项,用户可以为每个电子邮件设置不同的选项 . 根据我的理解,称为消息的电子邮件在发送之前存储在邮件文件数据库中 . 如何在邮件中添加“标记”?谢谢 .

1 回答

  • 2

    在Lotus Notes中挂钩事件的方法是使用Notes C API的Extension Manager例程 . 挂钩邮件发送操作的一般策略是在EM_NSFNoteUpdateMailbox上设置挂钩 . 这可以在Notes客户机或Domino服务器上完成 . 在服务器端,如果您的处理非常重要,那么如果您尝试在钩子中完成所有工作,则可能会降低Domino的速度,因此大多数人采用的策略是让钩子代码更改状态消息到"On Hold",然后发出单独的服务器任务信号以接管工作 . 这样钩子就可以返回,并且单独的服务器任务可以在重置消息状态之前花费任何时间,以便正常路由接管 . 你可以找到文档here .

    仅对于服务器端处理,有两个选项允许您使用Java而不是C编写代码 . 一个是名为TriggerHappy的OpenNTF项目,它允许您编写在触发某些样板钩子代码时触发的Java代理,另一个是Domino OSGi Tasklet Service(又名DOTS)的OpenNTF版本,它允许在响应EM事件时触发任务 . 请注意,Domino 9 "Social Edition"中提供了IBM支持的DOTS版本,但我的理解是它不包含EM事件支持 .

    Updated for additional info requested...

    为了向每个消息添加一个标记,可以通过挂钩中运行的代码读取,您需要修改用户邮件文件中使用的邮件模板 . 您需要Domino系统管理员的许可才能做到这一点,并且直言不讳:这不是Domino管理员喜欢做的事情,因为它在升级Domino版本时使他们的工作更加困难 . 有许多方法可以修改模板,但所有这些方法都是为消息添加一个新的隐藏字段,作为钩子代码的标志 . 如果该字段存在,您的代码将对您需要的内容进行更改,否则将使内容保持不变 . 一种可能的方法是添加一个包含公式的共享操作来设置隐藏字段(该公式就像 FIELD myFlagFieldName := "1"; ),然后您可以将该共享操作添加到备注表单中 . 用户可以在他们想要触发代码的任何时候按下操作按钮 . 管理员需要维护包含您的共享操作的备份数据库,并在每次升级后将其重新添加到邮件模板,然后将其重新添加到新模板版本的备注表单中 . 当然还有其他方式,一些对用户更友好,但管理员更难处理,反之亦然 .

相关问题