إنشاء وحفظ ملفات MSG
يدعم Aspose.Email إنشاء ملفات رسائل Outlook (MSG). يشرح هذا المقال كيفية:
- إنشاء رسائل MSG.
- إنشاء رسائل MSG مع مرفقات.
- إنشاء رسالة MSG بجسم RTF.
- حفظ الرسالة كمسودة.
- العمل مع ضغط الجسم.
إنشاء وحفظ رسائل 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.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = "outlook/";
// Create an instance of the MailMessage class
MailMessage mailMsg = new MailMessage();
// Set from, to, subject and body properties
mailMsg.setFrom(MailAddress.to_MailAddress("sender@domain.com"));
mailMsg.setTo(MailAddressCollection.to_MailAddressCollection("receiver@domain.com"));
mailMsg.setSubject("This is test message");
mailMsg.setBody("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 مثال. أضف المرفقات عن طريق استدعاء طريقة addItem على MailMessage.Attachments مجموعة.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = "outlook/";
String[] files = new String[2];
files[0] = "attachment.doc";
files[1] = "attachment.png";
// Create an instance of the MailMessage class
MailMessage mailMsg = new MailMessage();
// Set from, to, subject and body properties
mailMsg.setFrom(MailAddress.to_MailAddress("sender@domain.com"));
mailMsg.setTo(MailAddressCollection.to_MailAddressCollection("receiver@domain.com"));
mailMsg.setSubject("This is test message");
mailMsg.setBody("This is test body");
// Add the attachments
for (String strFileName : files)
{
mailMsg.getAttachments().addItem(new Attachment(strFileName));
}
// Create an instance of MapiMessage class and pass MailMessage as argument
MapiMessage outlookMsg = MapiMessage.fromMailMessage(mailMsg);
String strMsgFile = "CreateMessagesWithAttachments.msg";
outlookMsg.save(dataDir + strMsgFile);
إنشاء ملفات MSG بجسم RTF
يمكنك أيضًا إنشاء ملفات رسالة Outlook (MSG) بأجسام نص غني (RTF) باستخدام Aspose.Email. يدعم جسم RTF تنسيق النص. أنشئ واحدًا عن طريق تعيين الـ MailMessage.HtmlBody خاصية. عندما تقوم بتحويل MailMessage مثال إلى MapiMessage في هذه الحالة، يتم تحويل جسم HTML إلى RTF. بهذه الطريقة يتم الحفاظ على تنسيق جسم البريد الإلكتروني.
المثال التالي ينشئ ملف MSG يحتوي على جسم RTF. يوجد عنوان واحد، وتطبيق تنسيق النص العريض وتحت الخط في جسم HTML. يتم الاحتفاظ بهذا التنسيق عند تحويل HTML إلى RTF.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = "outlook/";
// Create an instance of the MailMessage class
MailMessage mailMsg = new MailMessage();
// Set from, to, subject and body properties
mailMsg.setFrom(MailAddress.to_MailAddress("sender@domain.com"));
mailMsg.setTo(MailAddressCollection.to_MailAddressCollection("receiver@domain.com"));
mailMsg.setSubject("This is test message");
mailMsg.setHtmlBody("<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");
حفظ الرسالة كمسودة
يتم حفظ الرسائل كمسودات عندما يبدأ شخص ما في تحريرها لكنه يرغب في العودة إليها لإكمالها لاحقًا. يدعم Aspose.Email حفظ رسائل البريد الإلكتروني في حالة مسودة عن طريق تعيين علامة الرسالة. فيما يلي مثال على الكود لحفظ رسالة بريد إلكتروني في Outlook (MSG) كمسودة.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = "outlook/";
// 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.setSubject(msg.getSubject() + " NEW SUBJECT (updated by Aspose.Email)");
msg.setHtmlBody(msg.getHtmlBody() + " NEW BODY (udpated 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");
تداعيات ضغط الجسم
يمكن استخدام طريقة ضغط جسم RTF لتوليد MSG أصغر حجمًا. ومع ذلك، يؤدي ذلك إلى بطء في سرعة الإنشاء. لإنشاء رسائل بسرعة محسنة، اضبط العلامة إلى false. هذه العلامة، بدورها، تؤثر على ملفات PST التي تم إنشاؤها: ملفات MSG الأصغر تؤدي إلى PST أصغر، والملفات الكبيرة تؤدي إلى بطء في إنشاء PST.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
String fileName = "outlook/test.msg";
MailMessage message = MailMessage.load(fileName);
MapiConversionOptions options = new MapiConversionOptions();
options.setUseBodyCompression(true);
MapiMessage ae_mapi = MapiMessage.fromMailMessage(message, options);