Gestione dei file di messaggi con Aspose.Email.Outlook
Conversione di MSG in messaggio MIME
L’API Aspose.Email consente di convertire i file MSG in messaggi MIME utilizzando il toMailMessage metodo.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
MapiMessage msg = new MapiMessage(
"sender@test.com",
"recipient1@test.com; recipient2@test.com",
"Test Subject",
"This is a body of message.");
MailConversionOptions options = new MailConversionOptions();
options.setConvertAsTnef(true);
MailMessage mail = msg.toMailMessage(options);
Conversione di MSG in EML preservando il corpo RTF
L’API fornisce i seguenti metodi per preservare il corpo RTF durante la conversione da MSG a EML:
- MsgLoadOptions.PreserveRtfContent - Ottiene o imposta un valore che indica se mantenere il corpo rtf in MailMessage.
- MailConversionOptions.PreserveRtfContent - Ottiene o imposta un valore che indica se mantenere il corpo rtf in MailMessage.
I seguenti esempi di codice dimostrano come mantenere il corpo rtf in MailMessage:
MsgLoadOptions options = new MsgLoadOptions();
options.setPreserveRtfContent(true);
MailMessage message = MailMessage.load("fileName", options);
MapiMessage mapi = MapiMessage.load("fileName");
MailConversionOptions options = new MailConversionOptions();
options.setPreserveRtfContent(true);
MailMessage message = mapi.toMailMessage(options);
Conversione di MSG in MHTML preservando l’intestazione di categoria
L’API Aspose.Email fornisce la possibilità di aggiungere un’intestazione di categoria durante la conversione del messaggio in MHTML. Questa funzionalità è specificata da MhtSaveOptions classe come opzione aggiuntiva durante il salvataggio di MailMessage in formato Mhtml.
Il seguente esempio di codice dimostra come creare un file MHT (MHTML) da un oggetto MapiMessage, personalizzare la formattazione e le intestazioni del file MHT usando MhtSaveOptions, impostare le categorie per il messaggio email e quindi modificare i modelli di formato e le intestazioni di rendering per il file MHT prima di salvarlo.
MapiMessage msg = new MapiMessage("from@aaa.com", "to@aaa.com", "subj", "body");
msg.setCategories(new String[] { "Urgently", "Important" });
MhtSaveOptions saveOptions = new MhtSaveOptions();
saveOptions.getFormatTemplates().set_Item(MhtTemplateName.CATEGORIES,
saveOptions.getFormatTemplates().get_Item(MhtTemplateName.CATEGORIES).replace("Categories", "Les catégories"));
saveOptions.getRenderingHeaders().add(MhtTemplateName.CATEGORIES);
msg.save("fileName.mhtml", saveOptions);
Lettura e scrittura di file modello Outlook (.OFT)
I modelli Outlook sono molto utili quando si desidera inviare nuovamente lo stesso messaggio email più volte. Invece di preparare il messaggio da zero ogni volta, prima preparalo in Outlook e salvalo come Modello Outlook (OFT). Successivamente, ogni volta che devi inviare il messaggio, puoi crearlo dal modello, risparmiando tempo nella scrittura dello stesso testo nel corpo o nell’oggetto, impostando la formattazione e così via. Aspose.Email MailMessage la classe può essere utilizzata per caricare e leggere un file modello Outlook (OFT). Una volta che il modello Outlook è caricato in un’istanza del MailMessage classe, è possibile aggiornare mittente, destinatario, corpo, oggetto e altre proprietà. Dopo aver aggiornato le proprietà:
- Invia l’email utilizzando il SmtpClient classe o
- Salva il messaggio come MSG ed esegui ulteriori aggiornamenti/validazioni utilizzando Microsoft Outlook.
Nei campioni di codice seguenti, noi:
- Carica il modello utilizzando il MailMessage classe.
- Aggiorna alcune delle proprietà.
- Salva il messaggio in formato MSG.
Il seguente frammento di codice mostra come caricare il file OFT, aggiornare il messaggio e salvarlo nel formato 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/";
// Load the Outlook template (OFT) file in MailMessage's instance
MailMessage message = MailMessage.load(dataDir + "sample.oft", new MsgLoadOptions());
// Set the sender and recipients information
String senderDisplayName = "John";
String senderEmailAddress = "john@abc.com";
String recipientDisplayName = "William";
String recipientEmailAddress = "william@xzy.com";
message.setSender(new MailAddress(senderEmailAddress, senderDisplayName));
message.getTo().addMailAddress(new MailAddress(recipientEmailAddress, recipientDisplayName));
message.setHtmlBody(message.getHtmlBody().replace("DisplayName", "<b>" + recipientDisplayName + "</b>"));
// Set the name, location and time in email body
String meetingLocation = "<u>" + "Hall 1, Convention Center, New York, USA" + "</u>";
String meetingTime = "<u>" + "Monday, June 28, 2010" + "</u>";
message.setHtmlBody(message.getHtmlBody().replace("MeetingPlace", meetingLocation));
message.setHtmlBody(message.getHtmlBody().replace("MeetingTime", meetingTime));
// Save the message in MSG format and open in Office Outlook
MapiMessage mapimessage = MapiMessage.fromMailMessage(message);
mapimessage.setMessageFlags(MapiMessageFlags.MSGFLAG_UNSENT);
mapimessage.save(dataDir + "ReadAndWritingOutlookTemplateFile_out.msg");
Salvataggio del file Outlook MSG come modello
Il seguente frammento di codice mostra come salvare il file Outlook MSG come modello.
// 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/";
try (MapiMessage mapi = new MapiMessage("test@from.to", "test@to.to", "template subject", "Template body")) {
mapi.saveAsTemplate(dataDir + "mapiToOft.msg");
}
Impostazione della categoria di colore per i file Outlook MSG
Una categoria di colore contrassegna un messaggio email per una certa importanza o categoria. Microsoft Outlook consente agli utenti di assegnare categorie di colore per differenziare le email. Per gestire la categoria di colore, utilizzare il FollowUpManager. Contiene funzioni come addCategory, removeCategory, clearCategories e getCategories.
- addCategory accetta MapiMessage e la stringa della categoria di colore, ad esempio "Categoria Viola" o "Categoria Rossa" come argomenti.
- removeCategory accetta MapiMessage e la stringa della categoria di colore da rimuovere dal messaggio.
- clearCategories viene utilizzato per rimuovere tutte le categorie di colore dal messaggio.
- getCategories viene utilizzato per recuperare tutte le categorie di colore da un determinato messaggio.
Il seguente esempio esegue le attività indicate di seguito:
- Aggiungi una categoria di colore.
- Aggiungi un’altra categoria di colore.
- Recupera l’elenco di tutte le categorie.
- Rimuovi tutte le categorie.
// 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/";
MapiMessage msg = MapiMessage.fromFile(dataDir + "message.msg");
// Add Two category
FollowUpManager.addCategory(msg, "Purple Category");
FollowUpManager.addCategory(msg, "Red Category");
// Retrieve the list of available categories
IList categories = FollowUpManager.getCategories(msg);
// Remove the specified category and then Clear all categories
FollowUpManager.removeCategory(msg, "Red Category");
FollowUpManager.clearCategories(msg);
Accesso alle informazioni di follow‑up dal file MSG
L’API Aspose.Email consente di accedere alle informazioni di follow‑up da un messaggio inviato o ricevuto. È in grado di recuperare le informazioni di Lettura, Ricevuta di lettura di consegna e i risultati dei voti da un file di messaggio.
Recupero delle informazioni di ricevuta di lettura e di consegna
Il seguente frammento di codice mostra come recuperare le informazioni di ricevuta di lettura e di consegna.
// 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/";
MapiMessage msg = MapiMessage.fromFile(dataDir + "message.msg");
for (MapiRecipient recipient : msg.getRecipients()) {
System.out.println("Recipient: " + recipient.getDisplayName());
// Get the PR_RECIPIENT_TRACKSTATUS_TIME_DELIVERY property
System.out.println("Delivery time: " + recipient.getProperties().get_Item(MapiPropertyTag.PR_RECIPIENT_TRACKSTATUS_TIME_DELIVERY).getDateTime());
// Get the PR_RECIPIENT_TRACKSTATUS_TIME_READ property
System.out.println("Read time" + recipient.getProperties().get_Item(MapiPropertyTag.PR_RECIPIENT_TRACKSTATUS_TIME_READ).getDateTime());
}
Creazione di messaggi di inoltro e risposta
L’API Aspose.Email fornisce la possibilità di creare e formattare messaggi di risposta e inoltro. Il ReplyMessageBuilder e ForwardMessageBuilder le classi dell’API sono usate per creare rispettivamente i messaggi Reply e Forward. Un messaggio Reply o Forward può essere specificato per essere creato usando uno qualsiasi dei modes di OriginalMessageAdditionMode enum. Questo enum ha i seguenti valori:
- OriginalMessageAdditionMode.None - Il messaggio originale non è incluso nel messaggio di risposta.
- OriginalMessageAdditionMode.Attachment - Il messaggio originale è incluso come allegato nel messaggio di risposta
- OriginalMessageAdditionMode.Textpart - Il messaggio originale è incluso come testo nel corpo del messaggio di risposta
Creazione di un messaggio di risposta
Il seguente snippet di codice mostra come creare un messaggio di risposta.
// 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/";
MapiMessage originalMsg = MapiMessage.fromFile(dataDir + "message1.msg");
ReplyMessageBuilder builder = new ReplyMessageBuilder();
// Set ReplyMessageBuilder Properties
builder.setReplyAll(true);
builder.setAdditionMode(OriginalMessageAdditionMode.Textpart);
builder.setResponseText(
"<p><b>Dear Friend,</b></p> I want to do is introduce my co-author and co-teacher. <p><a href=\"www.google.com\">This is a first link</a></p><p><a href=\"www.google.com\">This is a second link</a></p>");
MapiMessage replyMsg = builder.buildResponse(originalMsg);
replyMsg.save(dataDir + "reply_out.msg");
Creazione di un messaggio di inoltro
Il seguente snippet di codice mostra come creare un messaggio di inoltro.
// 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/";
MapiMessage originalMsg = MapiMessage.fromFile(dataDir + "message1.msg");
ForwardMessageBuilder builder = new ForwardMessageBuilder();
builder.setAdditionMode(OriginalMessageAdditionMode.Textpart);
MapiMessage forwardMsg = builder.buildResponse(originalMsg);
forwardMsg.save(dataDir + "forward_out.msg");
Preservare le date vuote durante la conversione di un messaggio
MapiConversionOptions.setPreserveEmptyDates(boolean) proprietà che indica se è necessario mantenere le date vuote durante la conversione di un messaggio. Questa API appare in Aspose.Email 21.5. Il seguente snippet di codice mostra come preservare le date vuote.
MailMessage mailMessage = MailMessage.load("message.eml");
System.out.println(mailMessage.getDate()); // zero date
MapiConversionOptions mco = MapiConversionOptions.getUnicodeFormat();
// keep empty dates when converting a message
mco.setPreserveEmptyDates(true);
MapiMessage mapiMessage = MapiMessage.fromMailMessage(mailMessage, mco);
System.out.println(mapiMessage.getClientSubmitTime()); // zero date
// check zero date
if (mapiMessage.getClientSubmitTime().equals(JavaHelper.ZERO_DATE))
System.out.println("ZERO DATE");