การสร้างและบันทึกไฟล์ MSG
Aspose.Email รองรับการสร้างไฟล์ Outlook message (MSG) บทความนี้อธิบายวิธีทำ:
- สร้างข้อความ MSG.
- สร้างข้อความ MSG พร้อมไฟล์แนบ.
- สร้างข้อความ MSG พร้อมเนื้อหา RTF.
- บันทึกข้อความเป็นแบบร่าง.
- ทำงานกับการบีบอัดเนื้อหา.
การสร้างและบันทึก Outlook Messages
นี้ MailMessage คลาสมี บันทึก เมธอดที่สามารถบันทึกไฟล์ Outlook MSG ลงดิสก์หรือสตรีม โค้ดสแนปเปิลด้านล่างสร้างอินสแตนซ์ของ MailMessage คลาส, ตั้งค่าคุณสมบัติเช่น from, to, subject และ body. The บันทึก เมธอดรับชื่อไฟล์เป็นอากิวเมนต์ นอกจากนี้ Outlook Messages สามารถสร้างด้วย เนื้อหา RTF ที่บีบอัด โดยใช้ MapiConversionOptions.
- สร้างอินสแตนซ์ใหม่ของ MailMessage คลาสและตั้งค่าคุณสมบัติ From, To, Subject และ Body.
- เรียกใช้ MapiMessage คลาส fromMailMessage เมธอดที่รับอ็อบเจกต์ของ MailMessage ประเภท. The fromMailMessage เมธอดแปลง MailMessage เป็น a 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 Message (MSG) พร้อมเนื้อหา rich text (RTF) ด้วย Aspose.Email เนื้อหา RTF รองรับการจัดรูปแบบข้อความ สร้างโดยตั้งค่า MailMessage.HtmlBody คุณสมบัติ. เมื่อคุณแปลง a MailMessage อินสแตนซ์เป็น a 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);