Export Standaard / Extended Gebruiker Greetings (Exchange 2016) - Voor Gebruik In XMedius AVST

stemmen
0

In een eerdere post op 18 juni 2018 (mijn verjaardag BTW), een gebruiker gevraagd Hopelijk een eenvoudige vraag - op een bepaald moment weet ik wanneer de gebruiker hun persoonlijke wensen voor UM voicemail is opgenomen in o365 (regelmatige groet en / of begroeting bij langdurige afwezigheid) die werden opgeslagen in hun Exchange-inbox met behulp van een speciaal item type (dat wil zeggen IPM.Configuration . .Um.CustomGreetings.External ') Maar het opzetten van mijn test o365 setup, het krijgen van UM geconfigureerd en dat alles, na het opnemen van mijn persoonlijke begroeting en gaan door elk item vanaf de wortel van mijn inbox, (sommige meer dan 900 items - veel oneven spullen in er) - ik zie niets als dit niet meer Lots of log, activiteit items, sommige berichten maar niets over groeten extraheren van alles wat er om een ​​e-type zou kunnen werpen naar een map ik ging door een ieder -.. niets veelbelovende iedereen enkele aanwijzing waar de douanegroeten voor gebruikers UM (niet auto attendant opnamen te maken - dat is een ander beest) te hebben.? is gegaan en hoe er te komen Na het lezen door middel van de antwoorden, evenals de code die werd verstrekt door Jeff Lindborg, dacht ik dat ik ergens. Met veel vallen en opstaan, was ik eindelijk in staat om de EWS-FAI module is geïnstalleerd, en de Exchange Web Services API te krijgen. Helaas, als het ging om het uitvoeren van de code in, dit is waar ik ben stumped. Ik ben geen ontwikkelaar of 'coder' in welke vorm dan ook, maar ik ben altijd op zoek naar een effectieve en efficiënte methoden om mijn werk te doen. Dat gezegd zijnde, ik probeer dit draaien op een Win10 werkstation, maar kan niet lijken te achterhalen welke programma deze behoeften te lopen binnen. Ik heb geprobeerd Powershell, maar dat werkt niet. Ik heb toegang tot de benodigde accounts voor mailbox imitatie evenals alle andere toestemmingen nodig. Ik heb de code die oorspronkelijk werd geleverd voor beoordeling verstrekt. Eventuele extra hulp zou zeer gewaardeerd worden.

Code

ExchangeService _service;
        _service = new ExchangeService(ExchangeVersion.Exchange2016); // Exchange2013_SP1);
        _service.Credentials = new WebCredentials(user@domain, myPw);
        _service.Url = new Uri(https://outlook.office365.com/EWS/Exchange.asmx);

        //select the user you're fetching greetings for
        _service.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, user@domain);

        //get the root folder for the current account
        var oParamList = new List<FolderId> {WellKnownFolderName.Root};
        var oTemp = _service.BindToFolders(oParamList, PropertySet.FirstClassProperties);
        var oRoot = oTemp.First().Folder;

        var oView = new ItemView(50)
        {
            PropertySet = new PropertySet(BasePropertySet.FirstClassProperties),
            Traversal = ItemTraversal.Associated
        };
        SearchFilter oGreetingFilter = new SearchFilter.ContainsSubstring(ItemSchema.ItemClass,
            IPM.Configuration.Um.CustomGreetings, ContainmentMode.Substring, ComparisonMode.IgnoreCase);
        var oResults = _service.FindItems(oRoot.Id, oGreetingFilter, oView);

        //fetch the binary for the greetings as values 
        var oPropSet = new PropertySet(BasePropertySet.FirstClassProperties);
        var oRoamingBinary = new ExtendedPropertyDefinition(31753, MapiPropertyType.Binary);
        oPropSet.Add(oRoamingBinary);
        _service.LoadPropertiesForItems(oResults, oPropSet);

        var strFileName = ;
        foreach (var oItem in oResults.Items)
        {
            if (oItem.ItemClass.Equals(IPM.Configuration.Um.CustomGreetings.External,
                StringComparison.InvariantCultureIgnoreCase))
                strFileName = jlindborg_Standard.wav;
            if (oItem.ItemClass.Equals(IPM.Configuration.Um.CustomGreetings.Oof,
                StringComparison.InvariantCultureIgnoreCase))
                strFileName = jlindborg_Extended.wav;
            File.WriteAllBytes(d:\\ + strFileName, (byte[]) oItem.ExtendedProperties.First().Value);
        }
    }
De vraag is gesteld op 02/12/2019 om 23:58
bron van user
In andere talen...                            


1 antwoorden

stemmen
0

De code die u op de hoogte is C #, zodat je nodig zou hebben om Visual Studio gebruiken om een ​​C # applicatie een verwijzing toe te voegen aan de EWS Managed API en compileren die voor het aan het werk (die je nodig hebt om een ​​ontwikkelaar te nemen of te leren een aantal fundamentele codering).

EWS-FAI is een powershell module moet in staat zijn om dat item terug te keren en je moet in staat zijn om te schrijven dat naar een bestand bijvoorbeeld iets als

   $MailboxName = "mailbox@domain.com" 
   $Item = Get-FAIItem -MailboxName $MailboxName -ConfigItemName Um.CustomGreetings.External -Folder Inbox -ReturnConfigObject
   [System.IO.File]::WriteAllBytes(("C:\temp\" + $MailboxName + ".wav"),$Item.BinaryData)
antwoordde op 03/12/2019 om 23:06
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more