Carica e Salva Messaggio Email
Carica Messaggio Email
Carica da EML
Questa sezione descrive come caricare un file EML in un oggetto MailMessage usando il EmlLoadOptions classe. La classe EmlLoadOptions fornisce varie opzioni per personalizzare come il file EML viene caricato, come preservare i formati dei messaggi incorporati o controllare il comportamento di caricamento degli allegati TNEF.
- Inizializza un’istanza di EmlLoadOptions.
- Configura le opzioni di caricamento secondo necessità.
- Usa il MailMessage.Load() metodo per caricare il file EML con le opzioni specificate.
using Aspose.Email;
// Initialize EmlLoadOptions
var loadOptions = new EmlLoadOptions
{
// Configure load options
PreferredTextEncoding = Encoding.UTF8, // Sets preferred encoding for the message
PreserveEmbeddedMessageFormat = true, // Preserve format of embedded messages
PreserveTnefAttachments = true, // Control TNEF attachment loading
RemoveSignature = false // Do not remove the signature
};
// Load the EML file
var eml = MailMessage.Load("file.eml", loadOptions);
Proprietà di EmlLoadOptions
- PreferredTextEncoding: Imposta la codifica preferita per l’oggetto e il corpo del messaggio. Il valore predefinito è
null. - PreserveEmbeddedMessageFormat: Indica se preservare il formato dei messaggi incorporati durante il caricamento. Il valore predefinito è
false. - PreserveTnefAttachments: Controlla il comportamento di caricamento degli allegati TNEF. Il valore predefinito è
false. - RemoveSignature: Specifica se la firma deve essere rimossa durante il caricamento. Il valore predefinito è
false.
Preserva Formato Messaggi Incorporati
Carica messaggio con firma/senza firma
La conservazione della firma è supportata di default quando si caricano file EML. Per rimuovere la firma, è possibile impostare il LoadOptions.RemoveSignature proprietà a true.
Il frammento di codice seguente mostra come rimuovere una firma durante il caricamento di un messaggio:
var msg = MailMessage.Load(fileName, new EmlLoadOptions() { RemoveSignature = true});
Carica da EMLX
La sezione seguente tratta il caricamento di un file EMLX con il EmlxLoadOptions classe. Questa classe fornisce opzioni simili a EmlLoadOptions, offrendo controllo sulla codifica, rimozione della firma e altro.
- Istanzia le EmlxLoadOptions.
- Configura le proprietà secondo necessità.
- Usa il MailMessage.Load() metodo per caricare il file EMLX.
using Aspose.Email;
// Instantiate EmlxLoadOptions
var loadOptions = new EmlxLoadOptions
{
// Configure load options
PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
PreserveEmbeddedMessageFormat = true, // Preserve embedded message formats
RemoveSignature = true // Remove signatures during loading
};
// Load the EMLX file
var emlx = MailMessage.Load("file.emlx", loadOptions);
Proprietà di EmlxLoadOptions
- PreferredTextEncoding: Imposta la codifica preferita per l’oggetto e il corpo del messaggio. Il valore predefinito è
null. - PreserveEmbeddedMessageFormat: Indica se preservare il formato dei messaggi incorporati. Il valore predefinito è
false. - RemoveSignature: Specifica se rimuovere la firma durante il caricamento. Il valore predefinito è
false.
Carica da HTML
Scopri come caricare un file HTML in un MailMessage usando il HtmlLoadOptions classe. Questa classe è specificamente progettata per gestire contenuti HTML con opzioni per gestire le risorse e aggiungere visualizzazioni in testo semplice.
- Inizializza un’istanza di HtmlLoadOptions.
- Configura le proprietà necessarie.
- Usa il MailMessage.Load() metodo per caricare il file HTML con le opzioni specificate.
using Aspose.Email;
// Initialize HtmlLoadOptions
var loadOptions = new HtmlLoadOptions
{
// Configure load options
PathToResources = "resources/", // Path to directory containing resource files
PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
ShouldAddPlainTextView = true // Add plain text view of the body
};
// Load the HTML file
var html = MailMessage.Load("file.html", loadOptions);
Proprietà di HtmlLoadOptions
- PathToResources: Definisce il percorso della directory contenente i file delle risorse (immagini, ad es.).
- PreferredTextEncoding: Imposta la codifica preferita per l’oggetto e il corpo del messaggio. Il valore predefinito è
null. - PreserveEmbeddedMessageFormat: Determina se preservare il formato dei messaggi incorporati. Il valore predefinito è
false. - ShouldAddPlainTextView: Specifica se aggiungere una visualizzazione in testo semplice del corpo del messaggio. Il valore predefinito è
false.
Carica da MHTML
Questa sezione spiega come caricare un file MHTML usando il MhtmlLoadOptions classe. La classe MhtmlLoadOptions offre opzioni per gestire la codifica, preservare i formati dei messaggi incorporati e gestire gli allegati TNEF.
- Crea un’istanza di MhtmlLoadOptions.
- Configura le proprietà desiderate.
- Carica il file MHTML usando il MailMessage.Load() metodo.
using Aspose.Email;
// Create MhtmlLoadOptions
var loadOptions = new MhtmlLoadOptions
{
// Set load options
PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
PreserveEmbeddedMessageFormat = true, // Preserve format of embedded messages
PreserveTnefAttachments = true, // Handle TNEF attachments
RemoveSignature = false // Keep the signature
};
// Load the MHTML file
var mhtml = MailMessage.Load("file.mht", loadOptions);
Proprietà di MhtmlLoadOptions
- MessageFormat: Rappresenta il formato del messaggio di posta, che può essere EML, MSG o MHTML. Il valore predefinito è EML.
- PreferredTextEncoding: Imposta la codifica preferita per l’oggetto e il corpo del messaggio. Il valore predefinito è
null. - PreserveEmbeddedMessageFormat: Determina se preservare il formato dei messaggi incorporati. Il valore predefinito è
false. - PreserveTnefAttachments: Controlla il comportamento di caricamento degli allegati TNEF. Il valore predefinito è
false. - RemoveSignature: Specifica se rimuovere la firma durante il caricamento. Il valore predefinito è
false.
Carica da MSG
Questa sezione spiega come caricare un file MSG in un oggetto MailMessage usando il MsgLoadOptions classe. La classe MsgLoadOptions offre varie proprietà per gestire il modo in cui i file MSG sono caricati, incluse opzioni per preservare il contenuto RTF o gestire gli allegati TNEF.
- Crea un’istanza di MsgLoadOptions.
- Imposta le proprietà desiderate per personalizzare il caricamento.
- Carica il file MSG usando il MailMessage.Load() metodo.
using Aspose.Email;
// Create MsgLoadOptions
var loadOptions = new MsgLoadOptions
{
// Set load options
KeepOriginalEmailAddresses = true, // Preserve original email addresses
PreferredTextEncoding = Encoding.UTF8, // Set preferred encoding
PreserveRtfContent = true, // Keep RTF content in the message
PreserveTnefAttachments = true, // Handle TNEF attachments
RemoveSignature = false, // Keep the signature
Timeout = 5000 // Set timeout to 5 seconds
};
// Load the MSG file
var msg = MailMessage.Load("file.msg", loadOptions);
Proprietà di MsgLoadOptions
- KeepOriginalEmailAddresses: Indica se conservare gli indirizzi email originali. Il valore predefinito è
false. - PreferredTextEncoding: Definisce la codifica preferita per l’oggetto e il corpo del messaggio. Il valore predefinito è
null. - PreserveEmbeddedMessageFormat: Determina se il formato dei messaggi incorporati deve essere preservato. Il valore predefinito è
false. - PreserveRtfContent: Specifica se conservare il contenuto del corpo RTF in
MailMessage. Il valore predefinito èfalse. - PreserveTnefAttachments: Gestisce il comportamento di caricamento degli allegati TNEF. Il valore predefinito è
false. - RemoveSignature: Decide se rimuovere la firma durante il caricamento. Il valore predefinito è
false. - Timeout: Limita il tempo di formattazione in millisecondi durante la conversione. Il valore predefinito è 3000 ms.
Carica da TNEF
Scopri come caricare un file TNEF eml con il TnefLoadOptions classe. Questa classe fornisce opzioni per gestire la codifica e rimuovere le firme durante il processo di caricamento.
- Istanzia il TnefLoadOptions.
- Configura le proprietà secondo necessità.
- Usa il MailMessage.Load() metodo per caricare il file TNEF.
using Aspose.Email;
// Instantiate TnefLoadOptions
var loadOptions = new TnefLoadOptions
{
// Configure load options
PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
PreserveEmbeddedMessageFormat = true, // Preserve embedded message formats
RemoveSignature = true // Remove signatures during loading
};
// Load the TNEF file
var tnef = MailMessage.Load("file.eml", loadOptions);
Proprietà di TnefLoadOptions
- MessageFormat: Rappresenta il formato del messaggio di posta, come EML, MSG o MHTML. Il valore predefinito è EML.
- PreferredTextEncoding: Imposta la codifica preferita per l’oggetto e il corpo del messaggio. Il valore predefinito è
null. - PreserveEmbeddedMessageFormat: Indica se preservare il formato dei messaggi incorporati. Il valore predefinito è
false. - RemoveSignature: Specifica se rimuovere la firma durante il caricamento. Il valore predefinito è
false.
Rilevamento dei Formati dei File
L’API Aspose.Email fornisce la capacità di rilevare il formato del file del messaggio fornito. Il DetectFileFormat metodo di FileFormatUtil la classe può essere usata per realizzare ciò. Le seguenti classi e metodi possono essere usati per rilevare il formato del file caricato.
- FileFormatType Classe
- FileFormatInfo Classe
- FileFormatUtil Classe
- FileFormatUtil.DetectFileFormat(Stream) Method
- FileFormatUtil.DetectFileFormat(String) Method
Il frammento di codice seguente ti mostra come rilevare i formati dei file.
Salva e converte messaggi
Aspose.Email rende facile convertire qualsiasi tipo di messaggio in un altro formato. Per dimostrare questa funzionalità, il codice in questo articolo carica tre tipi di messaggi dal disco e li salva nuovamente in altri formati. La classe base SaveOptions e le classi EmlSaveOptions, MsgSaveOptions, MhtSaveOptions, HtmlSaveOptions per impostazioni aggiuntive durante il salvataggio MailMessage può essere usato per salvare i messaggi in altri formati. L’articolo mostra come usare queste classi per salvare una email di esempio come:
- Formato EML.
- Outlook MSG.
- Formato MHTML.
- Formato HTML.
Salva in EML
Il frammento di codice seguente ti mostra come caricare un messaggio EML e salvarlo su disco nello stesso formato.
Preserva i confini originali
Il frammento di codice seguente ti mostra come caricare EML e salvare come EML preservando i confini originali.
Preserva gli allegati TNEF
Il frammento di codice seguente ti mostra come salvare come EML preservando gli allegati TNEF.
Salva EML in MSG
Il seguente frammento di codice mostra come caricare un messaggio EML e convertirlo in MSG usando l’opzione appropriata da SaveOptions.
Preserva le date
Il MsgSaveOptions la classe consente di salvare il messaggio di origine come file Outlook Message (MSG) preservando le date. Il frammento di codice seguente mostra come salvare come MSG con le date preservate.
Salva EML in MHTML
Diverse opzioni di MHTML possono essere usate per ottenere i risultati desiderati. Il frammento di codice seguente ti mostra come caricare un messaggio EML in MailMessage e convertilo in MHTML con la data del messaggio nel sistema UTC.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Set options for MHTML output
MhtSaveOptions saveOptions = SaveOptions.DefaultMhtml;
saveOptions.PreserveOriginalDate = false; // save a message date as UTC date
// Initialize and load an existing EML file
using (MailMessage mailMessage = MailMessage.Load(folderPath + "Message.eml"))
{
mailMessage.Save(folderPath + "Message_out.mhtml", saveOptions);
}
Opzioni di conversione
Il MhtSaveOptions la classe fornisce opzioni aggiuntive per salvare i messaggi email in formato MHTML. L’enumeratore MhtFormatOptions consente di scrivere informazioni email aggiuntive nel MHTML di output. I seguenti campi aggiuntivi possono essere scritti:
WriteHeader– scrive l’intestazione email nel file di output.WriteOutlineAttachments– scrive gli allegati outline nel file di output.WriteCompleteEmailAddress– scrive l’indirizzo email completo nel file di output.NoEncodeCharacters– non dovrebbe essere usata alcuna codifica di trasferimento per i caratteri.HideExtraPrintHeader– nasconde l’intestazione di stampa extra dalla parte superiore del file di output.WriteCompleteToEmailAddress– scrive l’indirizzo email completo del destinatario nel file di output.WriteCompleteFromEmailAddress– scrive l’indirizzo email completo del mittente nel file di output.WriteCompleteCcEmailAddress– scrive gli indirizzi email completi di tutti i destinatari in copia carbone nel file di output.WriteCompleteBccEmailAddress– scrive l’indirizzo email completo di tutti i destinatari in copia carbone nascosta nel file di output.RenderCalendarEvent– scrive il testo dell’evento calendario nel file di output.SkipByteOrderMarkInBody– scrive i byte del Byte Order Mark (BOM) nel file di output.RenderVCardInfo– scrive il testo da VCard AlternativeView nel file di output.DisplayAsOutlook– visualizza l’intestazione From.RenderTaskFields– scrive campi specifici del Task nel file di output.None– Nessuna impostazione specificata.
Il frammento di codice seguente ti mostra come convertire file EML in MHTML con impostazioni opzionali.
Renderizza eventi del calendario
Il MhtFormatOptions.RenderCalendarEvent renderizza gli eventi del Calendario nell’output MHTML. Il seguente frammento di codice mostra come renderizzare gli eventi del calendario durante la conversione in MHTML.
Esportazione dell’email in MHT senza immagini in linea
Esportazione Email in MHT con Fuso Orario Personalizzato
MailMessage classe fornisce il TimeZoneOffset proprietà per impostare il fuso orario personalizzato durante l’esportazione in MHT. Il seguente frammento di codice mostra come esportare l’email in MHT con fuso orario personalizzato.
Regolazione del carattere
Salva EML in HTML
Il HtmlSaveOptions la classe consente di esportare il corpo del messaggio in HTML. Il seguente frammento di codice mostra come salvare un messaggio in HTML.
Salva senza risorse incorporate
Salva EML in OFT
Il seguente frammento di codice mostra come salvare un messaggio come file modello Outlook (.oft).
Converti EML in MSG (MailMessage a MapiMessage)
Per convertire un MailMessage oggetto caricato da un file EML a un MapiMessage oggetto, utilizza il MapiConversionOptions classe. Questa conversione è spesso necessaria perché questi due oggetti servono a scopi diversi e soddisfano esigenze distinte nell’elaborazione delle email. MapiMessage è specificamente progettato per la compatibilità con Microsoft Outlook e Exchange Server, poiché aderisce al formato Messaging Application Programming Interface (MAPI). Ciò garantisce che le email convertite in file MSG siano pienamente compatibili con i prodotti Microsoft, permettendo di aprirle, modificarle e gestirle direttamente in Outlook.
Questa conversione è anche necessaria quando le email devono essere archiviate, indicizzate o elaborate da archivi che richiedono il formato MAPI, PST/OST, OLM. Il MapiConversionOptions la classe consente di specificare opzioni aggiuntive, come preservare il formato originale del messaggio, mantenere le date originali e comprimere il corpo RTF durante la conversione. Il seguente esempio di codice mostra come caricare un’email da un file in formato .eml e convertirla in un formato Outlook .msg consentendo la personalizzazione ma garantendo che alcune caratteristiche dell’email originale siano preservate durante la conversione.
- Crea un’istanza di
MapiConversionOptionse configura le sue proprietà. - Converti il
MailMessageoggetto a unMapiMessageoggetto che utilizza le opzioni di conversione configurate.
MailMessage eml = MailMessage.Load("email.eml", new EmlLoadOptions());
// Create an instance of MapiConversionOptions
var conversionOptions = new MapiConversionOptions
{
// Configure MapiConversionOptions
Format = OutlookMessageFormat.Unicode, // Use Unicode format for MSG
PreserveEmbeddedMessageFormat = true, // Preserve the format of embedded messages
PreserveOriginalAddresses = true, // Keep original email addresses
PreserveOriginalDates = true, // Preserve original dates
PreserveEmptyDates = false, // Generate new dates if original are empty
RemoveSignature = false, // Do not remove the signature
UseBodyCompression = true, // Enable RTF body compression
ForcedRtfBodyForAppointment = false // Disable forced RTF body for appointments
};
// Convert MailMessage to MapiMessage
MapiMessage msg = MapiMessage.FromMailMessage(eml, conversionOptions);
Proprietà disponibili di MapiConversionOptions
-
ASCIIFormat: Restituisce
MapiConversionOptionsconfigurato conOutlookMessageFormatcome ASCII, conPreserveSignatureimpostato su false eUseBodyCompressionimpostato su false. Questa opzione è utile quando è necessaria una conversione in formato ASCII semplice. -
UnicodeFormat: Restituisce
MapiConversionOptionsconOutlookMessageFormatimpostato su Unicode, e entrambiPreserveSignatureeUseBodyCompressionimpostato su false. Usa questa opzione per un supporto di caratteri più completo nei file MSG. -
ForcedRtfBodyForAppointment: Quando impostato su true, forza l’uso del corpo RTF per gli appuntamenti del calendario. Questo è utile se vuoi garantire la compatibilità con alcuni client di posta. Il valore predefinito è true.
-
Format: Specifica il formato di output per il file MSG. Può essere impostato su
OutlookMessageFormat.ASCIIoppureOutlookMessageFormat.Unicode, controllando se il MSG convertito deve usare codifica ASCII o Unicode. -
PreserveEmbeddedMessageFormat: Determina se mantenere il formato EML originale dei messaggi incorporati durante la conversione in
MapiMessage. Impostando questo su true si garantisce che le email incorporate conservino la loro struttura originale. Il valore predefinito è false. -
PreserveEmptyDates: Quando impostato su true, conserva le date originali di salvataggio e modifica dal file EML. Altrimenti, nuove date verranno generate se quelle originali sono vuote.
-
PreserveOriginalAddresses: Se impostato su true, mantiene gli indirizzi email originali senza convalida. Questo è utile quando si lavora con indirizzi email che potrebbero non conformarsi a standard rigidi ma devono essere preservati così come sono. Il valore predefinito è false.
-
PreserveOriginalDates: Garantisce che le date originali di invio e ricezione siano mantenute durante il processo di conversione. Impostandolo su true queste date vengono conservate per una migliore precisione storica.
-
RemoveSignature: Controlla se la firma digitale, se presente, sarà rimossa dal messaggio durante la conversione. Il valore predefinito è false, il che significa che la firma sarà mantenuta a meno che non venga rimossa esplicitamente.
-
UseBodyCompression: Abilita la compressione del corpo RTF se impostato su true. Questo può aiutare a ridurre la dimensione del file MSG, specialmente con messaggi grandi con formattazione ricca.