Please see this associated Powerpoint created by Jason Crawford
For the purpose of this document, inbound email will be considered an email sent either internally or externally to the user or mailbox you’re supporting.
The first step to troubleshoot an inbound email is to determine if the sender was internal or external to the recipient. For instance, an email sent from jbean@evolveip.net to jdgutierrez@evolveip.net would be considered internal since both mailboxes live in the same Exchange environment. An example of an external email would be an email sent from jcrawford@gmail.com to jdgutierrez@evolveip.net since the sender’s mailbox is a Gmail account, and the recipient’s mailbox lives in the evolveip.net Exchange servers. Steps to troubleshoot internal and external email are contained below.
The majority of tickets sent to our helpdesk regarding inbound email involve email sent from an external mailbox since internal email is less prone to fail. The first step is to verify the recipient domain’s MX record. For this example we will use astrotechcorp.com, but the steps are the same for any domain. :
set type=mx
server 8.8.8.8
astrotechcorp.com
The MX record for astrotechcorp.com points to MXLogic (Spam Soap):
MX preference = 10, mail exchanger = astrotechcorp.com.inbound10.mxlogicmx.net
MX preference = 10, mail exchanger = astrotechcorp.com.inbound10.mxlogic.net
This means that the next hop after the email is sent is to MXLogic’s servers, and this is where we must look next. McAfee has already provided excellent documentation on how to perform a Message Audit in the MXLogic portal available here - http://www.mxlogic.com/pdf/message-audit-quick-start.pdf.
If the email was blocked by MXLogic, it was due to either spam or a virus and action must be taken to either allow that type of email through MXLogic filters or the sender must be instructed to adjust the aspect(s) of the email that caused it to be blocked (attachment, links in the body, key words, etc). If an MXLogic Message Audit shows a successful handoff to the recipient’s Exchange servers, the focus of our troubleshooting must now shift to Exchange.
The following process applies to Exchange 2007 – Exchange 2013.
Get-MessageTrackingLog -Sender xxx -Recipient xxx -Start xxx -End xxx | Sort-Object -Property Timestamp | fl | out-file track.txt;Invoke-Item track.txt
Get-MessageTrackingLog -Sender jcrawford@gmail.com -Recipient jdgutierrez@evolveip.net -Start 6/28/2015 -End 6/30/2015 | Sort-Object -Property Timestamp | fl | out-file track.txt;Invoke-Item track.txt
The output of this command will be written to the track.txt file, and that file will be displayed after running the command. If results were not found, the file will be blank. An example of a successful email delivery would include this:
RunspaceId : 7d051138-124c-4ceb-b9cc-2e8a6ff27bcd
Timestamp : 6/29/2015 9:24:19 AM
ClientIp :
ClientHostname : EC-EXCH02.futura.local
ServerIp :
ServerHostname : EC-EXCH01
SourceContext : 08D277BD477AB8B0;2015-06-29T13:24:19.030Z;ClientSubmitTime:
ConnectorId :
Source : STOREDRIVER
EventId : DELIVER
InternalMessageId : 1730871820369
MessageId : <fe6202a2202c4b42b461e62b053dc25c@eip-mbox-01.eip.local>
Recipients : {futuraservices@futuraservices.net}
RecipientStatus : {}
TotalBytes : 78557
RecipientCount : 1
RelatedRecipientAddress :
Reference :
MessageSubject : Test
Sender : jcrawford@evolveip.net
ReturnPath : jcrawford@evolveip.net
Directionality : Incoming
TenantId :
OriginalClientIp : 208.65.144.247
The STOREDRIVER DELIVER event is what you want to see since it indicates the email was successfully delivered to the mailbox. However, troubleshooting doesn’t always stop here. The user you’re working with may still report they don’t see the email. Here are message tracking results for one such instance:
RunspaceId : 7d217b2d-754d-45a1-90fa-fa52b0dcb4b4
Timestamp : 6/24/2015 2:12:44 PM
ClientIp :
ClientHostname : eip-mbox-01.eip.local
ServerIp :
ServerHostname : eip-mbox-02
SourceContext : 08D25B37C05C85F8;2015-06-24T18:12:44.116Z;ClientSubmitTime:
ConnectorId :
Source : STOREDRIVER
EventId : DELIVER
InternalMessageId : 31026843747327
MessageId : <CAEsQqsqPy_RAoTL9vU+fML6bQQLrhA+-XmGwW0v=6gZFQAy-UA@mail.gmail.com>
Recipients : {anonymous@evolveip.net}
RecipientStatus : {Resumes}
TotalBytes : 141464
RecipientCount : 1
RelatedRecipientAddress :
Reference :
MessageSubject : resume
Sender : anonymous@gmail.com
ReturnPath : anonymous@gmail.com
Directionality : Incoming
TenantId :
OriginalClientIp : 208.65.144.247
Here we can see the email was delivered to the mailbox from the DELIVER EventId; however, we can see the message was forwarded to the ‘Resumes’ folder through an Outlook rule from the RecipientStatus of {Resumes}. In this case the user was looking for the email in his/her Inbox.
The only difference from the troubleshooting perspective of internal inbound email is the DNS server used by the sender. For internal email, depending on how DNS is configured, the sender may be using an internal DNS server instead of an external DNS server. In this case, the email will be delivered to whatever the MX record is for the domain according to the internal DNS server. To find this value, login to the Exchange server being used and run nslookup without specifying a DNS server.