这里是普通文章模块栏目内容页
Exchange 2010 用户邮箱使用空间统计
近期由于公司领导要求统计邮箱数据库当中用户邮箱空间使用大小,需要对用户邮箱进行使用空间统计,对超出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)