Here is the solution:
1. Locate and rename the file keyfile.dat (
2. Run bpkeyutil -client
(Keyfile.dat gets re-created)
(www.tacklesoftware.com - CRM4 Tools - sister-company - check it out)
We discovered interesting issue with email router when there are few (more than one) CRM4 Servers connected to the same database.
All CRM components in multi-server environment work independently: all requests are being fulfilled by the particular server to which server user connects.
Except e-mails (and mail merge).
Email Router happens to work only on the first CRM server in the environment.
Let me explain a little further:
Let's say you have 3 CRM servers: server1, server2, server3 connecting to the same database. They are combined to the server farm by the load balancer. "Virtual" name of the farm is crm.yourcompany.com. Users access CRM using "virtual" name: http://crm.yourcompany.com.
User requests are answered by one of 3 servers (server1 or server2 or server3) – directed by load balancer.
Let's say, user connects to server3, opens Contact and selects 'Send E-mail'. User fills email fields and click 'Send'. You would expect that email router on server3 processes that email. You would be wrong – email gets processed by email router on server1.
(I wonder what will happen if server1 goes down – would it mean that there will be no email processing by email router? – to me it looks like a single point of failure – hello, Microsoft…)
Symptoms:
Can't start Microsoft CRM Email Router Service
Emails are not sent stuck in 'Pending Send' – both regular and Mail Merge.
Cause:
Following file got corrupted:
Microsoft.Crm.Tools.EmailAgent.SystemState.xml
Fix:
2 options:
Either replace that file with the file from "working" CRM server (if you deployed multiple CRM Servers connected to the same database),
Or delete that file – restart should re-create the file
After the fix: re-start the 'Microsoft CRM Email Router Service'