Giriş
Aspose.Email FOSS for .NET, Outlook MSG dosyaları, Compound File Binary (CFB) kapsayıcıları ve EML mesajlarıyla doğrudan .NET uygulamanızda çalışmanızı sağlayan ücretsiz, açık kaynaklı bir C# kütüphanesidir — Microsoft Outlook gerekmez, COM interop gerekmez ve yerel kütüphaneler gerekmez. Tek bir NuGet paketi olarak dağıtın ve Windows, Linux, macOS, Docker kapsayıcıları ve sunucusuz işlevlerde aynı şekilde çalışır.
Kütüphane, kurumsal ve entegrasyon çalışmalarında tekrarlanan bir sorunu çözüyor: Outlook .msg dosyaları
milyonlarca iş kullanıcısı tarafından üretiliyor, ancak bunları Outlook olmadan ayrıştırmak tarihsel olarak COM otomasyonu veya pahalı ticari kütüphaneler gerektiriyordu. Aspose.Email FOSS for .NET, MSG, temel CFB ikili konteyneri ve EML/MIME formatı için tam okuma/yazma desteği sağlar — tümü MIT lisansı altında, kullanım kısıtlaması olmadan.
E-posta arşivleme hattı, bir taşıma aracı, bir ek çıkarıcı,
ya da otomatik bir MSG oluşturucu oluşturuyor olsanız da, bu kütüphane size e-posta formatının her baytına doğrudan, düşük seviyeli erişim sağlar
ve dakikalar içinde başlamanızı sağlayan yüksek seviyeli MapiMessage API’siyle birlikte gelir.
Temel Özellikler
Outlook MSG Dosyalarını Oku
.msg dosyasını bir yol veya akıştan MsgReader.FromFile() veya MsgReader.FromStream() ile açın.
Tam MAPI özellik akışına, alıcı kayıtlarına ve ek alt depolarına ham bayt seviyesinde MsgStorage ve MsgStream aracılığıyla erişin.
using System.IO;
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("sample.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);
Sıfırdan MSG Dosyaları Oluştur
MapiMessage.Create() kullanarak programlı bir şekilde tam bir e-posta oluşturun. Konuyu, düz metin
gövdesini, HTML gövdesini, gönderici adını, gönderici e-posta adresini, teslim zamanını ve internet mesaj kimliğini ayarlayın, ardından
AddRecipient() ile alıcıları ve AddAttachment() ile ekleri ekleyin. message.Save() ile serileştirin.
using System.IO;
using Aspose.Email.Foss.Msg;
var message = MapiMessage.Create("Hello", "Body");
message.SenderName = "Alice";
message.SenderEmailAddress = "alice@example.com";
message.AddRecipient("bob@example.com", "Bob");
using var attachmentStream = new MemoryStream("abc"u8.ToArray());
message.AddAttachment("note.txt", attachmentStream, "text/plain");
using var output = File.Create("hello.msg");
message.Save(output);
EML’yi MSG’ye Dönüştür (ve Geri)
Standart bir RFC 5322 .eml dosyasını MapiMessage içine MapiMessage.LoadFromEml() ile yükleyin,
daha sonra Outlook .msg dosyası olarak kaydedin — ya da işlemi MapiMessage.SaveToEml() ile tersine çevirin.
Yerleşik MIME ayrıştırıcısı, konu, gövde, HTML gövde, gönderici, alıcılar ve ekleri
tam EML ↔ MSG dönüşümleri sırasında korur.
using System.IO;
using Aspose.Email.Foss.Msg;
using var input = File.OpenRead("message.eml");
var message = MapiMessage.LoadFromEml(input);
using var msgOutput = File.Create("message.msg");
message.Save(msgOutput);
using var emlOutput = File.Create("roundtrip.eml");
message.SaveToEml(emlOutput);
Düşük Seviyeli CFB Kapsayıcı Erişimi
Outlook MSG dosyaları, bir dosya sistemine benzer hiyerarşik ikili bir kapsayıcı olan Compound File Binary (CFB) formatı üzerine inşa edilmiştir. CfbReader tam dizin ağacını ortaya çıkarır: IterStorages(), IterStreams() ve IterChildren() ile depolamaları ve akışları yineleyin, ResolvePath() ile belirli girişlere yol üzerinden gidin ve GetStreamData() ile ham akış baytlarını okuyun.
CfbWriter, sıfırdan bir CFB belgesi oluşturmanıza ve serileştirmenize olanak tanır. Bir CfbDocument oluşturun, CfbStorage ve CfbStream düğümlerini ekleyin ve serileştirmek için CfbWriter.ToBytes() veya CfbWriter.WriteFile()‘yi çağırın.
MAPI Özelliği ve Ek Erişimi
MapiPropertyCollection sınıfı, herhangi bir MSG veya depolama nesnesi için tiplenmiş MAPI özelliği erişimi sağlar: standart CommonMessagePropertyId veya PropertyTypeCode enum değerleriyle Get(), Set(), Add() ve Remove() kullanın. MapiAttachment özellikleri aracılığıyla ek meta verilerine ve ikili verilere erişin: Filename, MimeType, ContentId ve Data.
Hızlı Başlangıç
Paketi yükleyin:
dotnet add package Aspose.Email.Foss
Bir MSG dosyasından konuyu okuyun:
using System.IO;
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("sample.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);
Console.WriteLine(message.SenderEmailAddress);
foreach (var recipient in message.Recipients)
Console.WriteLine($"To: {recipient.EmailAddress}");
foreach (var attachment in message.Attachments)
Console.WriteLine($"Attachment: {attachment.Filename} ({attachment.MimeType})");
Desteklenen Formatlar
| Biçim | Uzantı | Okuma | Yazma |
|---|---|---|---|
| Compound File Binary | .cfb | ✓ | ✓ |
| Outlook Message | .msg | ✓ | ✓ |
| MIME / EML | .eml | ✓ | ✓ |
Açık Kaynak ve Lisanslama
Aspose.Email FOSS for .NET MIT lisansı altında yayınlanmıştır. Bunu kişisel, ticari ve açık kaynak projelerinde kullanım kısıtlaması olmaksızın özgürce kullanabilirsiniz. Kaynak kodu şu adreste mevcuttur github.com/aspose-email-foss/Aspose.Email-FOSS-for-.Net.