【问题标题】:Can I use Lotus Notes to send mail?我可以使用 Lotus Notes 发送邮件吗?
【发布时间】:2010-11-04 20:55:48
【问题描述】:

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

我的问题是:

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

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

【问题讨论】:

  • 您使用什么平台/语言?
  • 我有点语言不可知论者。类似于 Perl/Ruby/Python/Java/C/C++/C# 的东西。不过,宁愿不要在 C/C++ 中这样做。

标签: email lotus-notes


【解决方案1】:

回答问题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

【讨论】:

    【解决方案2】:

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

    3

    【讨论】:

    • 谢谢。我也使用 OLE 实现了我的邮件程序,但我没有发布它:)
    【解决方案3】:

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

    【讨论】:

    • 感谢您的回答阿列克谢。我最终决定使用 Ruby 和 Win32 COM 来做这件事。效果很好。
    【解决方案4】:

    这是一个使用 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 documentation

    【讨论】:

    • maildb.Open 的参数是什么?
    • 服务器和数据库文件,但他们不必知道:对 maildb.openmail 的调用将其连接到当前用户的个人邮件数据库。
    • 明天上班的时候我会试试这个脚本,如果它有效,让你看看。
    • 谢谢安德斯!根据您的脚本,我能够编写一个有效的 ruby​​ 脚本!
    • 这个答案太好了,我总是回来阅读它。谢谢!
    【解决方案5】:

    需要更多关于邮件选项的细节,但最简单的如下:

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

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

    这里是笔记论坛的链接,可以找到您所寻求的答案。 http://www-10.lotus.com/ldd/46dom.nsf?OpenDatabase

    【讨论】:

      【解决方案6】:

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

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

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

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

      【讨论】:

      • lotus notes 客户端会随处安装。
      • 这更容易,但我忘了还提到用户需要登录,或者代码需要知道要使用的用户 ID 和密码。这可能在更新的笔记版本中有所改变。
      【解决方案7】:

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

      【讨论】:

        【解决方案8】:

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

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

        这是link

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-12-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多