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

 

Last modified: 18 February 2013

Author

Comments

Write a Reply or Comment

Your email address will not be published.