Managing Message Pickup and Replay


To support message routing and delivery, Hub Transport and Edge Transport servers maintain several special directories:

  • Pickup A folder to which users and applications can manually create and submit new messages for delivery.

  • Replay A folder for messages bound for or received from non-SMTP mail connectors.

The sections that follow discuss how the Pickup and Replay directories are used and configured.

Understanding Message Pickup and Replay

When a Hub Transport or Edge Transport server receives incoming mail from a server using a non-SMTP connector, it stores the message in the Replay directory and then resubmits it for delivery using SMTP. When a Hub Transport or Edge Transport server has messages to deliver to a non-SMTP connector, it stores the message in the Replay directory and then resubmits it for delivery to the foreign connector. In this way, messages received from non-SMTP connectors are processed and routed, and messages to non-SMTP connectors are delivered.

Your Transport servers automatically process any correctly formatted .eml message file copied into the Pickup directory. Exchange considers a message file that is copied into the Pickup directory to be correctly formatted if it:

  • Is a text file that complies with the basic SMTP message format and can also use Multipurpose Internet Mail Extensions (MIME) header fields and content.

  • Has an .eml file name extension, zero or one e-mail address in the Sender field, and one or more e-mail addresses in the From field.

  • Has at least one e-mail address in the To, Cc, or Bcc fields, and a blank line between the header fields and the message body.

Transport servers check the Pickup directory for new message files every five seconds. Although you can't modify this polling interval, you can adjust the rate of message file processing by using the PickupDirectoryMaxMessagesPerMinute parameter on the Set-TransportServer cmdlet. The default value is 100 messages per minute. When a transport server picks up a message, it checks the message against the maximum message size, the maximum header size, the maximum number of recipients, and other messaging limits. By default, the maximum message size is 10 megabytes (MB), the maximum header size is 64 kilobytes (KB), and the maximum number of recipients is 100. You change these limits using the Set-TransportServer cmdlet. If a message file doesn't exceed any assigned limits, the Transport server renames the message file using a .tmp extension and then converts the .tmp file to an e-mail message. After the message is successfully queued for delivery, the Transport server issues a "close" command and deletes the .tmp file from the Pickup directory.

Your Transport servers automatically process any correctly formatted .eml message file copied into the Replay directory. Exchange considers a message file that is copied into the Replay directory to be correctly formatted if it:

  • Is a text file that complies with the basic SMTP message format and can also use MIME header fields and content.

  • Has an .eml file name extension and its X-Header fields occur before all regular header fields.

  • Has a blank line between the header fields and the message body.

Transport servers check the Replay directory for new message files every five seconds. Although you can't modify this polling interval, you can adjust the rate of message file processing by using the PickupDirectoryMaxMessagesPerMinute parameter of the SetTransportServer cmdlet. The Transport server renames the message file using a .tmp extension and then converts the .tmp file to an e-mail message. After the message is successfully queued for delivery, the server issues a "close" command and deletes the .tmp file from the Replay directory.

Exchange considers any improperly formatted e-mail messages received in the Pickup or Replay directory to be undeliverable and renames them from the standard message name (MessageName.eml) to a bad message name (MessageName.bad). As this is considered a type of message-processing failure, a related error is generated as well in the event logs. In addition, if you restart the Microsoft Exchange Transport service when there are .tmp files in the Pickup, Replay, or both directories; all .tmp files are renamed as .eml files and are reprocessed. This can lead to duplicate message transmissions.

Configuring and Moving the Pickup and Replay Directories

Because of the way message pickup and replay works, Transport servers do not perform any security checks on messages submitted through these directories. This means that if you've configured antispam, antivirus, sender filtering, or recipient filtering actions on a Send connector, those checks are not performed on the Pickup or Replay directories. To ensure that the Pickup and Replay directories are not compromised by malicious users, specific security permissions are applied, which must be tightly controlled.

For the Pickup and Replay directories, you must configure the following permissions:

  • Full Control for Administrator

  • Full Control for Local System

  • Read, Write, and Delete Subfolders and Files for Network Service

As may be necessary for balancing the load across a server's disk drives or ensuring there is ample free space for messages, you can move the Pickup and Replay directories to new locations. You move the location of the Pickup directory by using the PickupDirectoryPath parameter on the Set-TransportServer cmdlet. You move the location of the Replay directory by using the ReplayDirectoryPath parameter on the Set-TransportServer cmdlet. With either parameter, successfully changing the directory location depends on the rights that are granted to the Network Service account on the new directory location and whether the new directory already exists. Keep the following in mind:

  • If the new directory does not already exist and the Network Service account has the rights to create folders and apply permissions at the new location, the new directory is created, and the correct permissions are applied to it.

  • If the new directory already exists, the existing folder permissions are not checked or changed. Exchange assumes you've already set the appropriate permissions.

Sample 15-20 provides the syntax and usage for moving the Pickup and Replay directories. If you want to move both the Pickup and the Replay directories, you should do this in two separate commands.

Sample 15-20: Changing the Pickup directory

image from book
 Syntax Set-TransportServer -Identity 'ServerIdentity'  [-PickupDirectoryPath 'LocalFolderPath']  [-ReplayDirectoryPath 'LocalFolderPath'] Usage Set-TransportServer -Identity 'CorpSvr127'  -PickupDirectoryPath 'g:\Pickup' 
image from book

Changing the Message Processing Speed

By default, Transport servers simultaneously and separately process the Pickup and Replay directories. Transport servers scan the Pickup and Replay directories for new message files once every five seconds (or 12 times per minute) and process messages copied to either directory at a rate of 100 messages per minute, per directory. As the polling interval is not configurable, this means the maximum number of messages that can be processed in either the Pickup or Replay directory during each polling interval, by default, is approximately eight (100 messages per minute divided by 12 messages processed per minute).

Although the polling interval is not configurable, the maximum number of messages that can be processed during each polling interval is configurable. You assign the desired processing rate using the PickupDirectoryMaxMessagesPerMinute parameter, as this processing speed is used with both the Pickup and the Replay directories. You may want to adjust the message processing rate in these situations:

  • If the server is unable to keep up with message processing, you may want to decrease the number of messages processed per minute to reduce processor and memory utilization.

  • If the server is handling message transport for a large organization and you are seeing delays in message transport due to an abundance of messages in the Pickup, Replay, or both directories, you may want to increase the number of messages processed per minute, providing that the server can handle the additional workload.

You assign the desired processing rate using the PickupDirectoryMaxMessages-PerMinute parameter of the Set-TransportServer cmdlet, as shown in Sample 15-21, and this processing speed is used with both the Pickup and the Replay directories. Your Transport server then attempts to process messages in each directory independently at the rate specified. You can use a per-minute message processing value between 1 and 20,000.

Sample 15-21: Changing the message processing speed

image from book
 Syntax Set-TransportServer -Identity 'ServerIdentity'  [-PickupDirectoryMaxMessagesPerMinute 'Speed'] Usage Set-TransportServer -Identity 'CorpSvr127'  - PickupDirectoryMaxMessagesPerMinute '500' 
image from book

Configuring Messaging Limits for the Pickup Directory

You can set messaging limits for the Pickup directory for message header sizes, maximum message sizes, and maximum recipients per message. The default message header size is 64 KB. To change this setting, you can set the PickupDirectoryMax-HeaderSize parameter of the Set-TransportServer cmdlet to the desired size. The valid input range for this parameter is 32,768 to 2,147,483,647 bytes. When you specify a value, you must qualify the units for that value by ending with one of the following suffixes:

  • B for bytes

  • KB for kilobytes

  • MB for megabytes

  • GB for gigabytes

The following example sets the maximum header size to 256 KB:

Set-TransportServer -PickupDirectoryMaxHeaderSize: '64KB'

The default maximum message size is 10 MB. To change this setting, you can set the PickupDirectoryMaxMessageSize parameter of the Set-TransportServer cmdlet to the desired size. The valid input range for this parameter is 65,536 to 2,147,483,647 bytes. When you specify a value, you must qualify the units for that value. The following example sets the maximum message size to 10 MB:

Set-TransportServer -PickupDirectoryMaxMessageSize: '10MB'

The default maximum recipients per message is 100. To change this setting, you can set the PickupDirectoryMaxRecipientsPerMessage parameter of the Set-TransportServer cmdlet to the desired size. The valid input range for this parameter is 1 to 10,000. The following example sets the maximum recipients to 500:

Set-TransportServer -PickupDirectoryMaxRecipientsPerMessage: '500'




Microsoft Exchange Server 2007 Administrator's Pocket Consultant
Microsoft Exchange Server 2007 Administrators Pocket Consultant Second Edition
ISBN: 0735625867
EAN: 2147483647
Year: 2007
Pages: 119

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net