2013-04-18 158 views
0

以下是我正在尝试执行的操作: 添加一个特殊按钮以将文件附加到Notes“新消息”窗口。如果使用此按钮附加了文件,则在发送电子邮件时,应将其上传到服务器,并将其链接添加到电子邮件中。如何在IBM Lotus notes插件中捕获“发送邮件”

我的问题是否有可能(以及如何)捕获Lotus Notus插件中的“发送邮件”事件?

回答

0

我有点想通了。 8.5中提供了一个非常不错的扩展点 - “com.ibm.notes.mailsend.MailSendAttachmentsDialog”,专门用于附件的自定义处理。您可以在plugin.xml中的IBM \ Lotus \ Notes \ framework \ shared \ eclipse \ plugins \ com.ibm.notes.mailsend_8.5中看到它。 * .jar。

唯一的问题是 - 它只处理附件,无法访问其他任何东西。所以,如果有人想到如何获得主题和消息文本,请回复。

更新:明白了。

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(); 
    .... 
} 
0

我不知道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。我没有看到这些操作可能如何工作的细节处理邮件消息。)

相关问题