簡體   English   中英

如何在IBM Lotus Notes插件中捕獲“發送郵件”

[英]How to capture “send mail” in plugin for IBM Lotus notes

這是我要執行的操作:添加一個特殊按鈕,將文件附加到Notes“新消息”窗口。 如果使用此按鈕附加了文件,則在發送電子郵件時,應將其上傳到服務器,並將鏈接添加到電子郵件中。

我的問題-是否有可能(以及如何)在Lotus Notus的插件中捕獲“發送郵件”事件?

我不知道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進行這樣的操作。我沒有研究如何處理處理郵件消息的細節。 )

我有點想通了。 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();
    ....
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM