locked
Outlook inbox maximum capacity notifications to Administrator? RRS feed

  • Question

  • Greetings,

    Currently running Microsoft Exchange 2010 Version: 14.00.0722.000 on Windows Server 2008 R2 Standard 64-bit.  I know you can configure Exchange to send a notification to a user whose mailbox quota is about to reach its limit (we have it set to 3 GB to notify, at 3.5 GB the user can no longer send emails, and at 4 GB the user can no longer send or receive emails).  What I would like to know is if Exchange can be configured to send a copy of the user notifications to the Administrator inbox, or an account that is monitored by one of our Administrators, so we can ensure compliance with these notifications- can this be done?


    Coleness "ID10T Error: Please see your network administrator because you are probably ruining something."

    Thursday, August 2, 2012 10:43 PM

Answers

  • You probably can accomplish that by using a Hub Transport Rule, setting up the rule conditions to BCC the admin mailbox for messages matching the sender and subject of the quota warning notifications.

    But... IMHO... perhaps an easier way to accomplish the same goal, would be to run a powershell report that querries for all mailboxes over the quota limit.    Especially if you get a lot of mailboxes that are over the limit, it may be best to see all the offending mailboxes in a single report vs. having to sift through numerous emails.

    ex:

    Get-Mailbox -ResultSize unlimited | Get-MailboxStatistics | ? {$_.StorageLimitStatus -ne "BelowLimit"} | ft


    -Matt

    • Proposed as answer by emma.yoyo Wednesday, August 8, 2012 1:09 AM
    • Marked as answer by emma.yoyo Thursday, August 9, 2012 1:37 AM
    Friday, August 3, 2012 8:03 PM
  • Unfortunately transport rules do not work with system generated messages. You will just have to go down th route of producing the report mentioned by Matt.

    James Chong MCITP | EA | EMA; MCSE | M+, S+ Security+, Project+, ITIL msexchangetips.blogspot.com

    • Proposed as answer by emma.yoyo Wednesday, August 8, 2012 1:09 AM
    • Marked as answer by emma.yoyo Thursday, August 9, 2012 1:37 AM
    Monday, August 6, 2012 2:45 AM
  • Coleness,

    Yes, absolutely.  There are several different ways you can do this.  But, to keep it simple, you can modify this same powershell script so that it will email the output when run, then use task scheduler to call the powershell script to run on a daily (for example) basis.

    Below is an example:

    $body = Get-Mailbox -ResultSize unlimited | Get-MailboxStatistics | ? {$_.StorageLimitStatus -ne "BelowLimit"} | ft displayname, storagelimitstatus | out-string
    $smtpServer = "Your_SMTP_relay_here"
    $msg = new-object Net.Mail.MailMessage 
    $smtp = new-object Net.Mail.SmtpClient($smtpServer) 
    $msg.From = "Someone@yourdomain.com" 
    $msg.To.Add("Anyone@yourdomain.com")
    $msg.Subject = "Daily Mailbox Quota Report"
    $msg.Body = $body
    $smtp.Send($msg)
    exit


    -Matt

    • Marked as answer by Coleness Wednesday, September 5, 2012 8:46 PM
    Thursday, August 9, 2012 1:26 PM
  • If you want to query just on size, then you can modify the script above and replace the "$body" variable with this:

    $body = Get-Mailbox -ResultSize unlimited | Get-MailboxStatistics | ? {$_.TotalItemSize.value.tomb() -gt "3500"} | sort totalitemsize -descending | ft displayname, @{label="size (MB)";expression={$_.TotalItemSize.Value.tomb()}}, storagelimitstatus | out-string


    (This will give you all mailboxes greater than 3500 mb)

    -Matt


    • Edited by Matt_B_ Thursday, September 6, 2012 2:57 PM updated script
    • Marked as answer by Coleness Thursday, September 6, 2012 6:55 PM
    Thursday, September 6, 2012 2:48 PM

All replies

  • You probably can accomplish that by using a Hub Transport Rule, setting up the rule conditions to BCC the admin mailbox for messages matching the sender and subject of the quota warning notifications.

    But... IMHO... perhaps an easier way to accomplish the same goal, would be to run a powershell report that querries for all mailboxes over the quota limit.    Especially if you get a lot of mailboxes that are over the limit, it may be best to see all the offending mailboxes in a single report vs. having to sift through numerous emails.

    ex:

    Get-Mailbox -ResultSize unlimited | Get-MailboxStatistics | ? {$_.StorageLimitStatus -ne "BelowLimit"} | ft


    -Matt

    • Proposed as answer by emma.yoyo Wednesday, August 8, 2012 1:09 AM
    • Marked as answer by emma.yoyo Thursday, August 9, 2012 1:37 AM
    Friday, August 3, 2012 8:03 PM
  • Unfortunately transport rules do not work with system generated messages. You will just have to go down th route of producing the report mentioned by Matt.

    James Chong MCITP | EA | EMA; MCSE | M+, S+ Security+, Project+, ITIL msexchangetips.blogspot.com

    • Proposed as answer by emma.yoyo Wednesday, August 8, 2012 1:09 AM
    • Marked as answer by emma.yoyo Thursday, August 9, 2012 1:37 AM
    Monday, August 6, 2012 2:45 AM
  • Hi Coleness,

    Any updates?


    Frank Wang

    TechNet Community Support

    Wednesday, August 8, 2012 1:09 AM
  • Matt_B_,

    Is there a way to set up this power shell report to run automatically?  Management wants something that will continually monitor the mailboxes for those approaching or exceeding the limit.

    Thanks,

    Coleness


    Coleness "ID10T Error: Please see your network administrator because you are probably ruining something."

    Thursday, August 9, 2012 3:58 AM
  • Coleness,

    Yes, absolutely.  There are several different ways you can do this.  But, to keep it simple, you can modify this same powershell script so that it will email the output when run, then use task scheduler to call the powershell script to run on a daily (for example) basis.

    Below is an example:

    $body = Get-Mailbox -ResultSize unlimited | Get-MailboxStatistics | ? {$_.StorageLimitStatus -ne "BelowLimit"} | ft displayname, storagelimitstatus | out-string
    $smtpServer = "Your_SMTP_relay_here"
    $msg = new-object Net.Mail.MailMessage 
    $smtp = new-object Net.Mail.SmtpClient($smtpServer) 
    $msg.From = "Someone@yourdomain.com" 
    $msg.To.Add("Anyone@yourdomain.com")
    $msg.Subject = "Daily Mailbox Quota Report"
    $msg.Body = $body
    $smtp.Send($msg)
    exit


    -Matt

    • Marked as answer by Coleness Wednesday, September 5, 2012 8:46 PM
    Thursday, August 9, 2012 1:26 PM
  • Follow up to this- 

    Our mailbox limit is set to 4 GB.  How do I modify the script above to return a list of the users that are approaching that limit?  For example, all users that are at or above 3.5 GB for their mailbox size?


    Coleness "ID10T Error: Please see your network administrator because you are probably ruining something."

    Wednesday, September 5, 2012 8:50 PM
  • If you want to query just on size, then you can modify the script above and replace the "$body" variable with this:

    $body = Get-Mailbox -ResultSize unlimited | Get-MailboxStatistics | ? {$_.TotalItemSize.value.tomb() -gt "3500"} | sort totalitemsize -descending | ft displayname, @{label="size (MB)";expression={$_.TotalItemSize.Value.tomb()}}, storagelimitstatus | out-string


    (This will give you all mailboxes greater than 3500 mb)

    -Matt


    • Edited by Matt_B_ Thursday, September 6, 2012 2:57 PM updated script
    • Marked as answer by Coleness Thursday, September 6, 2012 6:55 PM
    Thursday, September 6, 2012 2:48 PM
  • Thanks Matt (and all who responded on this).  This latest script appears to be exactly what we need.

    Coleness "ID10T Error: Please see your network administrator because you are probably ruining something."

    Thursday, September 6, 2012 6:56 PM