【问题标题】:Java Lotus Notes API / VBA path to nsf filensf 文件的 Java Lotus Notes API/VBA 路径
【发布时间】:2017-06-30 13:38:35
【问题描述】:

我正在开发一个 Java 程序,通过 lotus notes 客户端发送带有附件的电子邮件。一位同事给了我一个 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 方法提供确切的路径在我自己的设备之外的任何其他设备上都不起作用。那么我如何让它在任何设备上运行呢?

非常感谢!

【问题讨论】:

  • 请显示不起作用的确切代码。不要让我们猜测。即,准确地向我们展示您如何为其提供“与 vba 脚本相同的 MailDbName 值”。另外请告诉我们:VBA 脚本在哪台机器上运行,它是如何运行的; Java 代码在哪台机器上运行,它是如何运行的?

标签: java vba lotus-notes lotus-domino


【解决方案1】:

如果您有一个本地邮件文件副本,它通常位于 Notes/Data 目录中,该目录被视为 Notes 的根目录。 这就是它在第一个示例中打开的原因。 在第二个示例中,听起来您尝试打开的数据库位于 Notes/Data 目录中的文件夹中,这可能是它无法正常工作的原因。

通常,当您要打开邮件数据库时,如果您使用 Java,则使用 DbDirectory 类的 openMailDatabase 方法和 Lotusscript 中 NotesDatabase 类的 OpenMail 方法。

【讨论】:

  • 谢谢先生!使用带有空字符串作为参数的会话 getDbDirectory 和 openMailDatabase 效果很好:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多