有没有办法使用 Powershell 从 lotus notes 数据库中获取超过 30 分钟的文档?



我正在进行集成,我必须每隔 2 分钟定期提取 lotus 电子邮件文档。我创建了一个PowerShell脚本来连接到本地笔记客户端。我已成功阅读最新文档,但我无法设置时间过滤器以从笔记数据库获取最后 5 分钟的电子邮件。我还尝试获取尚未被我用来连接到 lotus notes 数据库的 lotus notes ID 读取的文档。

这是针对新的集成,用于检索过去 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 命令从 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 分钟内发出的所有电子邮件。我仍在寻找标记上面脚本已经选择的电子邮件,如果我能破解我也会分享解决方案,或者如果有人已经这样做了,请分享或改进脚本。

祝大家编码愉快!!

最新更新