我可以使用Lotus Notes发送邮件吗?

时间:2009-06-22 14:05:17

标签: email lotus-notes

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

我的问题是:

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

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

8 个答案:

答案 0 :(得分:3)

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

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

这是link

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

答案 1 :(得分:3)

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

答案 2 :(得分:3)

以下是使用Notes OLE对象从Excel VBA发送Notes邮件的五十年代旧代码的示例 - 猜测它们可以在大多数首选平台中使用:

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

答案 3 :(得分:2)

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

3';

答案 4 :(得分:1)

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

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

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

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

答案 5 :(得分:1)

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

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

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

这是一个指向论坛的链接,它将为您提供答案。 http://www-10.lotus.com/ldd/46dom.nsf?OpenDatabase

答案 6 :(得分:1)

来自Notes 6.5及更高版本的Domino .NET程序集为您提供了在.NET应用程序中使用Lotus Notes对象模型的相当简单的方法(因此您可以编写C#代码),但是需要一些关于对象模型本身以及如何编写Notes类。但是,您可以在IBM for Lotus(http://www.notes.net)的DeveloperWorks上找到许多答案。

您还可以将数据放入硬盘并创建LotuScript本地代理以获取并通过电子邮件发送。为此,您需要一些LotusScript知识。可以轻松安排本地代理,但Notes客户端需要始终在该计算机上运行。

从Notes代码(.NET应用程序或LotusScript代码)发送电子邮件时,不需要服务器地址。所有地址都在名为Locations and Connections的Notes配置文档中配置。这些文档可以在“高级”部分的本地通讯簿应用程序中找到。您还可以通过“文件”菜单管理位置(从我假设的版本8开始)。它相当简单,但不是“微软风格”,这就是你称之为“不直观”的原因。

但通常Notes客户端不用于发送自动邮件,除非在用户与Notes应用程序本身交互期间完成。如果您需要发送邮件,则可以与Domino服务器集成,并使用预定代理从那里发送邮件。但是如果您使用.NET代码,它也可以使用客户端API来执行此操作,但您需要在运行发送邮件的应用程序的计算机上安装Notes客户端。

最后一个选项是通过SMTP发送它。这将需要服务器上的SMTP中继配置,并且不支持Lotus Notes / Domino“开箱即用”提供的加密。

答案 7 :(得分:0)

回答问题2.您可以通过以下方式获取服务器的名称,即莲花笔记名称:

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