1 - 所以我有以下脚本从我的Outlook收件箱中检索第12封电子邮件(我知道目前不太需要foreach
):
Add-Type -assembly "Microsoft.Office.Interop.Outlook"
$Outlook = New-Object -comobject Outlook.Application -ErrorAction SilentlyContinue
$namespace = $Outlook.GetNameSpace("MAPI")
foreach($mail in $namespace.GetDefaultFolder([Microsoft.Office.Interop.Outlook.OlDefaultFolders]::olFolderInbox).Items(12) )
{
Write-Host "Mail subject: " $mail.TaskSubject
Write-Host "Sent on: " $mail.SentOn
Write-Host "Received on: "$mail.ReceivedTime
$time = $mail.ReceivedTime -= $mail.SentOn
}
输出:
邮件主题:买鞋
发送时间:2017/4/5 20:10:15
收到时间:2017/4/5 20:10:25
我能够检索发送和接收时间,但我无法相互减去它们,看看电子邮件需要多长时间。
我尝试输出$time
变量,但它是空的,并且没有显示任何错误。我该如何纠正这个?
2 - 是否可以使用此API获取电子邮件标头?我试图绕过它,但我认为没有其他库是不可能的(因为属性EmailHeader
不存在?
3 - 我需要一封电子邮件' expert'我的下一个问题。当我检查电子邮件的标题时,我注意到在电子邮件标题中找不到SentOn
和ReceivedTime
。有时我可以找到比我的脚本更多或更少的时间,但在其他情况下我找到0可比较的结果。
为什么会这样?
答案 0 :(得分:1)
你需要使用TimeSpan功能....如何,在这种情况下,我目前还不太确定还在玩。也许你会更快得到它!功能示例
$Starttime=(GET-DATE)
$Endtime=[datetime]”04/21/2017 00:00”
NEW-TIMESPAN –Start $Starttime –End $Endtime
返回
Days : 0
Hours : -11
Minutes : 0
Seconds : -1
Milliseconds : -987
Ticks : -396019872099
TotalDays : -0.458356333447917
TotalHours : -11.00055200275
TotalMinutes : -660.033120165
TotalSeconds : -39601.9872099
TotalMilliseconds : -39601987.2099