0

我的 Lotus 代理根据邮件的目的地(目的地 = 数组类型)分离文件并将它们放入不同的文件夹中。实际上,它几乎可以正常工作,但不适用于Mail-in name

found = False
If IsArray(curdoc.GetItemValue("SendTo")) Then
    ForAll elt In curdoc.GetItemValue("SendTo")
        idxFolder = 0
        ForAll dest In destinations
            If InStr(1,CStr(elt),CStr(dest),5) <> 0 Then
                found = True
                Exit ForAll
            End If
            idxFolder = idxFolder + 1
        End ForAll
    End ForAll
    If found Then
        Exit ForAll
    End If
End If

例如:在邮件数据库中,我有

  • 邮寄姓名 = TEST MAIL

  • 域 = 内联网

  • 互联网地址 = test@xyz.com*

当我发送目的地为“TEST MAIL@INTRANET”的邮件时,我的代理不会分离文件,因为在第二个循环中,我得到的是“TEST MAIL@INTRANET”而不是“test@xyz.com”

我的问题:我如何从 Mail-in name 中获取邮件地址?

非常感谢 dsea

4

2 回答 2

2

您需要在 Domino 目录的 $Users 视图中进行查找。(注意:$Users 确实包括邮寄数据库,而不仅仅是用户。)

但这并不像打开 names.nsf 并getDocumentByKey在 $Users 视图中执行操作那么简单。它比这更复杂,因为您的 Domino 服务器可能配置了多个 Domino 目录。所以我相信你应该使用NotesSession.getDirectory, 然后是类的LookupNames方法NotesDirectory。见这里。该文档可能会让您相信您必须搜索用户名,但实际上 $Users 中的第一列包含用户“名称”的许多变体 - 包括 InternetAddress,因此它们都是可搜索的。您应该能够搜索并找到 FullName 字段(位于 $Users 的第三列,程序名称为“FullName”)。返回将是一个NotesDirectoryNavigator对象,所以你'

于 2013-06-06T13:47:36.530 回答
0

据我正确理解您的问题和代码,您正在将 SendTo 字段中的值映射到存储在 Array 目标中的值。解决此问题的最简单方法是将 Mail-In-Databases 的 notes-internal E-Mail 地址添加到数组中(“TEST MAIL@INTRANET”而不是 Internet 地址“test@xyz.com”)。

否则,您可以尝试使用 InetSendTo 字段。它包含收件人的 Internet 邮件地址。

编辑:解决您要查找的内容的最佳和最可靠的方法是查找 domino 目录以获取 Internet 地址,以防您只有 Mailin-Name。

于 2013-06-06T09:02:07.823 回答