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);
}
}