2010-10-20 6 views
2

J'utilise Redemption.dll pour définir des propriétés personnalisées pour mes messages avec set_Filed() et get_field() en C#. Tout fonctionne parfaitement jusqu'au moment où j'envoie mes messages. À partir d'Outlook, j'utilise RDOMail.Send() et cela a envoyé le message au dossier Brouillons. Ensuite, j'ai lu dans la FAQ Redemption que je devrais utiliser la méthode IMessage :: Submit (que je ne trouve nulle part dans la DLL pour .NET) et ensuite utiliser DeliverNow(), méthode que j'ai utilisée mais à ma grande surprise quand je reçois mes messages, je perds les propriétés que j'avais définies. Ceci est vraiment très important pour notre projet car si Outlook ne peut pas envoyer de mails, cela ne vaut rien.Envoyer un message avec des propriétés personnalisées avec Redemption

Voici une partie de mon code.

private void adxOutlookEvents_ItemSend(object sender, AddinExpress.MSO.ADXOlItemSendEventArgs e) 
{ 
    try 
    { 
     RDOSessionClass _RDOSession= MessagesActions.GetRDOSession(); 
     Outlook.MailItem _MailItem= e.Item as Outlook.MailItem; 
     RDOMail _RdoMail = MessagesActions.GetRDOMail(_RDOSession, _MailItem); 
     _RdoMail.Send();    // Send using Redeption 
     e.Cancel = true;    // Only send using Redeption 

     if (_RdoMail != null && Marshal.IsComObject(_RdoMail)) 
      Marshal.ReleaseComObject(_RdoMail); 

     Redemption.MAPIUtils _MAPIUtils = new MAPIUtils(); 
     _MAPIUtils.DeliverNow(0, 0); 
     if (_MAPIUtils != null && Marshal.IsComObject(_MAPIUtils)) 
      Marshal.ReleaseComObject(_MAPIUtils); 

     CurrentInspector.Close(Outlook.OlInspectorClose.olDiscard); 
    } 
    catch 
    { 
    } 
}  

Merci.

Répondre

0

Lorsqu'un message est envoyé via SMTP (contrairement à entre deux boîtes aux lettres Exchange dans le même domaine), le message est converti en MIME et toutes les propriétés spécifiques MAPI sont perdues.

Vous pouvez forcer Outlook pour envoyer le message dans le TNEF le format (le winmail.dat infâme) si yo Uset une propriété spéciale nommée appelée UseTnef:

RDOMail.Fields [ » http://schemas.microsoft.com/mapi/id/ {00062008-0000-0000- C000-000000000046}/8582000B "] = true;

Questions connexes