我的Lotus代理会根据邮件的目的地(目的地=数组类型)分离文件并将它们放入不同的文件夹中。实际上,它运作得很好,但它不能与邮件名称
一起使用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
Domain = INTRANET
Internet addresse = test@xyz.com *
当我发送一封带有目的地=&#34; TEST MAIL @ INTRANET&#34;的邮件时,我的代理人没有分离文件,因为在第二圈,我得到了&#34; TEST MAIL @ INTRANET&#34 ;而不是&#34; test@xyz.com"
我的问题:我如何从邮件收到邮件地址?
非常感谢 最好的祝福 DSEA
答案 0 :(得分:2)
您需要在Domino目录的$ Users视图中进行查找。 (注意:$ Users确实包括邮件收集数据库,而不仅仅是用户。)
但它并不像在$ Users视图中打开names.nsf并执行getDocumentByKey
那么简单。它比这更复杂,因为您的Domino服务器可能配置了多个Domino目录。因此,我认为您应该使用NotesSession.getDirectory
,然后使用LookupNames
类的NotesDirectory
方法。见here。该文档可能会让您相信您必须搜索用户名,但实际上$ Users中的第一列包含用户“名称”的许多变体 - 包括InternetAddress,因此它们都是可搜索的。您应该能够搜索并找到FullName字段(位于$ Users的第三列,具有程序名称“FullName”)。返回将是NotesDirectoryNavigator
对象,因此您需要使用该类的方法来实际获得结果。
答案 1 :(得分:0)
据我所知,您的问题和代码正确无误,您将SendTo字段中的值映射到存储在Array目标中的值。解决此问题的最简单方法是将数据中邮件的笔记内部电子邮件地址添加到阵列(“TEST MAIL @ INTRANET”而不是Internet地址“test@xyz.com”)。
否则您可以尝试使用InetSendTo字段。它包含收件人的Internet邮件地址。
编辑: 解决您正在寻找的问题的最佳和最可靠的方法是查找domino目录以获取Internet地址,以防您只拥有Mailin-Name。