2010-06-25 2 views
1

Voici le code que j'utilise. J'ai passé quelque temps à regarder les objets de rachat, mais rien ne me saute aux yeux:Utilisation de Redemption, comment puis-je ajouter une signature par défaut à un message électronique sortant?

public static bool PopEmail(string domainUserName, string mSubject, string mBody, string mTo, string mCc = "", string mBcc = "", List<String> fileAttachments = null) 
    { 
     log.Info("Starting to Pop Outlook Email Message"); 
     RDOSession oSession = new RDOSession(); 
     try 
     { 
      oSession.LogonExchangeMailbox(domainUserName, string.Empty); 
      if (oSession.LoggedOn) 
      { 
       RDOMail oMail = oSession.GetDefaultFolder(rdoDefaultFolders.olFolderOutbox).Items.Add("IPM.Note"); 
       oMail.Subject = mSubject; 
       oMail.Body = mBody; 
       oMail.To = mTo; 
       oMail.CC = mCc; 
       oMail.BCC = mBcc; 
       if (fileAttachments != null) 
       { 
        foreach (string file in fileAttachments) 
        { 
         object newFile = file; 
         oMail.Attachments.Add(newFile, Type.Missing, Type.Missing, Type.Missing); 
         newFile = null; 
        } 
       } 
       oMail.Display(); 
       Marshal.FinalReleaseComObject(oMail); 
       oMail = null; 
      } 
      oSession.Logoff(); 
      Marshal.FinalReleaseComObject(oSession); 
      oSession = null; 
      GC.Collect(); 
      GC.WaitForPendingFinalizers(); 
      log.Info("Outlook Email has been Popped."); 
      return true; 
     } 
     catch (Exception) 
     { 
      log.Error("Outlook Pop Email Failed."); 
      throw; 
     } 
    } 

Merci,

Répondre

0

J'ai ajouté du code à ajouter au oMail.HTMLBody qui lit la signature à partir du dossier C: \ Users \ NomUtilisateur \ AppData \ Roaming \ Microsoft \ Signatures. Ce fichier est généré via un plugin écrit par un de nos développeurs qui lit les informations d'Exchange pour déterminer le nom d'utilisateur, le titre, le téléphone, le fax, etc.

0

La signature est effectivement insérée par l'objet inspecteur Outlook sur instanciation, donc si votre code s'exécute dans un addin Outlook, vous pouvez probablement essayer d'enregistrer l'élément et le rouvrir à partir du MOO en tant que _MailItem via _Namespace.GetItemFromId puis en appelant sa méthode GetInspector (vous n'avez rien à faire avec la référence d'inspecteur renvoyée).

Notez que je n'ai pas essayé ceci avec un élément initialement créé via RDO. Je crée généralement les éléments dans MOO et ensuite créer un wrapper RDO.

Si votre code s'exécute en dehors d'Outlook, vous devez utiliser OLE pour obtenir une référence à son objet _Application, puis extraire l'objet _Namespace à partir de là. Si vous utilisez MAPI autonome sans Outlook installé, la fonctionnalité de signature est complètement indisponible.

+0

J'ai ajouté du code à ajouter au fichier oMail.HTMLBody qui lit la signature à partir du dossier C: \ Users \ Nom_utilisateur \ AppData \ Roaming \ Microsoft \ Signatures. Ce fichier est généré via un plugin écrit par un de nos développeurs qui lit les informations d'Exchange pour déterminer le nom d'utilisateur, le titre, le téléphone, le fax, etc. Merci pour votre réponse. – ElMatador

Questions connexes