如何使用Perl通过LotusNotesAPI打开收件箱?
我能够使用Perl打开LotusNotesAPI,没有错误,我还可以获得包含收件箱的视图列表,但是当我尝试从该视图读取消息时,它会显示为空吗?我可能做错了什么?(事实上,notes方面似乎有一些变化,因为这段代码以前是可以工作的) 代码结果如下: 视图名称为:($Inbox)的计数为:0 等等 代码: 我相信它的拼写是“EntryCount”如何使用Perl通过LotusNotesAPI打开收件箱?,perl,lotus-notes,Perl,Lotus Notes,我能够使用Perl打开LotusNotesAPI,没有错误,我还可以获得包含收件箱的视图列表,但是当我尝试从该视图读取消息时,它会显示为空吗?我可能做错了什么?(事实上,notes方面似乎有一些变化,因为这段代码以前是可以工作的) 代码结果如下: 视图名称为:($Inbox)的计数为:0 等等 代码: 我相信它的拼写是“EntryCount” 另外,我建议您使用“使用严格”和“使用警告”。根据runrig的评论,EntryCount是一个属性,因此我相信您需要: $view->{entryCou
另外,我建议您使用“使用严格”和“使用警告”。根据runrig的评论,EntryCount是一个属性,因此我相信您需要:
$view->{entryCount}尝试检查Win32::OLE::LastError()消息。您可以使用子对象明确执行此操作,如:
sub w32_ok {
if (my $error = Win32::OLE::LastError()) {
print "Win32::OLE Error! Got: $error";
}
}
或者,让它发出刺耳的声音,比如:
Win32::OLE->Option( Warn => 3 ); # will now croak on errors.
访问所需数据时可能出现问题。邮箱是否对所有用户开放?您可以尝试将-Default-access设置为Manager,并授予它所有可用的角色,以确保这不是阻止查看文档的安全问题。它们的entryCount()是否都为零?我已经有一段时间没有使用Lotus Notes了,但您是否尝试过使用“->{entryCount}”(entryCount听起来更像是一个属性而不是一个方法)?我尝试过更改,但得到了相同的结果,没有更改,收件箱仍然为0,只有少数视图的值高于0,大约15个视图中只有2个视图,例如:视图名称为:($FolderAllInfo)计数为:12您能对照notes客户端中显示的内容检查计数吗?也许您的计数是有效的。似乎有其他错误,所以即使数据库打开,我还是在OpenMail之后添加了以下内容,并获得了0的计数感谢,有趣的是,我获得了少数文件夹的0以上数字,现在将进行测试。因此,这似乎没有什么区别,请参阅上面的评论,还有其他想法吗?谢谢提示,我添加了这一点,它抱怨说“$database->OpenMail;”说DB已经打开了,所以我删除了这一行,没有其他更改,但似乎没有任何其他错误。我如何做到这一点,我尝试访问notes客户端,在安全性中,我选中了所有复选框“无签名”和“默认用户”,是否还有其他内容?我如何判断这是否是安全问题?您需要更改ACL。转到文件>数据库>访问控制。授予-Default-user管理器对数据库的访问权,并选择对话框右下角的所有角色。这将排除安全问题。顺便说一句,你知道你是谁通过这个脚本登录吗?就是这样,这可能是问题所在。我没有意识到,由于我可以读取视图,我无法读取其中的实际条目,看起来我没有足够的权限更改默认角色或访问权限,我如何更改它,以便在我的代码中以我自己而不是默认用户的身份登录?我不知道Perl,但我知道该方法是“初始化”,您可以传递密码。代码将使用当前计算机上Notes.ini中指定的Notes ID,特别是指定为KeyFileName的内容。所以我认为代码应该是$notes->Initialize(“yourspassword”),也许安全性根本不是问题。我添加了这一行,在打开NSF文件之前和之后都尝试了它,但不幸的是,它没有帮助。结果仍然相同,entrycounts中的大多数0都会计数。有趣的是,notes API示例似乎也一样,它们通常不会初始化这些步骤。不管怎样,还有其他想法吗?问题出在哪里?
Win32::OLE->Option( Warn => 3 ); # will now croak on errors.