2010-12-16 2 views
2

Je sais que j'ai déjà vu cette question, mais je n'arrive pas à la retrouver. Je souhaite utiliser Microsoft Interop pour copier un message électronique de la boîte de réception dans un dossier differnt. Je sais que d'autres objets comme le rendez-vous et le dossier ont tous les deux une méthode CopyTo(), mais il est manquant pour MailItem. La façon dont je le fais maintenant est appelez MailItem.Copy, puis déplacez la copie vers un autre dossier. Je n'aime pas ça parce que ça provoque un "scintillement" sur l'écran dans Outlook où vous pouvez voir la Boîte de Réception grandir et rétrécir au fur et à mesure que les emails sont copiés puis déplacés.Outlook Interop Copy MailItem

Existe-t-il une autre solution?

Merci

Répondre

0

Vous pouvez le faire en utilisant MAPI (Extended IMAPIFolder::CopyMessages - C++ ou Delphi uniquement). Si l'utilisation de Redemption est une option, elle implémente la méthode RDOMail.CopyTo. Quelque chose comme ce qui suit devrait fonctionner:

set Session = CreateObject("Redemption.RDOSession") 
    Session.MAPIOBJECT = Application.Session.MAPIOBJECT 

    set Item = Session.GetMessageFromID(Application.ActiveExplorer.Selection(1).EntryID) 
    set Folder = Session.GetDefaultFolder(olFolderDeletedItems) 

    Item.CopyTo(Folder) 
Questions connexes