Hi all,
I’ve written a few blog posts to explain how to use tracing to troubleshoot E-Mail issues. Here I would like to provide a series of steps to check in order to fix these issues without having to analyze any trace.
We assume that the CRM User or Queue we want to troubleshoot in CRM is using the Email Router to track Emails. We assume also that the Test Access in the E-Mail Router Configuration Manager is working fine for this CRM User or Queue.
NB: If the above is not true, there will be soon a document on the Developer Blog to troubleshoot this.
1°) Check the CRM User / Queue properties (E-Mail Filtering Method/Incoming Profile/E-mail address/etc…).
Also you can use the CrmServerReportInformation Log generated by the CrmDiagTool4. Go to the section called “All Users Information”. Here you can find all the information you need to check (E-Mail Address, Incoming Profile, Filtering Method)
----------------SDK: All Users Information---------------- [Organization N°1............................]: TrevorsBangers [ORG[1]USER[1] Fullname......................]: Peter Chimaera [ORG[1]USER[1] DomainName....................]: TITAN\chimaera [ORG[1]USER[1] Internal E-Mail Address.......]: chimaera@Titan.co.uk [ORG[1]USER[1] Incoming Email DeliveryMethod.]: E-mail Router [ORG[1]USER[1] Outcoming Email DeliveryMethod]: E-mail Router [ORG[1]USER[1] Incoming Email FilteringMethod]: E-mail Router [ORG[1]USER[2] Fullname......................]: John Griffith
Make sure you have the proper settings here. Switch to “All e-mail messages” to facilitate troubleshooting. Make sure all other settings are ok, the Email Address, the owner, the business unit, the Incoming profile.
NOTE: Make sure the owner of the Queue has a proper CRM Role assigned to him.
Also you can use the CrmServerReportInformation Log generated by the CrmDiagTool4. Go to the section called “All Public Queues Information”. Here you can find all the information you need to check.
----------------SDK: All Public Queues Information---------------- [Organization N°1......................................]: TrevorsBangers [ORG[1]QUEUE[2] Queue Name.............................]: Support [ORG[1]QUEUE[2] E-Mail.................................]: support@CRM4.com [ORG[1]QUEUE[2] Business Unit..........................]: test [ORG[1]QUEUE[2] Owner..................................]: First name Last name [ORG[1]QUEUE[2] Convert to e-mail activities...........]: All e-mail messages [ORG[1]QUEUE[2] E-Mail access type - Incoming..........]: E-mail Router [ORG[1]QUEUE[2] E-Mail access type - Outgoing..........]: E-mail Router [ORG[1]QUEUE[2] Allow credentials for the E-mail Router]: No
2°) Make sure the E-Mail Address used for your CRM User / Queue is not also used by other records (other CRM User, Account, Contact, Lead)
When CRM Receives an Email it needs to know to which CRM Record the Email will belong to. The Email received of course do not say if it is targeted to a Queue a Contact, a CRM user, etc…
So CRM needs to deal with the only information he has in the Email to perform the match: the Email Address of the recipient.
Ex: If CRM receives an email and the recipient is support@CRM4.com, it will search in the database who has an email address equal to support@CRM4.com. If other records like an Account, Contact, User, Queue, Lead are also using support@CRM4.com in their email address field, the email will simply be rejected and will not be tracked in CRM at all.
In order to verify this, the quickest and easiest way is to do a search in the Organization Database using the following SQL Script:
declare @emailAddress as varchar(100) set @emailAddress = 'email address to search for' SELECT FullName, SystemUserId, InternalEmailAddress, PersonalEMailAddress FROM SystemUserBase WHERE InternalEMailAddress = @emailAddress OR PersonalEMailAddress = @emailAddress SELECT Name, QueueId, EMailAddress FROM QueueBase WHERE EMailAddress = @emailAddress SELECT Name, AccountId, EMailAddress1, EMailAddress2, EMailAddress3 FROM AccountBase WHERE EMailAddress1 = @emailAddress OR EMailAddress2 = @emailAddress OR EMailAddress3 = @emailAddress SELECT FullName, ContactId, EMailAddress1, EMailAddress2, EMailAddress3 FROM ContactBase WHERE EMailAddress1 = @emailAddress OR EMailAddress2 = @emailAddress OR EMailAddress3 = @emailAddress SELECT Subject, LeadId, EMailAddress1, EMailAddress2, EMailAddress3 FROM LeadBase WHERE EMailAddress1 = @emailAddress OR EMailAddress2 = @emailAddress OR EMailAddress3 = @emailAddress
Usage: Change the following part to match the Email Address you are searching.
Example:
set @emailAddress = 'support@CRM4.com'
Run the search against your XXXX_MSCRM Organization Database and check if you have more than ONE result. Check if the other place where this email address is used is a User or a Contact.. etc., open this record in CRM and clear or change it’s email address.
Do this until the script returns only one result.
NOTE: Run also the script on ALL your organization databases (XXX_MSCRM, YYYY_MSCRM, AAAA_MSCRM, etc……)
These two steps are the most important, I’ll probably add other latter on. Kind regards
Benjamin LECOQ