Perguntas Frequentes
Pergunta
Oi! para o código a seguir:
Aspose.Email.Mime.ContentType ct = new Aspose.Email.Mime.ContentType();
ct.MediaType = "application/msword";
ct.CharSet = "ISO-2022-JP";
Attachment att = new Attachment("Test.doc", ct);
Console.WriteLine(att.ContentType.Name);
att.ContentType.Name retorna o nome do documento anexado. Isso é um comportamento esperado?
Resposta: Sim, é um comportamento esperado. Se ContentType.Name não for definido explicitamente, o valor do nome do arquivo será usado como nome.
Pergunta:
Por que o ExchangeWebServiceClient.FetchMessage transforma as imagens incorporadas em anexos?
Resposta: Microsoft Exchange Server tem tal funcionalidade como ‘Conversão de Conteúdo, que é o processo de formatar corretamente uma mensagem para cada destinatário. A decisão de realizar a conversão de conteúdo em uma mensagem depende do destino e do formato da mensagem que está sendo processada.
Em outras palavras, para clientes desconhecidos, o servidor pode formatar a mensagem de acordo com as configurações do servidor (para selecionar o formato de mensagem mais adequado). Como você entende, o formato mais universal para qualquer cliente é ’text/plain’ e essas configurações são configuráveis no servidor.
Observação: Outlook é um cliente de e‑mail bem conhecido para Microsoft Exchange Server (no caso de o MS Outlook ter uma versão mais antiga que o servidor). Isso significa que o Exchange Server adapta o formato da mensagem de acordo com as capacidades do Outlook. No nosso caso, quando o ExchangeWebServiceClient tenta recuperar a mensagem, as capacidades dos nossos componentes são desconhecidas para o MS Exchange. O servidor envia a mensagem aos componentes no formato mais simples (text/plain). Em outras palavras, não há partes html na resposta do servidor. Nessa situação, as imagens são incluídas na mensagem como anexos.
Existe uma forma de evitar o problema descrito. Se a mensagem no servidor tem Content-Type: multipart/alternative e uma de suas partes é text/plain, nesse caso a mensagem é passada ao cliente como está. As imagens, nesse caso, são mostradas no corpo da mensagem porque a mensagem também contém a parte html. No cenário atual, a mensagem é adicionada ao MS Exchange com a ajuda do MS Outlook e, como resultado, o Content-Type da mensagem não é ‘multipart/alternative’. Como resultado temos um problema ao tentar buscar a mensagem. Por exemplo, aqui estão exemplos de problemas semelhantes: um (http://support.risualblogs.com/blog/2011/02/24/html-mails-sent-via-owa-and-outlook-2011-are-received-as-plain-text-mails-externally/), dois (http://forums.mozillazine.org/viewtopic.php?f=39&t=628678), três (http://stackoverflow.com/questions/4681798/how-do-i-send-html-multipart-alternative-from-exchange-web-services-2010-sp1). Como conclusão, a situação descrita na issue (imagens incluídas na mensagem como anexos) não é um bug dos componentes Aspose. É uma característica específica do servidor Exchange.
Pergunta: Como extraio dados do anexo "oleData.mso" que recebo como resultado da leitura de um MapiMessage que tem um objeto OLE incorporado?
Resposta: Arquivos como "oleData.mso" referem-se ao formato Microsoft Compound Document (MCDF) e, infelizmente, o suporte a esses arquivos está além do escopo do Aspose.Email. No entanto, existem algumas bibliotecas .NET de código aberto, como OpenMCDF, que podem ser usadas para ler o conteúdo desses arquivos e salvá-los em disco.
Pergunta: Podemos escrever no mesmo arquivo PST em threads paralelas usando os mesmos objetos?
Resposta: Não, a segurança de thread não é garantida nesse caso. A gravação de mensagens deve ser feita em uma única thread. Contudo, o produto deve funcionar corretamente com objetos diferentes de diferentes threads.