摘要:近期由于公司领导要求统计邮箱数据库当中用户邮箱空间使用大小,需要对用户邮箱进行使用空间统计,对超出80%的使用空间的用户,进行邮件通知 #----------------------------------------sent to admin and sent to users. $dblist = Get-MailboxDatabase $smtpServer = \"mail.
近期由于公司领导要求统计邮箱数据库当中用户邮箱空间使用大小,需要对用户邮箱进行使用空间统计,对超出80%的使用空间的用户,进行邮件通知
#----------------------------------------sent to admin and sent to users.
$dblist = Get-MailboxDatabase
$smtpServer = "mail.contoso.com"
$smtpUser = "Administrator"
$smtpPassword = "1234546"
#set the addresses
$MailAddress="Administrator@contoso.com"
$MailtoAddress="pengfei@contoso.com"
$userlist = @();
#create the mail message
$mail = New-Object System.Net.Mail.MailMessage
$mail.From = New-Object System.Net.Mail.MailAddress($MailAddress)
$mail.To.Add($MailtoAddress)
#set the content
$mail.Subject = "Q邮箱空间使用情况统计";
foreach($db in $dblist){
$dbName = $db.Name;
$dbInfo = Get-MailboxDatabase $dbName | select IssueWarningQuota;
$dbWQ = $dbInfo.IssueWarningQuota.Value.ToMB();
$uper= $dbWQ * 0.8;
$object_part = $dbWQ * 0.2;
$alluser=Get-MailboxStatistics -database $dbName |Where-Object {$_.TotalItemSize.Value.ToMB() -ge $uper} | Sort-Object TotalItemSize -Descending | select-object displayname,totalitemsize
$Mailbox = Get-Mailbox -Database $dbName| select-object DisplayName,primarysmtpaddress;
foreach($user in $alluser){
$displayname = $user.DisplayName;
$totalitemsize = $user.TotalItemSize.Value;
$mypriadd= $Mailbox | where-object {$_.DisplayName -eq $displayname;} | select-object primarysmtpaddress;
$mylocal = $mypriadd.PrimarySmtpAddress.Local;
$myadd = $mylocal+"@contoso.com";
$userobject=New-object psobject;
$userobject | Add-Member -membertype noteproperty -Name 用户名 -value $displayname;
$userobject | Add-Member -membertype noteproperty -Name 邮箱已用空间 -Value $totalitemsize;
$userobject | Add-Member -membertype noteproperty -Name 邮件地址 -Value $myadd;
$userlist+=$userobject;
if($mylocal -ne $null){
$mail_user = New-Object System.Net.Mail.MailMessage
$mail_user.From = New-Object System.Net.Mail.MailAddress($MailAddress)
#set the content
$mail_user.Subject = "邮箱空间已不足20%";
#$MailtoAddress_user=$MailtoAddress; #$myadd;
$mail_user.To.Add($myadd)
$EmailbodyHTML_user= "您的邮箱空间不足20%,请及时归档邮件或者联系IT支持帮助处理。<br/> 联系方式:Administrator@contoso.com"; #| Out-String # ConvertTo-Html |
$mail_user.Body = $EmailbodyHTML_user;
$mail_user.IsBodyHtml = $true;
#send the message
$smtp_user= New-Object System.Net.Mail.SmtpClient -argumentList $smtpServer;
$smtp_user.Credentials = New-Object System.Net.NetworkCredential -argumentList $smtpUser,$smtpPassword;
$smtp_user.Send($mail_user);
}
}
}
$EmailbodyHTML=$userlist| ConvertTo-Html | Out-String
$mail.Body = $EmailbodyHTML
$mail.IsBodyHtml = $true
#send the message
$smtp = New-Object System.Net.Mail.SmtpClient -argumentList $smtpServer
$smtp.Credentials = New-Object System.Net.NetworkCredential -argumentList $smtpUser,$smtpPassword
$smtp.Send($mail)
以上实现了,领导的要求,可以根据自己的实际情况调整相关代码,第一次上传文章,分享知识心得!
相关文章推荐
已有家长中招!“录取通知书”邮件暗藏骗局2022-09-06
连接企微和钉钉,新网全球邮助力企业协同办公2022-09-27
快速申请搭建免费企业邮箱的教程2022-09-16
如何避免你的外贸开发信被当成垃圾邮件?2022-09-14
2021年,全国企业邮箱用户共收发邮件约7637.7亿封2022-09-13