2017-06-28 116 views
0

我正在開發Java程序,通過蓮花筆記客戶端發送帶有附件的電子郵件。一位同事給了我一個能夠執行此任務的vba腳本來定位自己。該腳本如下:nsf文件的Java Lotus Notes API/VBA路徑

Set Session = CreateObject("Notes.NotesSession") 
UserName = Session.UserName 
MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf" 
Set Maildb = Session.GetDatabase("", MailDbName) 

像魔術一樣,這成功地打開本地筆記數據庫文件,我可以發送電子郵件。現在,我試圖與Lotus Notes API「Notes.jar文件」複製這種在Java中:

Session s = NotesFactory.createSession(); 
Database database = s.getDatabase("", "PATH TO NSF FILE"); 

如果我給getDatabase方法給它就像一個魅力的NSF文件,但確切的路徑給它的值相同作爲vba腳本中的MailDbName,它不起作用。我的問題是如何在vba中工作,但不是在Java中工作?給getDatabase方法確切的路徑不適用於除我自己的設備之外的任何其他設備。那麼,如何在任何設備上使用此工具?

非常感謝!

+0

請顯示不起作用的確切代碼。不要讓我們猜測。也就是說,告訴我們你是如何給它「與vba腳本相同的MailDbName值」。另請告訴我們:在什麼機器上運行VBA腳本,以及它如何運行;以及運行Java代碼的機器是什麼,以及它如何運行? –

回答

1

如果您有本地郵件文件副本,它通常位於Notes/Data目錄中,該目錄被視爲Notes的根目錄。 這就是它在第一個例子中打開的原因。 在第二個示例中,它聽起來像試圖打開的數據庫位於Notes/Data目錄內的文件夾中,這可能是爲什麼它不起作用。

通常,當您要打開郵件數據庫時,如果使用Java和Lotuss的NotesDatabase類的OpenMail方法,則使用DbDirectory類的openMailDatabase方法。

+0

謝謝先生!使用session作爲參數的getDbDirectory和openMailDatabase以空字符串完美工作:) – Chrisser