首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在收件箱列表中每月清点收到的邮件

在收件箱列表中每月清点收到的邮件
EN

Stack Overflow用户
提问于 2016-10-06 09:52:46
回答 2查看 1.4K关注 0票数 1

我正试图从一份电子邮件地址列表中得到一份每月收到的电子邮件的报告。我想将结果导出到一个.csv,如果可能的话,通过电子邮件自动发送csv到另一个地址。

这是我在exchange-management-shell中使用的方法,看起来如下所示,但没有在.csv中创建任何数据。

代码语言:javascript
复制
    $mail = @("mymail@mydomain.com","another@mydomain.com")
$(foreach ($name in $mail)
{
    $startofmonth = Get-Date -format MM/dd/yyyy -day 1 -hour 0 -minute 0 -second 0
    $endofmonth = ((Get-Date -day 1 -hour 0 -minute 0 -second 0).AddMonths(1).AddSeconds(-1))
    $endofmonth = "{0:MM/dd/yy}" -f [datetime]$endofmonth

    $results = (Get-MessageTrackingLog -ResultSize unlimited -recipients $name -Start $startofmonth -End $endofmonth -EventId RECEIVE).count
    $results
}) | Export-CSV -path \\mymachine\c$\output.csv -NoTypeInformation

如何在.csv中获得我想要的数据:

邮件地址\计数(收到的邮件)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-06 10:28:05

您可以为每个结果创建一个自定义对象,并将其返回到数组$output。然后将数组转换为CSV格式并将其输出到文件中。

代码语言:javascript
复制
$mail = @("mymail@mydomain.com","another@mydomain.com")
$startofmonth = Get-Date -format MM/dd/yyyy -day 1 -hour 0 -minute 0 -second 0
$endofmonth = ((Get-Date -day 1 -hour 0 -minute 0 -second 0).AddMonths(1).AddSeconds(-1))
$endofmonth = "{0:MM/dd/yy}" -f [datetime]$endofmonth

[Array]$output = foreach ($name in $mail) {

    $results = (Get-MessageTrackingLog -ResultSize unlimited -recipients $name -Start $startofmonth -End $endofmonth -EventId RECEIVE).count

    [pscustomobject]@{
        Name=$name;
        Received=$results;
        StartTime=$startofmonth;
        EndTime=$endofmonth;
    }
}

$output | ConvertTo-Csv -NoTypeInformation | Out-File -FilePath \\mymachine\c$\output.csv -Append 

这将返回如下所示的CSV文件:

代码语言:javascript
复制
"Name","Received","StartTime","EndTime"
"mymail@mydomain.com","222","10/01/2016","10/31/16"
"another@mydomain.com","340","10/01/2016","10/31/16"
票数 2
EN

Stack Overflow用户

发布于 2016-10-06 10:32:03

试一试:

代码语言:javascript
复制
 $mails = ("mymail@mydomain.com","another@mydomain.com")
 $startofmonth = Get-Date -format MM/dd/yyyy -day 1 -hour 0 -minute 0 -second 0
 $endofmonth = ((Get-Date -day 1 -hour 0 -minute 0 -second 0).AddMonths(1).AddSeconds(-1))
 $endofmonth = "{0:MM/dd/yy}" -f [datetime]$endofmonth


 Get-MessageTrackingLog -ResultSize Unlimited -Start $startofmonth -End  $endofmonth -EventId RECEIVE | where{$_.Recipients -in   $mails} | select- object  Timestamp,SourceContext,Source,EventId,MessageSubject,Sender, {$_.Recipients} | 
group-object -property Timestamp |
export-csv C:\temp\MessageTrackingLogResults.csv
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39892844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档