Au cours d’un projet WPF, il était nécessaire de disposer dans l’application d’un bouton “Prepare Email” qui devait automatiquement créer un nouveau message pré-rempli dans Outlook. Cependant sur certains postes de travail une erreur de type COM Exception apparaissait:
Prepare Outlook MailItem
Voyons tout d’abord le code (simplifié) qui ouvre un nouveau message Outlook pré-rempli:
public void PrepareOutlookMailitem() { try { Microsoft.Office.Interop.Outlook.Application outlook = new Microsoft.Office.Interop.Outlook.Application(); MailItem mailItem = (MailItem)outlook.CreateItem(OlItemType.olMailItem); mailItem.BodyFormat = OlBodyFormat.olFormatHTML; mailItem.Subject = "My Custom Subject"; mailItem.HTMLBody = "My <strong>HTML</strong> body"; string to = "destination@mycompany.org"; mailItem.To = to; } catch (System.Exception ex) { System.Diagnostics.Trace.WriteLine("Error sending mail template: " + ex); } } |
Solution
Le problème apparaissait principalement sous Windows XP, il est nécessaire de donner explicitement les droits à WPF d’exécuter les Interop.
Pour cela, il faut ajouter la clé de registre “DWORD RunUnrestricted” et lui donner la valeur “1” à l’adresse suivante:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Windows Presentation Foundation\Hosting
Comments