This monitor verifies if the messages generated by the Mail Flow Monitoring (Sender) are received and how long this deliver took. Alerts will be generated if test e-mails are not received within the defined interval.
The Mail Flow receiver and sender monitor are active each server or virtual server running Exchange 2003 to send mail to other servers running Exchange 2003, and to receive mail from another server. If the mail flow between the servers is interrupted, mail administrators can be notified before a user experiences a problem.
The mail flow verification scripts use the mailbox (<servername>MOM) that is created for MAPI logon verification, Frontend services (OWA, OMA, EAS).
If messages can be sent and received, the servers running Exchange and their components are functioning. If messages are not received, an alert is raised and you are able to quickly investigate the issue, potentially before your customers notice a change in their ability to send and receive e-mail messages.
The receiver monitor verifies whether the test e-mail messages sent by the sender monitor are received within the specified time, referred to as the Schedule or Interval, and how long delivery took, referred to as the Allowed Latency or Latency. The Health State of mail flow changes to critical and alerts are generated if test e-mail messages are not received within the specified Schedule and the number of attempts has been exceeded, referred to as Max Missed Runs or Number of max missed runs. The default number of attempts is 4. The receiving monitor also generates an alert if it took longer to receive the e-mail message than the allowed latency, for which the default is 60 seconds.
Important:
The interval must be identical on the sending and receiving servers. The rule Performance Collection Rule for Mail flow receiver and the monitor Exchange Mail Flow Monitor (Receiver Part) must have the same override values for the parameters that they share
Usually this is a "Send As" permission, which applies to the identity of an Active Directory user object, not to mailbox contents stored in a database. When e-mail messages are sent, they are not sent from a particular mailbox or database, but from a user. The user may be the mailbox owner or any other account that has the Send As permission.
To resolve the issue for the Exchange Management Pack follow these steps:
Start the Active Directory Users and Computers management console.
On the View menu, make sure that the Advanced Features option is selected. If this option is not selected, the Security page will not be visible for User account objects.
Open the properties of the Test Mailbox for your Exchange server. If you have more than 1 Exchange server, you will need to follow these steps for each Exchange server. Please note that the Mail Flow Sender Script only sends mail from the mailbox of the Test Account on the First Mailbox Store, even if you have selected “Per Store Monitoring” in the Configuration Wizard. The other Test Accounts are used to test MAPI logon among other things, but are not used for the Mail Flow Scripts. You only need to apply these steps to the mailbox on the First Mailbox Store.
Click the Security tab.
Look for the Mailbox Access Account.
In the Permissions box, click Allow for the "Send As" permission for the appropriate account.
Click OK.
Note:
It may take fifteen minutes for the Exchange Information Store to update its permissions cache and make the new permission effective.
Verify the following items to resolve this problem:
Check the server sending the message and ensure that it is working properly. Verify that the delivery queues are emptying regularly, that mailboxes are accessible, and that the services are working properly
Check the server receiving the message and ensure that it is working properly and receiving mail from other sources.
Check the configuration required by the receiver script.
Views Exchange Mail Flow Overview
Tasks Launch Exchange System Manager
Use the Exchange Management Pack Configuration Wizard or for each server participating in the mail flow verification (either as senders, receivers, or both).
In addition, overrides can be applied to this monitor.
The interval and timeout of this monitor can be customized to control the frequency at which test e-mails are generated (by default every 15 minutes) and a timeout value (by default 60 seconds). If the values are changed, they have to be changed the same way for the "Exchange Mail Flow Monitor (Receiver Part)", "Exchange Mail Flow Monitor (Sender Part)" as well as for the "Performance Collection Rule for Mail flow receiver" data collection rule.
MaxSafeMissedRuns: Configure the number of failed attempts to receive mail before an alert is generated (the default is 0 attempts). If the values are changed, they have to be changed the same way for the "Exchange Mail Flow Monitor (Receiver Part)" as well as for the "Performance Collection Rule for Mail flow receiver" data collection rule.
LatencyThreshold: Acceptable latency for the e-mail delivery for Mail Flow to be considered ok (the default is 60 seconds). If the values are changed, they have to be changed the same way for the "Exchange Mail Flow Monitor (Receiver Part)" as well as for the "Performance Collection Rule for Mail flow receiver" data collection rule.
MaxNegativeLatency: Negative latency indicates that there is a clock sync problem between the sending and the receiving Exchange server. The monitor will cause an alert if the clocks are skewed by more that this threshold (the default is 30 seconds). If the values are changed, they have to be changed the same way for the "Exchange Mail Flow Monitor (Receiver Part)" as well as for the "Performance Collection Rule for Mail flow receiver" data collection rule.
Although it is recommended to configure the sending and receiving Exchange server through the Configuration Wizard, you can also manually configure via the registry to specify the server that will send or receive e-mails:
The keys are in each server or virtual server running Exchange 2003:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
Exchange MOM\Mail Flow\<Servername>
Under this key, create a string value named SendTo as a string and set its value to a comma delimited list containing the server names to which this server will send mail. If the server does not send mail, you must keep this entry empty.
Under the same key, create a string value named ExpectedFrom as a string and set its data to comma-delimited list of all servers from which mail is expected to be sent to server. If the server is not expecting mail from another server, you must keep this entry empty.
Target | Microsoft.Exchange.SyntheticTransaction.Mailflow | ||
Parent Monitor | System.Health.AvailabilityState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Mail_flow_receiver.Monitortype | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Mail_flow_receiver.Monitor" Accessibility="Public" Enabled="onStandardMonitoring" Target="Exch2003Core!Microsoft.Exchange.SyntheticTransaction.Mailflow" ParentMonitorID="SystemHealth!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Mail_flow_receiver.Monitortype" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Mail_flow_receiver.Monitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
</AlertSettings>
<OperationalStates>
<OperationalState ID="VerifyMailFlowReceiverOK" MonitorTypeStateID="VerifyMailFlowReceiverOK" HealthState="Success"/>
<OperationalState ID="VerifyMailFlowReceiveBad" MonitorTypeStateID="VerifyMailFlowReceiveBad" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime>00:10</SyncTime>
<TargetNetbiosComputer>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetbiosComputerName$</TargetNetbiosComputer>
<MaxSafeMissedRuns>0</MaxSafeMissedRuns>
<LatencyThreshold>60</LatencyThreshold>
<MaxNegativeLatency>30</MaxNegativeLatency>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>