ایجاد و ذخیرهٔ فایل‌های MSG

Aspose.Email از ایجاد فایل‌های پیام Outlook (MSG) پشتیبانی می‌کند. این مقاله توضیح می‌دهد چگونه:

  • ایجاد پیام‌های MSG.
  • ایجاد پیام‌های MSG با پیوست‌ها.
  • ایجاد پیام MSG با بدنهٔ RTF.
  • ذخیرهٔ پیام به‌عنوان پیش‌نویس.
  • کار با فشرده‌سازی بدنه.

ایجاد و ذخیرهٔ پیام‌های Outlook

این MailMessage کلاس دارای ذخیره متدی که می‌تواند فایل‌های Outlook MSG را روی دیسک یا استریم ذخیره کند. کدهای نمونه زیر یک نمونه از MailMessage کلاس، ویژگی‌هایی مانند from، to، subject و body را تنظیم کنید. این ذخیره متد نام فایل را به‌عنوان آرگومان می‌گیرد. علاوه بر این، پیام‌های Outlook می‌توانند با یک بدنهٔ RTF فشرده با استفاده از MapiConversionOptions.

  1. یک نمونهٔ جدید از MailMessage کلاس را می‌گیرد و ویژگی‌های From، To، Subject و Body را تنظیم می‌کند.
  2. متد را فراخوانی کنید MapiMessage کلاس fromMailMessage متد که شیء از نوع MailMessage نوع. این fromMailMessage متد … را تبدیل می‌کند MailMessage به یک MapiMessage (MSG).
  3. متد را فراخوانی کنید 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

می‌توانید با Aspose.Email فایل‌های پیام Outlook (MSG) با بدنهٔ متن غنی (RTF) نیز ایجاد کنید. بدنه 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 کوچکتر می‌شوند، و فایل‌های MSG بزرگ منجر به ایجاد 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);