我必须编写一个应用程序,在某个时间点必须使用 Lotus Notes 发送一些报告。
我的问题是:
我可以通过 Lotus Notes 客户端或与 Lotus Notes 相关的东西(可能是命令行工具吗?)发送邮件?如果是这样,我在哪里可以找到与此相关的信息?我宁愿不必在 C/C++ 中执行此操作,但如果没有其他选项存在,那就可以了。
我怎样才能找到服务器的地址?图形界面不直观,我找不到服务器地址。服务器位于网络上的另一台计算机上。
我必须编写一个应用程序,在某个时间点必须使用 Lotus Notes 发送一些报告。
我的问题是:
我可以通过 Lotus Notes 客户端或与 Lotus Notes 相关的东西(可能是命令行工具吗?)发送邮件?如果是这样,我在哪里可以找到与此相关的信息?我宁愿不必在 C/C++ 中执行此操作,但如果没有其他选项存在,那就可以了。
我怎样才能找到服务器的地址?图形界面不直观,我找不到服务器地址。服务器位于网络上的另一台计算机上。
是的,您可以通过 Lotus Notes 客户端发送电子邮件。我以前在 .NET 应用程序中必须这样做,因为我们的许多客户都在使用 Lotus Notes。
Lotus Notes 发布了一个 SDK 来执行此操作。
这是一个链接。
我们使用 Interop 来让事情正常工作。此外,请确保您选择了正确的 SDK 版本。它必须与您的客户使用的 Lotus Notes 版本相匹配。如果您使用错误的,那么它将无法在他们的机器上运行。
我不知道 Lotus Notes。但是对于从代码发送电子邮件,我不确定您为什么需要客户端。对于 Exchange,您只需要服务器详细信息(或任何 SMTP 服务器),然后以您需要的语言对其进行编码。您需要前往为邮件帐户配置 Lotus notes 客户端的位置以查找服务器详细信息。
下面是一个使用 Notes OLE 对象从 Excel VBA 发送 Notes 邮件的 50 年旧代码示例 - 猜想它们可以在您的大多数首选平台中使用:
Dim session As Object
Dim maildb As Object
Dim maildoc As Object
Dim body As Object
Public Sub send(subject, recipient, filename)
On Error GoTo errorhandler
Const EMBED_ATTACHMENT = 1454
Call maildb.OpenMail
If Not maildb.IsOpen Then Call maildb.Open("", "")
Set maildoc = maildb.createdocument
Set body = maildoc.createrichtextitem("body")
Call maildoc.replaceitemvalue("form", "memo")
Call maildoc.replaceitemvalue("subject", subject)
Call body.EmbedObject(EMBED_ATTACHMENT, "", filename, subject)
Call maildoc.send(false,recipient)
End Sub
Private Sub Class_Initialize()
Set session = CreateObject("Notes.NotesSession")
Set maildb = session.getDatabase("", "")
End Sub
可以在此处找到各种 Notes 对象的文档:Lotus Domino Designer 文档
试试https://rubygems.org/gems/notes_mailer (免责声明:我是作者)
3<
这是一个用于发送 SMTP 消息的命令行工具。只需将 SMTP 服务器的 IP 地址放在配置文件中,然后使用命令行语句构建一个用于发送的输出文件。
请记住:如果您编写的代码实际使用 Notes 客户端,则需要在运行此代码的任何地方安装客户端。
至于 SMTP 服务器地址,我建议联系您组织中处理消息传递的任何人。有时,公司会为此专门设置一个单独的内部 SMTP 服务器。否则,您将需要查看 Notes 目录的 Configuration \ Servers \ All Server Documents 部分以找到 SMTP 服务器地址。
需要有关邮件选项的更多详细信息,但最简单的如下:
1) 使用@Function - 示例@MailSend 这是注释中的内置函数,可在表单上使用。就像您按下按钮或保存文档时一样。您可以打开 lotus notes 设计器并查看所有信息的帮助。
2) 您可以使用 lotus 脚本创建自己的自定义电子邮件发送。
这是笔记论坛的链接,它将提供您寻求的答案。 http://www-10.lotus.com/ldd/46dom.nsf?OpenDatabase
Notes 6.5 及更高版本的 Domino .NET 程序集为您提供了在 .NET 应用程序中使用 Lotus Notes 对象模型的相当简单的方法(因此您可以编写 C# 代码),但是需要一些关于对象模型本身的一般知识以及如何编写 Notes 类。但是,您可以在 IBM DeveloperWorks for Lotus (http://www.notes.net) 上找到许多答案。
您还可以将数据放入 HDD 并创建 LotuScript 本地代理以获取并通过电子邮件发送。为此,您需要一些 LotusScript 知识。本地代理可以轻松安排,但 Notes 客户端需要一直在该机器上运行。
当您从 Notes 代码(.NET 应用程序或 LotusScript 代码)发送电子邮件时,不需要服务器地址。所有地址都在名为 Locations and Connections 的 Notes 配置文档中进行配置。这些文档可在本地通讯簿应用程序的“高级”部分中找到。您还可以通过“文件”菜单管理位置(我假设从版本 8 开始)。它相当简单,但不是“微软风格”,这就是为什么你称它为“不直观”。
但通常 Notes 客户端不用于发送自动邮件,除非它是在用户与 Notes 应用程序本身交互期间完成的。如果您需要发送邮件,您可以与 Domino 服务器集成,并使用预定代理从那里发送邮件。但如果您使用 .NET 代码,它也可以使用客户端 API 来执行此操作,但您需要在运行发送邮件的应用程序的机器上安装 Notes 客户端。
最后的选择是通过 SMTP 发送它。这将需要在服务器上进行 SMTP 中继配置,并且不支持 Lotus Notes/Domino“开箱即用”提供的加密。
回答问题2。你可以通过以下方式获取服务器的名称,即lotus notes名称:
Private Sub Class_Initialize()
Set session = CreateObject("Notes.NotesSession")
dim strServerName as string
strServerName = session.CurrentDatabase.Server
If ( strServerName = "" ) Then
Messagebox( "This database is local." )
Else
Messagebox( "This database is on a server named "+ strServerName +"." )
End If
End Sub