这是我正在尝试做的:添加一个特殊的按钮,将文件附加到Notes "New message“窗口。如果文件是使用此按钮附加的,则在发送电子邮件时,这些文件应上载到服务器,并将指向它们的链接添加到电子邮件中。
我的问题是-是否可以(以及如何)在Lotus Notus的插件中捕获"send mail“事件?
发布于 2013-05-28 16:46:04
我有点想通了。8.5 - "com.ibm.notes.mailsend.MailSendAttachmentsDialog",中提供了一个非常好的扩展点,专门用于自定义附件处理。您可以在IBM\Lotus\Notes\framework\shared\eclipse\plugins\com.ibm.notes.mailsend_8.5.*.jar.的plugin.xml中看到它
唯一的问题是-它只处理附件,而不能访问任何其他内容。因此,如果有人想出了如何从那里获取主题行和消息文本,请回复。
更新:明白了。
NotesUIElement elem = (new NotesUIWorkspace()).getCurrentElement();
if (elem instanceof NotesUIDocument) {
NotesUIDocument doc = ((NotesUIDocument) elem);
String to = doc.getField("EnterSendTo").getText();
String cc = doc.getField("EnterCopyTo").getText();
String bcc = doc.getField("EnterBlindCopyTo").getText();
String subject = doc.getField("Subject").getText();
String body = doc.getField("Body").getText();
....
}发布于 2013-04-19 03:06:57
我不知道Eclipse插件如何做到这一点。此外,由于Notes可以脱机使用--当无法将文件上传到服务器时--最好让运行在Domino服务器上的代码拦截邮件消息并执行上传。
大多数在服务器上挂接邮件操作的产品都使用Lotus Notes C API的扩展管理器函数来挂接EM_NSFNOTEUPDATE事件的EM_BEFORE通知,并检查NSFNoteUpdate操作是否发生在服务器的mail.box文件中,然后检查消息是否需要特殊处理(即,在您的示例中,需要查找按钮代码插入到消息中的特殊NotesItem )。通常的编码方法是立即更改消息的状态,将其置于保留状态,以防止Domino路由器在您的代码仍在处理该消息时尝试发送该消息。许多产品实际上有两个组件- EM挂钩DLL和一个单独的服务器任务,该任务接收来自挂钩DLL的信号,处理消息,然后将其从挂起状态释放。这种方法可以防止您的代码在处理大文件时占用路由器线程。
(注意:较新版本的Domino服务器能够使用用Java编写的OSGI插件,而不是使用Notes C API来执行这样的操作。我还没有研究这对于处理邮件消息的操作是如何工作的细节。)
https://stackoverflow.com/questions/16082023
复制相似问题