Padrão da exportação / saudações do usuário estendidas (Exchange 2016) - para uso em XMedius AVST

votos
0

Em um post anterior em 18 de junho, 2018 (meu aniversário BTW), um usuário perguntou Esperamos uma pergunta simples - ao mesmo tempo eu sei quando o usuário está registrado suas saudações pessoais para UM voicemail em O365 (saudação regular e / ou ausência prolongada cumprimento) estes foram armazenados em sua caixa de entrada do Exchange, usando um tipo de item especial (ou seja, IPM.Configuration . .Um.CustomGreetings.External ) no entanto a criação de meu configuração de teste O365, ficando UM configurado e todos os que, depois de gravar a minha saudação pessoal e passar por cada item a partir da raiz da minha caixa de entrada, (alguns 900+ itens - muitas material estranho lá dentro) - eu não vejo nada assim mais Lotes de log, itens de atividade, algumas mensagens, mas nada sobre saudações Extrair tudo o que poderia lançar a um tipo de e-mail para uma pasta que eu passei cada um -.. nada prometendo alguém tem alguma pista onde as saudações personalizadas para usuários de uM (não auto gravações de atendimento - que é um animal diferente).? tem ido para e como chegar a ele Depois de ler as respostas, bem como o código que foi fornecido por Jeff Lindborg, eu pensei que eu estava chegando a algum lugar. Com um monte de tentativa e erro, eu finalmente foi capaz de obter o módulo EWS-FAI instalado, bem como a API de Serviços Web Exchange. Infelizmente, quando ele veio para executar o código fornecido, este é onde eu estou perplexo. Eu não sou um desenvolvedor ou 'codificador' em qualquer forma, mas eu estou sempre à procura de métodos eficazes e eficientes para fazer o meu trabalho. Com isso dito, eu estou tentando executar isso em uma estação de trabalho Win10, mas não consigo descobrir qual o programa esta precisa ser executado dentro. Eu tentei Powershell, mas que não funciona. Eu tenho acesso às contas necessárias para a representação caixa de correio, bem como quaisquer outras permissões necessárias. Eu forneci o código que foi originalmente fornecido para revisão. Qualquer ajuda adicional seria muito apreciada.

Código

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);
        }
    }
Publicado 02/12/2019 em 23:58
fonte usuário
Em outras línguas...                            


1 respostas

votos
0

O código que você postou é c # para que você precisaria usar Visual Studio para criar um # aplicativo C adicionar uma referência para o EWS Managed API e compilar que para que ele funcione (você vai precisar de contratar um desenvolvedor ou aprender codificação de alguns básicos).

EWS-FAI é um módulo PowerShell deve ser capaz de retornar esse item e você deve ser capaz de escrever que, para um arquivo por exemplo, algo como

   $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)
Respondeu 03/12/2019 em 23:06
fonte usuário

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