FAQ — Aspose.Email FOSS dla .NET
Licencjonowanie
Jaką licencję używa Aspose.Email.Foss?
Licencja MIT. Nie wymaga klucza licencyjnego. Używaj swobodnie w projektach osobistych, komercyjnych i open-source.
Instalacja
Jak zainstalować Aspose.Email.Foss?
dotnet add package Aspose.Email.FossJaka wersja .NET jest wymagana?
.NET 8.0 lub nowszy. Biblioteka nie obsługuje .NET Framework ani .NET Standard.
Czy istnieją natywne zależności?
Nie. Biblioteka jest czystym zarządzanym C# bez natywnych zależności. Działa identycznie na Windows, Linux, macOS, Docker i w środowiskach serverless.
Obsługa formatów
Jakie formaty e‑mail są obsługiwane?
| Format | Odczyt | Zapis |
|---|---|---|
| MSG (Outlook) | ✓ | ✓ |
| CFB (Compound File Binary) | ✓ | ✓ |
| EML (MIME / RFC 5322) | ✓ | ✓ |
Czy mogę odczytać pliki EML?
Tak. Użyj MapiMessage.LoadFromEml(stream), aby załadować standardowy plik .eml do MapiMessage.
Wbudowany parser MIME obsługuje składane nagłówki, zawartość base64 oraz wiadomości multipart.
Czy mogę konwertować MSG na EML?
Tak. Wywołaj message.SaveToEml() dla wyjścia byte[] w pamięci, lubmessage.SaveToEml(stream), aby zapisać do pliku. Temat, treść, treść HTML, nadawca,
odbiorcy i wszystkie załączniki są zachowane.
Czy TNEF (winmail.dat) jest obsługiwany?
Nie. Obsługiwane są wyłącznie standardowe formaty MSG (CFB) i EML (MIME).
Czy obsługiwane są IMAP/SMTP/POP3?
Nie. Biblioteka obsługuje pliki MSG bezpośrednio i nie zawiera żadnej warstwy sieciowej/protokolowej.
Użycie API
Jak załadować plik MSG?
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("message.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);Jak utworzyć nową wiadomość?
var message = MapiMessage.Create("Subject", "Body");
message.SenderEmailAddress = "alice@example.com";
message.AddRecipient("bob@example.com", "Bob");
message.Save("output.msg");Jak dodać załączniki?
// 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");Jak przekonwertować EML na MSG?
using var eml = File.OpenRead("message.eml");
var message = MapiMessage.LoadFromEml(eml);
message.Save("message.msg");Jak uzyskać dostęp do surowej struktury CFB?
using Aspose.Email.Foss.Cfb;
using var reader = CfbReader.FromFile("message.msg");
foreach (var entry in reader.IterChildren(CfbConstants.RootStreamId))
Console.WriteLine(entry.Name);Znane ograniczenia
Czy istnieją niezaimplementowane metody?
W bieżącej wersji nie istnieją celowo niezaimplementowane szkielety.
Czy dostępna jest obsługa kalendarza/spotkań?
Biblioteka obsługuje pliki MSG w sposób ogólny. Właściwości specyficzne dla kalendarza można uzyskać za pomocą SetProperty() / GetPropertyValue() z identyfikatorami właściwości MAPI z CommonMessagePropertyId, ale nie ma dedykowanego interfejsu API kalendarza ani spotkań.
Czy bezpieczeństwo wątków jest gwarantowane?
Każda instancja MapiMessage i CfbReader jest niezależna. Jednoczesny dostęp do oddzielnych instancji z różnych wątków jest bezpieczny. Nie udostępniaj jednej instancji między wątkami bez zewnętrznej synchronizacji.