C# में एटैक्ट्स के साथ कैसे काम करें

C# में एटैक्ट्स के साथ कैसे काम करें

यह गाइड दिखाता है कि कैसे जोड़ने, पढ़ने और MSG फ़ाइलों से अनुलग्नक निकालने के लिए उपयोग कर Aspose.Email FOSS for .NET. File attachments, stream attachments, embedded messages, and inline image attachments are all covered using MapiAttachment.

चरण 1 - पैकेज स्थापित करें

dotnet add package Aspose.Email.FOSS

चरण 2 - फ़ाइल एटैक्ट्स जोड़ें

using Aspose.Email.Foss.Msg;

var message = MapiMessage.Create("Report", "See attached files.");
message.SenderEmailAddress = "alice@example.com";
message.AddRecipient("bob@example.com", "Bob");

// From byte array
message.AddAttachment("report.pdf", File.ReadAllBytes("report.pdf"), "application/pdf");

// From stream
using var stream = File.OpenRead("photo.png");
message.AddAttachment("photo.png", stream, "image/png");

message.Save("with-attachments.msg");

चरण 3 - इनलाइन छवियों को जोड़ें

का उपयोग करें contentId HTML शरीर द्वारा संदर्भित एक छवि को शामिल करने के लिए पैरामीटर:

var message = MapiMessage.Create("Newsletter", "");
message.HtmlBody = "<html><body><img src=\"cid:logo123\"></body></html>";

message.AddAttachment(
    "logo.png",
    File.ReadAllBytes("logo.png"),
    "image/png",
    "logo123");  // Content-ID matches cid: in HTML

message.Save("newsletter.msg");

चरण 4 - संदेश को एक अनुलग्नक के रूप में शामिल करें

एक और एमएसजी को एक अंतर्निहित संदेश के रूप में जोड़ें:

using var inner = MapiMessage.FromFile("original.msg");

var outer = MapiMessage.Create("Forwarded", "See the attached message.");
outer.AddEmbeddedMessageAttachment(inner, "original.msg", "application/vnd.ms-outlook");
outer.Save("forwarded.msg");

चरण 5 - पढ़ने और निकालने के लिए एंटीवायरस

using var message = MapiMessage.FromFile("with-attachments.msg");

foreach (var attachment in message.Attachments)
{
    Console.WriteLine($"Name: {attachment.Filename}");
    Console.WriteLine($"MIME: {attachment.MimeType}");
    Console.WriteLine($"Size: {attachment.Data.Length} bytes");
    Console.WriteLine($"Embedded: {attachment.IsEmbeddedMessage}");
    Console.WriteLine($"Storage: {attachment.IsStorageAttachment}");

    if (attachment.IsEmbeddedMessage)
    {
        // Access the embedded message
        Console.WriteLine($"  Subject: {attachment.EmbeddedMessage!.Subject}");
    }
    else
    {
        // Save to disk
        File.WriteAllBytes(attachment.Filename!, attachment.Data);
    }
}

चरण 6 – स्ट्रीम-आधारित पढ़ाई

उपयोग करें OpenRead() बड़ी जोड़ों के लिए, स्मृति में सब कुछ लोड करने से बचने के लिये:

foreach (var attachment in message.Attachments)
{
    if (!attachment.IsEmbeddedMessage)
    {
        using var readStream = attachment.OpenRead();
        using var fileStream = File.Create(attachment.Filename!);
        readStream.CopyTo(fileStream);
    }
}

पूर्ण उदाहरण

using Aspose.Email.Foss.Msg;

// Create message with mixed attachments
var msg = MapiMessage.Create("Mixed Attachments", "Demo");
msg.SenderEmailAddress = "demo@example.com";
msg.AddRecipient("test@example.com", "Tester");

// File attachment
msg.AddAttachment("data.csv", File.ReadAllBytes("data.csv"), "text/csv");

// Embedded message
using var embedded = MapiMessage.FromFile("inner.msg");
msg.AddEmbeddedMessageAttachment(embedded, "inner.msg", "application/vnd.ms-outlook");

msg.Save("mixed.msg");
Console.WriteLine($"Attachments: {msg.Attachments.Count}"); // 2
 हिन्दी