Outlook फ़ाइलें बनाना और सहेजना
Aspose.Email Outlook संदेश (MSG) फ़ाइलें बनाने का समर्थन करता है। यह लेख समझाता है कि कैसे:
- Outlook संदेश बनाएं और सहेजें
- संलग्नकों के साथ MSG फ़ाइलें बनाएं
- RTF बॉडी के साथ MSG फ़ाइलें बनाएं
- संदेश को ड्राफ्ट स्थिति में सहेजें
Outlook संदेश बनाएं और सहेजें
यह MailMessage क्लास में है Save() विधि जो Outlook MSG फ़ाइलों को डिस्क या स्ट्रीम में सहेज सकती है। नीचे दिया गया कोड स्निपेट इस क्लास का एक उदाहरण बनाता है MailMessage क्लास, from, to, subject और body जैसी प्रॉपर्टीज़ सेट करें। यह Save() विधि फ़ाइल नाम को एक तर्क के रूप में लेती है। इसके अलावा, Outlook संदेशों को एक संपीड़ित RTF बॉडी के उपयोग से MapiConversionOptions.
- एक नया उदाहरण बनाएं MailMessage क्लास का और From, To, Subject तथा Body प्रॉपर्टीज़ सेट करे।
- कॉल करें MapiMessage क्लास FromMailMessage विधि जो ऑब्जेक्ट लेती है MailMessage टाइप। यह FromMailMessage विधि परिवर्तित करती है MailMessage में एक MapiMessage (MSG).
- कॉल करें MapiMessage.Save() MSG फ़ाइल को सहेजने की विधि।
Windows एप्लिकेशन के बटन कंट्रोल की क्लिक इवेंट में निम्नलिखित कोड लिखें।
// Create an instance of the MailMessage class
MailMessage mailMsg = new MailMessage();
// Set from, to, subject and body properties
mailMsg.From = "sender@domain.com";
mailMsg.To = "receiver@domain.com";
mailMsg.Subject = "This is test message";
mailMsg.Body = "This is test body";
// Create an instance of the MapiMessage class and pass MailMessage as argument
MapiMessage outlookMsg = MapiMessage.FromMailMessage(mailMsg);
// Save the message (MSG) file
string strMsgFile = @"CreatingAndSavingOutlookMessages_out.msg";
outlookMsg.Save(dataDir + strMsgFile);
संलग्नकों के साथ MSG फ़ाइलें बनाएं
उपरोक्त उदाहरण में, हमने एक सरल MSG फ़ाइल बनाई। Aspose.Email अटैचमेंट वाले संदेश फ़ाइलों को सहेजने का भी समर्थन करता है। आपको केवल अटैचमेंट को MailMessage इंस्टेंस। Add() मेथड को कॉल करके संलग्नक जोड़ें MailMessage.Attachments संग्रह। ऊपर बनाए गए फ़ॉर्म में एक लिस्टबॉक्स जोड़ें और दो बटन जोड़ें, एक अटैचमेंट जोड़ने के लिए और दूसरा हटाने के लिए। अटैचमेंट जोड़ने वाला एप्लिकेशन इस प्रकार काम करता है:
- जब Add Attachment बटन क्लिक किया जाता है, तो उपयोगकर्ताओं को अटैचमेंट ब्राउज़ और चुनने में मदद करने के लिए एक Open File Dialog दिखाया जाता है।
- जब कोई फ़ाइल चयनित की जाती है, तो पूर्ण पाथ को सूची में जोड़ा जाता है।
- जब MSG फ़ाइल बनाई जाती है, तो संलग्नक पाथ सूची से प्राप्त होकर संग्रह में जोड़े जाते हैं। MailMessage.Attachments संग्रह।
Add Attachment बटन के क्लिक इवेंट में निम्नलिखित कोड लिखें।
// Open a file open dialog to select the attachment
OpenFileDialog fd = new OpenFileDialog();
// If user selected the file and clicked OK, add the file name and path to the list
if (fd.ShowDialog() == DialogResult.OK)
{
lstAttachments.Items.Add(fd.FileName);
}
जब Remove Attachment बटन क्लिक किया जाता है, तो चयनित आइटम लिस्टबॉक्स से हटाएँ। Remove Attachment बटन के क्लिक इवेंट में निम्नलिखित कोड लिखें।
// Check if the user has selected any item in the attachments listbox
if (lstAttachments.SelectedItems.Count > 0)
{
// Remove the selected attachment from the listbox
lstAttachments.Items.RemoveAt(lstAttachments.SelectedIndex);
}
संलग्नक जोड़ने के कोड को … में जोड़ें MailMessage इंस्टेंस। Write Msg फ़ंक्शन का अंतिम कोड नीचे दिया गया है।
// File name for output MSG file
string strMsgFile;
// Open a save file dialog for saving the file and Add filter for msg files
SaveFileDialog fd = new SaveFileDialog();
fd.Filter = "Outlook Message files (*.msg)|*.msg|All files (*.*)|*.*";
// If user pressed OK, save the file name + path
if (fd.ShowDialog() == DialogResult.OK)
{
strMsgFile = fd.FileName;
}
else
{
// If user did not selected the file, return
return;
}
// Create an instance of MailMessage class
MailMessage mailMsg = new MailMessage();
// Set from, to, subject and body properties
mailMsg.From = txtFrom.Text;
mailMsg.To = txtTo.Text;
mailMsg.Subject = txtSubject.Text;
mailMsg.Body = txtBody.Text;
// Add the attachments
foreach (string strFileName in lstAttachments.Items)
{
mailMsg.Attachments.Add(new Attachment(strFileName));
}
// Create an instance of MapiMessage class and pass MailMessage as argument
MapiMessage outlookMsg = MapiMessage.FromMailMessage(mailMsg);
outlookMsg.Save(strMsgFile);
RTF बॉडी के साथ MSG फ़ाइल बनाएं
आप Aspose.Email के साथ रिच टेक्स्ट (RTF) बॉडी वाली Outlook Message (MSG) फ़ाइलें भी बना सकते हैं। RTF बॉडी टेक्स्ट फ़ॉर्मेटिंग को समर्थन देती है। इसे बनाने के लिए सेट करें MailMessage.HtmlBody प्रॉपर्टी में। जब आप एक MailMessage उदाहरण को एक MapiMessage उदाहरण में, HTML बॉडी को RTF में परिवर्तित किया जाता है। इस तरह, ईमेल बॉडी की फ़ॉर्मेटिंग संरक्षित रहती है।
निम्न उदाहरण एक RTF बॉडी वाली MSG फ़ाइल बनाता है। HTML बॉडी में एक हेडिंग, बोल्ड और अंडरलाइन फ़ॉर्मेटिंग लागू है। जब HTML को RTF में बदलते हैं तो यह फ़ॉर्मेटिंग बरकरार रहती है।
// Create an instance of the MailMessage class
MailMessage mailMsg = new MailMessage();
// Set from, to, subject and body properties
mailMsg.From = "from@domain.com";
mailMsg.To = "to@domain.com";
mailMsg.Subject = "subject";
mailMsg.HtmlBody = "<h3>rtf example</h3><p>creating an <b><u>outlook message (msg)</u></b> file using Aspose.Email.</p>";
MapiMessage outlookMsg = MapiMessage.FromMailMessage(mailMsg);
outlookMsg.Save(dataDir + "CreatingMSGFilesWithRTFBody_out.msg");
MAPI संदेश बॉडी के लिए RTF संपीड़न
ध्यान दें: संपीड़न प्रक्रिया संदेश बनाते समय प्रदर्शन को धीमा कर सकती है। इस तथ्य को समझकर और फ़ाइल आकार एवं प्रदर्शन के बीच समझौते के आधार पर संपीड़न फ़्लैग को कॉन्फ़िगर करके, डेवलपर्स ई‑मेल संदेशों के साथ काम करते समय MSG और PST फ़ाइलों के निर्माण को प्रभावी ढंग से प्रबंधित कर सकते हैं।
RTF संपीड़न का उद्देश्य संदेश का आकार तथा माइक्रोसॉफ्ट आउटलुक द्वारा ई‑मेल संदेश और अन्य डेटा संग्रहीत करने के लिए उपयोग की जाने वाली PST (पर्सनल स्टोरेज टेबल) फ़ाइलों को कम करना है। संदेश बॉडी को कॉन्फ़िगर करते समय RTF संपीड़न का उपयोग करके, डेवलपर्स ई‑मेल संदेशों को संग्रहीत करने के लिए आवश्यक मेमोरी कम कर सकते हैं या संदेशों के ट्रांसमिशन के दौरान नेटवर्क बैंडविथ को अनुकूलित कर सकते हैं।
इस प्रयोजन के लिए, दो ओवरलोडेड मेथड डिज़ाइन किए गए हैं:
-
MapiMessageItemBase.SetBodyContent(string content, BodyContentType contentType, bool compression): यह मेथड आपको निर्दिष्ट स्ट्रिंग सामग्री का उपयोग करके संदेश बॉडी सामग्री सेट करने और बॉडी कंटेंट टाइप (जैसे प्लेन टेक्स्ट, HTML, आदि) निर्दिष्ट करने की अनुमति देता है। वैकल्पिक compression पैरामीटर एक मान है जो बताता है कि सामग्री को RTF संपीड़न का उपयोग करके संकुचित किया जाना चाहिए या नहीं। यदि compression पैरामीटर true है, तो सामग्री संकुचित होगी, जिससे संदेश का आकार छोटा हो जाएगा।
-
MapiMessageItemBase.SetBodyRtf(string content, bool compression): यह मेथड विशेष रूप से संदेश बॉडी की सामग्री को RTF फ़ॉर्मेट में सेट करता है। content पैरामीटर एक स्ट्रिंग है जो RTF सामग्री का प्रतिनिधित्व करता है जिसे संदेश बॉडी के रूप में सेट किया जाएगा। पिछले मेथड की तरह, compression पैरामीटर निर्धारित करता है कि RTF संपीड़न सामग्री पर लागू होना चाहिए या नहीं। यदि compression true है, तो RTF सामग्री को संपीड़ित किया जाएगा ताकि आकार कम हो सके।
निम्नलिखित कोड उदाहरण दिखाता है कि HTML बॉडी को सेट करें और उसे संकुचित रखें:
var htmlBody = "<html><body><h1>This is the body content</h1></body></html>";
var msg = new MapiMessage("from@domain.com", "to@domain.com", "subject", "body");
// set the html body and keep it compressed
// this will reduce the message size
msg.SetBodyContent(htmlBody, BodyContentType.Html, true);
एक और भी है MapiConversionOptions.UseBodyCompression प्रॉपर्टी। जब यह प्रॉपर्टी सक्षम होती है, तो MailMessage से MapiMessage रूपांतरण के दौरान RTF बॉडी संपीड़न लागू किया जाता है, जिससे MSG फ़ाइल का आकार छोटा हो जाता है। यह नीचे दिए गए कोड उदाहरण में दिखाया गया है:
var message = MailMessage.Load(fileName);
var options = new MapiConversionOptions();
options.UseBodyCompression = true;
var msg = MapiMessage.FromMailMessage(message, options);
संदेश को ड्राफ्ट स्थिति में सहेजें
जब कोई ईमेल संपादन शुरू करता है लेकिन बाद में पूरा करने के लिए वापस आना चाहता है, तो ईमेल ड्राफ्ट के रूप में सेव होते हैं। Aspose.Email एक संदेश फ़्लैग सेट करके ईमेल संदेश को ड्राफ्ट स्थिति में सहेजने का समर्थन करता है। नीचे Outlook ईमेल संदेश (MSG) को ड्राफ्ट के रूप में सहेजने का नमूना कोड दिया गया है।
// Change properties of an existing MSG file
string strExistingMsg = @"message.msg";
// Load the existing file in MailMessage and Change the properties
MailMessage msg = MailMessage.Load(dataDir + strExistingMsg, new MsgLoadOptions());
msg.Subject += "NEW SUBJECT (updated by Aspose.Email)";
msg.HtmlBody += "NEW BODY (updated by Aspose.Email)";
// Create an instance of type MapiMessage from MailMessage, Set message flag to un-sent (draft status) and Save it
MapiMessage mapiMsg = MapiMessage.FromMailMessage(msg);
mapiMsg.SetMessageFlags(MapiMessageFlags.MSGFLAG_UNSENT);
mapiMsg.Save(dataDir + "SavingMessageInDraftStatus_out.msg");