FAQ — Aspose.Email FOSS para .NET
Licenciamento
Qual licença o Aspose.Email.Foss usa?
Licença MIT. Não é necessária chave de licença. Use livremente em projetos pessoais, comerciais e de código aberto.
Instalação
Como instalo o Aspose.Email.Foss?
dotnet add package Aspose.Email.FossQual versão do .NET é necessária?
.NET 8.0 ou posterior. A biblioteca não oferece suporte ao .NET Framework ou .NET Standard.
Existem dependências nativas?
Não. A biblioteca é totalmente gerenciada em C# sem dependências nativas. Ela funciona de forma idêntica em
Windows, Linux, macOS, Docker e ambientes sem servidor.
Suporte a Formatos
Quais formatos de e‑mail são suportados?
| Formato | Ler | Gravar |
|---|---|---|
| MSG (Outlook) | ✓ | ✓ |
| CFB (Compound File Binary) | ✓ | ✓ |
| EML (MIME / RFC 5322) | ✓ | ✓ |
Posso ler arquivos EML?
Sim. Use MapiMessage.LoadFromEml(stream) para carregar um arquivo .eml padrão em um MapiMessage.
O analisador MIME interno lida com cabeçalhos dobrados, conteúdo base64 e mensagens multipart.
Posso converter MSG para EML?
Sim. Chame message.SaveToEml() para saída byte[] em memória, ou
message.SaveToEml(stream) para gravar em um arquivo. Assunto, corpo, corpo HTML, remetente,
destinatários e todos os anexos são preservados.
O TNEF (winmail.dat) é suportado?
Não. Apenas os formatos padrão MSG (CFB) e EML (MIME) são suportados.
O IMAP/SMTP/POP3 é suportado?
Não. A biblioteca lida com arquivos MSG diretamente e não inclui nenhuma camada de rede/protocolo.
Uso da API
Como faço para carregar um arquivo MSG?
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("message.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);Como crio uma nova mensagem?
var message = MapiMessage.Create("Subject", "Body");
message.SenderEmailAddress = "alice@example.com";
message.AddRecipient("bob@example.com", "Bob");
message.Save("output.msg");Como adiciono anexos?
// From byte array
message.AddAttachment("file.pdf", pdfBytes, "application/pdf");
// From stream
using var stream = File.OpenRead("photo.png");
message.AddAttachment("photo.png", stream, "image/png");Como converto EML para MSG?
using var eml = File.OpenRead("message.eml");
var message = MapiMessage.LoadFromEml(eml);
message.Save("message.msg");Como acesso a estrutura CFB bruta?
using Aspose.Email.Foss.Cfb;
using var reader = CfbReader.FromFile("message.msg");
foreach (var entry in reader.IterChildren(CfbConstants.RootStreamId))
Console.WriteLine(entry.Name);Limitações Conhecidas
Existem métodos não implementados?
Não existem stubs intencionalmente não implementados na versão atual.
O suporte a calendário/compromisso está disponível?
A biblioteca lida com arquivos MSG de forma genérica. Propriedades específicas de calendário podem ser acessadas viaSetProperty() / GetPropertyValue() com IDs de propriedade MAPI de CommonMessagePropertyId,
mas não há API dedicada a calendário ou compromissos.
A segurança de thread é garantida?
Cada instância MapiMessage e CfbReader é independente. O acesso concorrente a instâncias separadas de threads distintas é seguro. Não compartilhe uma única instância entre threads sem sincronização externa.