Message Size Limits in Exchange 2007

There are number of places to limit message size in Exchnage 2007:

1. Organizational limits: Apply to all Exchange servers in the Organization
EMC > Organization Configuration > Hub Transport > Global Settings tab > Transport Settings > Properties > General.

2. Receive Connector limit: Receive Connectors are only used to receive messages
EMC > Server Configuration > Hub Transport > Receive Connectors > Connector > Properties > General.

3. Send Connector limit: Send Connectors are used for sending outgoing messages to the internet or particular address spaces (domains).
EMC > Organization Configuration > Hub Transport > Send Connectors > Connector > Properties > General

4. Mailbox limit: Individual recipients (mailboxes, etc) can have their own limits to bypass the Organizational limits (only for internal messages).
Recipients > Mailbox > select mailbox > properties > Mail Flow Settings > Message Size Restrictions

5. Global Settings: Global settings can impact Exchange Server 2007 recipients (if upgraded from Exchange 2003)
Exchange Server 2003 Global Settings > Message Delivery > Properties
If all Exchange 2003 servers were removed Using ADSIEdit.
In Exchange Server 2007 SP1 changing Organisation Transport limits automatically change Global limits.

6. Active Directory SiteLink limit: In Exchange Server 2007 SP1, you can also set maximum message size limit on AD Site Links.
Exchange Server 2007 uses the AD Site topology to determine the least cost paths. If the message size to be delivered to a remote AD Site exceeds the limit on the AD Site Link, message delivery will fail.
By default, the MaxMessageSize on AD Site Links is set to unlimited. This can be changed using Exchange Management Shell (EMS):
Set-ADSiteLink "<Site Link Name>" -MaxMessageSize 20Mb

7. Routing Group Connector Limit: Routing Group Connectors are used in co-existence scenarios to transfer messages between Exchange Server 2003/2000 Routing Groups and the Exchange Server 2007 Routing Group. Messages exchanged between these Routing Groups should be below the message size limits of their respective RGCs. The default is set to unlimited. To set the MaxMessageSize on a Routing Group Connector:
Set-RoutingGroupConnector "<Connector name>" -MaxMessageSize 20Mb


Exchange Server 2007

Disconnect or block user

If you need to block all network access to a particular user so he/she can’t access or delete any files or emails you have number of option.

1. Disable user in AD

  • If user tries to logon on the network will get a message – your account is disabled.
  • Incoming emails are still delivered in Exchange 2007 environment. In Exchange 2003 environment without hotfixes 916783 and 903158 incoming emails will be rejected.
  • If user is already logged on, he can still access network and Exchange emails until logon token expires. This may take quite a while (hours). Even after that Outlook connection to the Exchange may work until Outlook is restarted.
  • To disconnect user immediately, force computer to restart or logoff
  • To log off or restart remotely: Computer management > Connect to another computer > computername > Properties > Advanced > Startup and Recovery Settings > Shut Down > Log off Current User / Force Apps Closed
  • To restart remotely: CMD > shutdown -r -f -m \\computername This will warn user and give 30 seconds to save his data. If user has local admin rights he could cancel shutdown with shutdown –a. If you don’t want to warn user about the restart use shutdown -r -f -m \\computername -t 0

2. Change user password

  • If user tries to logon on the network will get a message – password is incorrect.
  • Incoming emails are delivered.
  • Everything else as in disabled user (see above).

3. Disable user in Exchange Management Console

  • EMC > Recipient Configuration > Mailbox > User Name > Disable
  • This removed link between AD user and Exchange mailbox
  • Incoming emails gets rejected immediately
  • User is disconnected from his mailbox in webmail immediately although if Outlook is open user may still be able to access and delete his emails there for a while.
  • Mailbox is marked for deletion in Exchange
  • If you want disconnected mailbox become visible in EMC > Recipient Configuration > Disconnected Mailbox immediately, open Exchange Management  Shell and run Clean-MailboxDatabase "database name"

4. Initiate malbox move

  • In emergency if you want to disconnect user from his mailbox immediately (to prevent email deletion, etc) without disabling user in Exchange (thus rejecting incoming email) you can initiate mailbox move to another database (in Exchange Management Console).
  • EMC > Recipient Configuration > Mailbox > User Name > Move Mailbox.
  • As soon as mailbox move starts user will be disconnected from his mailbox, including webmail and outlook.
  • If user uses Outlook in cached mode and deletes his emails while mailbox is being moved this is not replicated to the server while move operation is in progress, but when mailbox goes back online after move and user restarts the Outlook deleted emails will be removed from server as well.
  • After move is completed mailbox will immediately become available again.
  • If you dismount mailbox store to which mailbox was moved it will become unavailable again (along with all other mailboxes in this database) and all incoming emails will be queued.

Windows Server 2003
Windows XP
Exchange 2007

Send Email from a .bat script

You can use mailsend.exe to send emails from the command line or a script via a known SMTP server. More information and more ways to use this little useful utility here.

In MS Exchange environment I used this method to send emails from batch jobs to internal email addresses. If you want to use this to send messages to external recipients you may need to configure Exchange relay options. Some additional info here.

MS Exchange Server 2007 - Export Message Tracking Results

You can't export message tracking results from GUI interface, however you can from Exchange Management Shell.

1. Open Exchange Management Console > Toolbox > Message Tracking
2. Customise your query as required and copy Shell command from the box below.
3. Paste the text into Exchange Management Shell and append | Export-Csv C:\Export.csv at the end.
For example
get-messagetrackinglog -Server "servername" -MessageSubject "meeting" -Start "16/12/2010 13:40:00" -End "16/12/2010 13:41:00" | Export-Csv C:\Export.csv
This will export results into Export.csv file on the C: drive.

One problem with that is that it does not export recipients as it is passed as
an array of strings. To get around the issue you can specify which columns needs to be exported with select and request recipients with  {$_.recipients}
For example to get all columns you can use query:
get-messagetrackinglog -Server "servername" -MessageSubject "meeting" -Start "16/12/2010 13:40:00" -End "16/12/2010 13:41:00" | select timestamp, eventid, source, sourcecontext, messageid, messagesubject, sender, {$_.recipients}, internalmessageid, clientip, clienthostname, serverip, serverhostname, connectorid, {$_.recipientstatus}, totalbytes, recipientcount, relatedrecipientaddress, reference, returnpath, messageinfo | Export-Csv C:\Export.csv

Obviously you can select only these columns which you are interested in.

MS Exchange 2007


Subscribe to receive occasional updates on new posts.
Your email will not be used for any other purpose and you can unsubscribe at any time.
Please wait