Every so often you might find that emails from users sit forever in a Pending Send state:
If you open the message you will see the message “This message has not yet been submitted for delivery” with no real guidance on why.
This issue comes up every so often so I’m going to highlight a few key things to check. Most of them you might be aware of, but the last two are a bit of a kicker and can cause you to waste a lot of time needlessly.
Step 1 – Approve the Sending Users Email Address
The user will only be able to send emails via CRM if they both have an email address listed on their user account record and it has been Approved. Many users forget this step.
Go to Settings -> Administration -> Users -> Open the user record and hit Approve Email on the record
Step 2: Ensure the User’s Email Access Type – Outgoing is set to “Email Router”
In order for mail to be picked up from CRM and dispatched by the email router, each user needs to be able to send email needs to have “Email Router” set as their Email Access Type at least for the Outgoing option.
Step 3: Restart the Email Router Service
I know this seems stupid, but trust me. I have had numerous cases where settings seem to take no effect until the service is restarted. For better or worse the CRM Email Router seems to like caching information like I like cake.
If nothing seems to be working, give it a try – you may save yourself a lot of time
Step 4: If all else fails – enable logging on the router
I’m not a huge fan of the email router, but it does do some pretty decent logging when its playing up and I do like that. If a restart doesn’t fix it you can normally see what the issue is by examining the log file generated when you do this:
- Find the “Microsoft.Crm.Tools.EmailAgent.xml” configuration file in the installation directory of the router.
- Find or add the <LogLevel> element and change it to 3 for advanced message level logging. See here for more details of the options
- Set the following registry key to 3 as well: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSCRMEmail\LogLevel
- Find or add the <LogFile> element and set it to something sensible e.g. <LogFile>C:\CRMRouterLog.txt</LogFile>
Restart the service and you should start getting some decent information back on what the router is doing.
Remember to disable the logging once you’ve run your tests.
Update: There is a reference from one of the Microsoft CRM Support engineers herethat seems to suggest that the act of enabling logging in itself causes certain issues to disappear. That would certainly tally with some behaviour I’ve seen where information seems to be cached somewhere and the email router is a bit erratic about when to update its cache.
I hope that helps someone!