Plein d’exemple montre comment le faire sur sa propre boite mail outlook mais peu sur une boite mail commune outlook
LE truc c’est de se connecter avec son compte outlook , puis de se connecter à la boite mail commune (son réserve d’être autoriser à le faire , c’est à dire que vous pouvez vous y connecter avec votre outlook de manière normal)
Premiere Etape , ajouter cette référence : using Microsoft.Exchange.WebServices.Data;
A télécharger ici si besoin : https://www.microsoft.com/en-us/download/details.aspx?id=35371
Puis voici un exemple ou je me connecter via mes crédentials à la boite mail commune test@bibliogeek.fr
string MDP=ceciestuntest; string ADRESSEMAIL=monadressemailamoi@bibliogeek.fr ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013_SP1); service.Credentials = new WebCredentials(ADRESSEMAIL, MDP); service.TraceEnabled = false; service.TraceFlags = TraceFlags.All; service.AutodiscoverUrl(ADRESSEMAIL, RedirectionUrlValidationCallback); EmailMessage email = new EmailMessage(service); FolderId SharedMailbox = new FolderId(WellKnownFolderName.Inbox, "test@bibliogeek.fr"); //Récupération des 100 derniers mails FolderView view = new FolderView(100); ItemView itemView = new ItemView(1000); view.PropertySet = new PropertySet(BasePropertySet.IdOnly); view.PropertySet.Add(FolderSchema.DisplayName); view.Traversal = FolderTraversal.Deep; Mailbox mailbox = new Mailbox("test@bibliogeek.fr"); FindFoldersResults findFolderResults = service.FindFolders(new FolderId(WellKnownFolderName.MsgFolderRoot, mailbox), view); SearchFilter filter = new SearchFilter.IsGreaterThanOrEqualTo(ItemSchema.DateTimeReceived, DateTime.Now.AddDays(-1)); //Récupération de tous les mails FindItemsResults<Item> findResults = service.FindItems(SharedMailbox, itemView); //service.FindItems(WellKnownFolderName.Inbox, filter, view); //en fonctionne du sujet du mail je fais une action , en l'occurence je le bouge dans une autre répértoire (MAIL_MOVE) foreach (Item Item in findResults) { if ( Item.Subject.Contains("premier sujet De mail à bouger'.") || Item.Subject.Contains("seconde sujet De mail à bouger") || ) { foreach (Folder f in findFolderResults) { if (f.DisplayName == "MAIL_MOVE") { var fid = f.Id; Item.Load(); Item.Move(fid); Console.WriteLine(DateTime.Now + "MOVE :"+ Item.Subject); } } }