2

我必须编写一个应用程序,在某个时间点必须使用 Lotus Notes 发送一些报告。

我的问题是:

  1. 我可以通过 Lotus Notes 客户端或与 Lotus Notes 相关的东西(可能是命令行工具吗?)发送邮件?如果是这样,我在哪里可以找到与此相关的信息?我宁愿不必在 C/C++ 中执行此操作,但如果没有其他选项存在,那就可以了。

  2. 我怎样才能找到服务器的地址?图形界面不直观,我找不到服务器地址。服务器位于网络上的另一台计算机上。

4

8 回答 8

3

是的,您可以通过 Lotus Notes 客户端发送电子邮件。我以前在 .NET 应用程序中必须这样做,因为我们的许多客户都在使用 Lotus Notes。

Lotus Notes 发布了一个 SDK 来执行此操作。

这是一个链接

我们使用 Interop 来让事情正常工作。此外,请确保您选择了正确的 SDK 版本。它必须与您的客户使用的 Lotus Notes 版本相匹配。如果您使用错误的,那么它将无法在他们的机器上运行。

于 2009-06-22T14:08:58.573 回答
3

我不知道 Lotus Notes。但是对于从代码发送电子邮件,我不确定您为什么需要客户端。对于 Exchange,您只需要服务器详细信息(或任何 SMTP 服务器),然后以您需要的语言对其进行编码。您需要前往为邮件帐户配置 Lotus notes 客户端的位置以查找服务器详细信息。

于 2009-06-22T14:11:53.747 回答
3

下面是一个使用 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 文档

于 2009-06-22T14:27:51.437 回答
2

试试https://rubygems.org/gems/notes_mailer (免责声明:我是作者)

3<

于 2010-11-10T07:05:05.557 回答
1

这是一个用于发送 SMTP 消息的命令行工具。只需将 SMTP 服务器的 IP 地址放在配置文件中,然后使用命令行语句构建一个用于发送的输出文件。

请记住:如果您编写的代码实际使用 Notes 客户端,则需要在运行此代码的任何地方安装客户端。

http://glob.com.au/sendmail/

至于 SMTP 服务器地址,我建议联系您组织中处理消息传递的任何人。有时,公司会为此专门设置一个单独的内部 SMTP 服务器。否则,您将需要查看 Notes 目录的 Configuration \ Servers \ All Server Documents 部分以找到 SMTP 服务器地址。

于 2009-06-22T14:32:21.647 回答
1

需要有关邮件选项的更多详细信息,但最简单的如下:

1) 使用@Function - 示例@MailSend 这是注释中的内置函数,可在表单上使用。就像您按下按钮或保存文档时一样。您可以打开 lotus notes 设计器并查看所有信息的帮助。

2) 您可以使用 lotus 脚本创建自己的自定义电子邮件发送。

这是笔记论坛的链接,它将提供您寻求的答案。 http://www-10.lotus.com/ldd/46dom.nsf?OpenDatabase

于 2009-06-26T14:33:32.023 回答
1

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“开箱即用”提供的加密。

于 2010-10-22T09:42:19.420 回答
0

回答问题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
于 2010-05-18T05:34:16.930 回答