有没有办法使用powershell从lotus notes数据库中获取30分钟的文档?
我正在进行一个集成,在这个集成中,我必须每隔2分钟提取lotus电子邮件文档。我已经创建了一个PowerShell脚本来连接到本地notes客户端。我成功阅读了最新文档,但我无法设置时间过滤器从notes数据库获取最后5分钟的电子邮件。我还尝试获取lotusnotesid尚未读取的文档,该ID用于连接lotusnotes数据库 这是一个新的集成,用于检索过去5分钟的文档或Powershell脚本中使用的当前lotus notes ID未读取的文档。我只能得到最新的文档,但当我应用时间过滤器时,它给我的值与我在LotusNotes内部检查时的实际值不匹配有没有办法使用powershell从lotus notes数据库中获取30分钟的文档?,powershell,lotus-notes,Powershell,Lotus Notes,我正在进行一个集成,在这个集成中,我必须每隔2分钟提取lotus电子邮件文档。我已经创建了一个PowerShell脚本来连接到本地notes客户端。我成功阅读了最新文档,但我无法设置时间过滤器从notes数据库获取最后5分钟的电子邮件。我还尝试获取lotusnotesid尚未读取的文档,该ID用于连接lotusnotes数据库 这是一个新的集成,用于检索过去5分钟的文档或Powershell脚本中使用的当前lotus notes ID未读取的文档。我只能得到最新的文档,但当我应用时间过滤器时,它
$DomSession = New-Object -ComObject Lotus.NotesSession
$DomSession.Initialize()
$DomDatabase = $DomSession.GetDatabase("DominoServer","email.nsf")
Write-Host "Database open : " $DomDatabase.Title
$DomView = $DomDatabase.GetView('All By Category')
Write-Host "View read : " $DomView.Name
$DomNumOfDocs = $DomView.AllEntries.Count
Write-Host "Num of Docs : " $DomNumOfDocs
$DomDoc = $DomView.GetFirstDocument()
$DomDoc.ColumnValues #This gives the latest email document
Do {
$checks = $DomDoc.Items
foreach ($check in $checks) {
if ($check.Name -eq 'Subject') {
[pscustomobject]@{
subject = $check.Text
creationtime = $check.LastModified
}
}
}
$DomDoc = $DomView.GetNextDocument($DomDoc)
}
while ($DomDoc.LastModified -gt ((get-date).AddMinutes(-5)))
我希望获得过去5分钟左右创建的电子邮件文档,但我获得notes数据库中的所有文档。找到了一种使用notes命令从Lotus notes数据库获取电子邮件的方法。下面的脚本将收到过去15分钟内收到的电子邮件
$DomSession = New-Object -ComObject Lotus.NotesSession
$DomSession.Initialize()
$DomDatabase = $DomSession.GetDatabase("DominoSERVER", "MAIL.nsf")
Write-Host "Database open : " $DomDatabase.Title
$DomView = $DomDatabase.GetView('All By Category')
Write-Host "View read : " $DomView.Name
$DomNumOfDocs = $DomView.AllEntries.Count
Write-Host "Num of Docs : " $DomNumOfDocs
$DomDoc = $DomView.GetFirstDocument()
#$DomDoc.ColumnValues
Do {
$checks = $DomDoc.Items
foreach ($check in $checks) {
if ($check.Name -eq 'Subject') {
[pscustomobject]@{
subject = $check.Text
creationtime = $check.LastModified
}
}
}
$DomDoc = $DomView.GetNextDocument($DomDoc)
}
while ($check.LastModified -gt ((get-date).AddMinutes(-15)))
现在,我必须确保脚本每15分钟运行一次,以获得过去15分钟内收到的所有电子邮件。我仍然希望标记上述脚本已经选择的电子邮件,如果我可以破解,我也将共享解决方案,或者如果有人已经这样做,请确实共享或改进脚本
大家好 我对LotusComObject没有任何线索,但我会尝试
$searchDate=(Get Date).AddMinutes(-5)
我尝试过,但没有成功。我对代码做了修改,以获得最后5分钟的文档列表,但它给了我30分钟的数据。我无法理解LotusNotesCOM对象是如何处理时间值的。已修改的代码添加到问题中。是否必须使用PowerShell?我希望您知道Notes是可编程的,并且您可以在其中为许多不同的目的开发代理。您可能还可以使用其他标准功能,例如邮件日志记录。您的项目是什么,您希望集成什么?您使用的是什么版本的Lotus Notes邮箱模板?我认为在过去的15年里,“按类别分类”的观点在任何版本中都没有被使用过。如果我没记错的话,如果你用这个观点,你会发现实际上不是电子邮件的东西。