代码之家  ›  专栏  ›  技术社区  ›  Geo

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

  •  2
  • Geo  · 技术社区  · 16 年前

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

    我的问题是:

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

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

    8 回复  |  直到 14 年前
        1
  •  3
  •   Anders Lindahl    16 年前

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

        2
  •  3
  •   Joseph    16 年前

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

    LotusNotes发布了一个SDK来实现这一点。

    这里有一个 link .

    我们使用interop让它工作。另外,请确保选择了正确版本的SDK。它必须与客户机使用的LotusNotes版本相匹配。如果你用错了,他们的机器就不能用了。

        3
  •  3
  •   lakshminb7    16 年前

    我不知道荷香。但我不知道为什么你需要一个客户。对于Exchange,您只需要服务器详细信息(或任何SMTP服务器),然后用您需要的语言对其进行编码。您需要转到为邮件帐户配置LotusNotes客户端的位置,以查找服务器详细信息。

        4
  •  2
  •   groesser3    14 年前

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

    3 & lt;

        5
  •  1
  •   Jeff.Crossett    16 年前

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

    记住:如果您编写的代码实际上使用了Notes客户机,那么在该代码运行的任何地方都需要安装客户机。

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

    至于SMTP服务器地址,我建议与贵组织中处理消息的任何人联系。有时公司有一个单独的内部SMTP服务器专门为此目的而预留。否则,您需要查看Notes目录的configuration\servers\all server documents部分以查找SMTP服务器地址。

        6
  •  1
  •   Ken    16 年前

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

    1)使用@函数-例如@mailsend这是一个内置的Notes函数,可以在表单上使用。就像你按下一个按钮或者保存一个文档。您可以打开LotusNotes设计器并查看帮助以获取所有信息。

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

    这是一个链接到笔记论坛,将有答案你寻求。 http://www-10.lotus.com/ldd/46dom.nsf?OpenDatabase

        7
  •  1
  •   Alexey Zimarev willbt    15 年前

    Notes 6.5及更高版本的Domino.NET程序集为您提供了在.NET应用程序中使用Lotus Notes对象模型的非常简单的方法(这样您就可以编写C代码),但是需要一些关于对象模型本身以及如何编程Notes类的一般知识。但是,您可以在IBMforLotus的developerWorks(http://www.notes.net)上找到许多答案。

    您还可以将您的数据放到HDD中,并创建lotuscript本地代理来接收数据并通过电子邮件发送。为此,你需要大量的知识。可以很容易地安排本地代理,但Notes客户机需要始终在该计算机上运行。

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

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

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

        8
  •  0
  •   brainimus user417509    14 年前

    回答问题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
    
    推荐文章