Skapa och spara MSG-filer
Aspose.Email stöder att skapa Outlook‑meddelanden (MSG). Denna artikel förklarar hur man:
- Skapa MSG‑meddelanden.
- Skapa MSG‑meddelanden med bilagor.
- Skapa ett MSG‑meddelande med en RTF‑kropp.
- Spara ett meddelande som utkast.
- Arbeta med kroppskomprimering.
Skapa och spara Outlook‑meddelanden
Den MailMessage klassen har spara metod som kan spara Outlook MSG‑filer till disk eller ström. Kodschnipporna nedan skapar en instans av MailMessage klass, sätt egenskaper som from, to, subject och body. Den spara metod tar filnamnet som argument. Dessutom kan Outlook‑meddelanden skapas med en komprimerad RTF‑kropp med hjälp av MapiConversionOptions.
- Skapa en ny instans av MailMessage klassen och ställer in From, To, Subject och Body‑egenskaperna.
- Anropa MapiMessage klass fromMailMessage metod som accepterar objektet av MailMessage typ. Metoden fromMailMessage metod konverterar MailMessage till en MapiMessage (MSG).
- Anropa MapiMessage.save metod för att spara MSG‑filen.
// 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);
Skapa MSG‑filer med bilagor
I exemplet ovan, skapade vi en enkel MSG‑fil. Aspose.Email stöder också att spara meddelandefiler med bilagor. Allt du behöver göra är att lägga till bilagorna till MailMessage instans. Lägg till bilagor genom att anropa addItem-metoden på MailMessage.Attachments samling.
// 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);
Skapa MSG‑filer med RTF‑kropp
Du kan också skapa Outlook‑meddelanden (MSG) med rik text (RTF) i kroppen med Aspose.Email. RTF‑kroppen stöder textformatering. Skapa en genom att ange MailMessage.HtmlBody egenskap. När du konverterar en MailMessage instans till en MapiMessage instans, konverteras HTML‑kroppen till RTF. På så sätt bevaras formateringen av e‑postens kropp.
Följande exempel skapar en MSG‑fil med en RTF‑kropp. Det finns en rubrik samt fet och understruken formatering i HTML‑kroppen. Denna formatering behålls när HTML konverteras till 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");
Spara meddelande i utkaststatus
E-post sparas som utkast när någon har börjat redigera dem men vill återgå till dem för att slutföra dem senare. Aspose.Email stöder att spara e-postmeddelanden i utkaststatus genom att sätta ett meddelandeflagga. Nedan är exempelkoden för att spara ett Outlook‑e‑postmeddelande (MSG) som ett utkast.
// 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");
Konsekvenser av kroppskomprimering
Metoden för RTF‑kroppskomprimering kan användas för att generera en mindre MSG‑fil. Detta medför dock en långsammare skapningshastighet. För att skapa meddelanden snabbare, sätt flaggan till false. Denna flagga påverkar i sin tur de skapade PST‑filerna: mindre MSG‑filer ger mindre PST, och stora MSG‑filer ger långsammare PST‑skapning.
// 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);