We use email router to send outbound CRM emails via Office 365 accounts. In our configuration email router is set to use user’s credentials, i.e. we need to enter our O365 passwords in user settings in CRM. When password in O365 expires, people (read: me) simply forget to adjust passwords in CRM, especially those for no-man accounts like queues (which happened to be our support queue). For about 2 days email router was duly picking outbound emails and placing them in Sending state. And then failing but keeping emails Sending. Fixed the password, restarted email router. New emails – fine, those sending – still sending. Arghhh…
Best find of the month: http://blogs.msdn.com/b/crminthefield/archive/2011/12/05/how-to-re-send-failed-crm-e-mails-in-bulk.aspx. Brilliant, why didn’t I think of that?
For end-users I did not want to explain how to run workflows, etc. Instead, I’ve created a small solution that adds RESEND button to email command bar:
All this button does, it places email into Pending Send state and refreshes the form. And here is the unmanaged solution to do just that (4 web resources plus RibbonDiffXml for email). The usual disclaimer applies: use at your own risk, contains small parts, choking hazard, swim between the flags.