संदेश अटैचमेंट्स का प्रबंधन
Outlook में अटैचमेंट्स का हैंडलिंग
Outlook संदेश (MSG) फ़ाइलों को बनाना और सहेजना समझाता है कि संदेशों को कैसे बनाया और सहेजा जाए, और अटैचमेंट्स के साथ MSG फ़ाइलें कैसे बनाई जाएँ। यह लेख Aspose.Email के साथ Microsoft Outlook अटैचमेंट्स को कैसे प्रबंधित किया जाए, बताता है। संदेश फ़ाइल से अटैचमेंट्स तक पहुँच प्राप्त की जाती है और उन्हें डिस्क पर सहेजा जाता है, इसके लिए उपयोग किया जाता है MapiMessage क्लास अटैचमेंट्स प्रॉपर्टी। यह अटैचमेंट्स प्रॉपर्टी प्रकार की एक कलेक्शन है MapiAttachmentCollection क्लास।
अटैचमेंट प्रकार जांचें (इनलाइन या नियमित)
इनलाइन और नियमित अटैचमेंट्स अलग-अलग उद्देश्यों की पूर्ति करते हैं। इनलाइन अटैचमेंट्स ईमेल संदेश में दृश्य रूप से एकीकृत होते हैं और सामान्यतः छवियों या मीडिया फ़ाइलों होते हैं। जबकि नियमित अटैचमेंट्स ईमेल से अलग फ़ाइलें होती हैं और विभिन्न प्रकार की फ़ाइलों को शामिल कर सकती हैं। The MapiAttachment.IsInline की प्रॉपर्टी MapiAttachment क्लास एक मान प्राप्त करता है जो यह दर्शाता है कि अटैचमेंट इनलाइन है या सामान्य।
निम्नलिखित कोड नमूना लोडेड MapiMessage में प्रत्येक अटैचमेंट की जानकारी निकालता और प्रदर्शित करता है, जिसमें उनके डिस्प्ले नाम और यह कि वे इनलाइन अटैचमेंट हैं या नहीं, शामिल है।
var message = MapiMessage.Load(fileName);
foreach (var attach in message.Attachments)
{
Console.WriteLine($"{attach.DisplayName0} : {attach.IsInline)}");
}
अटैचमेंट प्रकार जांचें (IsReference)
यह MapiAttachment कक्षा में शामिल है IsReference प्रॉपर्टी जो डेवलपर्स को संदेश में रेफ़रेंस अटैचमेंट पहचानने की सुविधा देता है। निम्नलिखित कोड नमूने के साथ, आप जांच सकते हैं कि अटैचमेंट रेफ़रेंस अटैचमेंट है या नहीं:
foreach (var attachment in msg.Attachments)
{
if (attachment.IsReference)
{
// Process reference attachment
}
}
MSG फ़ाइलों से अटैचमेंट्स सहेजें
MSG फ़ाइल से अटैचमेंट्स सहेजने के लिए:
- परिचालित करें MapiAttachmentCollection कलेक्शन और व्यक्तिगत अटैचमेंट्स प्राप्त करें।
- अटैचमेंट को सहेजने के लिए, MapiAttachment क्लास की Save() मेथड को कॉल करें।
निम्नलिखित कोड स्निपेट दर्शाता है कि अटैचमेंट्स को स्थानीय डिस्क पर कैसे सहेजा जाए।
RTF-फ़ॉर्मैटेड MSG फ़ाइलों से अटैचमेंट निकालें
RTF के रूप में फ़ॉर्मैट किए गए संदेशों के लिए, निम्नलिखित कोड का उपयोग इनलाइन या संदेश बॉडी में आइकन के रूप में दिखाई देने वाले अटैचमेंट्स को अलग करने और निकालने के लिए किया जा सकता है। निम्नलिखित कोड स्निपेट दर्शाता है कि कैसे MSG (जो RTF में फ़ॉर्मैट किया गया है) से एम्बेडेड अटैचमेंट की पहचान और निष्कर्षण किया जाए।
var eml = MapiMessage.Load("MSG file with RTF Formatting.msg");
foreach (var attachment in eml.Attachments)
{
if (IsAttachmentInline(attachment))
{
try
{
SaveAttachment(attachment, Data.Out/new Guid().ToString());
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
static bool IsAttachmentInline(MapiAttachment attachment)
{
foreach (var property in attachment.ObjectData.Properties.Values)
{
if (property.Name == "\x0003ObjInfo")
{
var odtPersist1 = BitConverter.ToUInt16(property.Data, 0);
return (odtPersist1 & (1 << (7 - 1))) == 0;
}
}
return false;
}
static void SaveAttachment(MapiAttachment attachment, string fileName)
{
foreach (var property in attachment.ObjectData.Properties.Values)
{
if (property.Name == "Package")
{
using var fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);
fs.Write(property.Data, 0, property.Data.Length);
}
}
}
नेस्टेड मेल संदेश अटैचमेंट्स प्राप्त करें
एम्बेडेड OLE अटैचमेंट्स भी यहाँ प्रकट होते हैं MapiMessage क्लास अटैचमेंट कलेक्शन। निम्नलिखित कोड उदाहरण एम्बेडेड संदेश अटैचमेंट्स के लिए संदेश फ़ाइल को पार्स करता है और इसे डिस्क पर सहेजता है। The MapiMessage क्लास FromProperties() की स्टेटिक मेथड एम्बेडेड अटैचमेंट से नया संदेश बना सकती है। निम्नलिखित कोड स्निपेट दर्शाता है कि नेस्टेड मेल संदेश अटैचमेंट्स को कैसे प्राप्त किया जाए।
अटैचमेंट्स हटाएँ
Aspose Outlook लाइब्रेरी Microsoft Outlook Message (.msg) फ़ाइलों से अटैचमेंट हटाने की कार्यक्षमता प्रदान करती है:
- RemoveAttachments() मेथड को कॉल करें। यह संदेश फ़ाइल का पाथ पैरामीटर के रूप में लेता है। यह एक पब्लिक स्टैटिक मेथड के रूप में कार्यान्वित है, इसलिए आपको ऑब्जेक्ट को इंस्टैंशिएट करने की जरूरत नहीं है।
निम्नलिखित कोड स्निपेट आपको दिखाता है कि अटैचमेंट कैसे हटाए जाएँ।
आप भी कॉल कर सकते हैं MapiMessage क्लास स्टेटिक मेथड DestroyAttachment(). यह RemoveAttachment() से तेज़ काम करता है, क्योंकि RemoveAttachment() मेथड संदेश फ़ाइल को पार्स करता है।
MSG अटैचमेंट्स जोड़ें
एक Outlook संदेश में अन्य Microsoft Outlook संदेश अटैचमेंट के रूप में नियमित या एम्बेडेड संदेशों के रूप में हो सकते हैं। The MapiAttachmentCollection Add मेथड के ओवरलोडेड सदस्य प्रदान करता है जिससे दोनों प्रकार के अटैचमेंट वाले Outlook संदेश बनाए जा सकते हैं।
Try it out!
नि:शुल्क के साथ ईमेल अटैचमेंट्स जोड़ें या हटाएँ Aspose.Email Editor App.
MapiMessages में रेफ़रेंस अटैचमेंट्स जोड़ें
यह ReferenceAttachmentOptions क्लास सभी आवश्यक प्रॉपर्टीज़ को एक ही ऑब्जेक्ट में संलग्न करके रेफ़रेंस अटैचमेंट्स को जोड़ना सरल बनाती है।
ReferenceAttachmentOptions के पैरामीटर:
- sharedLink: फ़ाइल होस्ट करने वाली वेब सर्विस द्वारा प्रदान किया गया पूर्ण रूप से योग्य साझा लिंक।
- url: फ़ाइल स्थान या संसाधन URL。
- providerName: रेफ़रेंस अटैचमेंट प्रदाता का नाम (जैसे, Google Drive, Dropbox)।
- उदाहरण: ReferenceAttachmentOptions के साथ रेफ़रेंस अटैचमेंट जोड़ना
var options = new ReferenceAttachmentOptions(
"https://drive.google.com/file/d/1HJ-M3F2qq1oRrTZ2GZhUdErJNy2CT3DF/",
"https://drive.google.com/drive/my-drive",
"GoogleDrive");
// Add reference attachment
msg.Attachments.Add("Document.pdf", options);
संदेशों को अटैचमेंट्स के रूप में एम्बेड करें
निम्नलिखित कोड स्निपेट दर्शाता है कि MSG फ़ाइल अटैचमेंट को संदेश में कैसे एम्बेड किया जाए।
अटैचमेंट्स से एम्बेडेड संदेश पढ़ें
निम्न कोड स्निपेट दिखाता है कि अटैचमेंट्स से एम्बेडेड संदेश कैसे पढ़ें।
अटैचमेंट डालना और बदलना
Aspose.Email API एक विशिष्ट इंडेक्स पर पैरेंट संदेश में अटैचमेंट डालने की क्षमता देता है। यह अटैचमेंट की सामग्री को दूसरे संदेश अटैचमेंट से बदलने की सुविधा भी देता है।
Try it out!
चलाएँ ReplaceAttach सरल ऐप प्रोजेक्ट, और Aspose.Email की क्षमताओं को आज़माएँ ताकि व्यावहारिक रूप से अटैचमेंट्स को बदल सकें।
विशिष्ट स्थानों पर अटैचमेंट्स डालें
Aspose.Email API के पास MapiAttachmentCollection की Insert मेथड (MapiAttachmentCollection Insert(int index, string name, MapiMessage msg)) का उपयोग करके एक पैरेंट MSG में MSG अटैचमेंट डालने की क्षमता है। निम्नलिखित कोड स्निपेट दर्शाता है कि कैसे एक अटैचमेंट को विशिष्ट स्थान पर डाला जाए।
अटैचमेंट सामग्री प्रतिस्थापित करें
यह Replace मेथड का उपयोग करके एम्बेडेड अटैचमेंट सामग्री को नई सामग्री से बदलने के लिए उपयोग किया जा सकता है। हालांकि, इसे PR_ATTACH_NUM = 4 (उदाहरण के लिए) वाले अटैचमेंट को collection.Count = 2 वाली कलेक्शन में डालने के लिए उपयोग नहीं किया जा सकता। नीचे दिया गया कोड स्निपेट आपको दिखाता है कि अटैचमेंट सामग्री कैसे बदली जाए।
MapiMessage में अटैचमेंट्स का नाम बदलें
MapiMessage अटैचमेंट्स में DisplayName प्रॉपर्टी वैल्यू को संपादित करना संभव है।
var msg = MapiMessage.Load(fileName);
msg.Attachments[0].DisplayName = "New display name 1";
msg.Attachments[1].DisplayName = "New display name 2";
डिजिटल रूप से साइन किए गए संदेशों से अटैचमेंट्स सहेजें
Aspose.Email API वह क्षमता प्रदान करता है जिससे आप यह मान प्राप्त या सेट कर सकते हैं कि क्लियर-साइन किए गए संदेश को डिकोड किया जाएगा या नहीं।