Skapa och spara Outlook‑filer

Aspose.Email stöder att skapa Outlook‑meddelanden (MSG). Denna artikel förklarar hur man:

Skapa och spara Outlook‑meddelanden

Den MailMessage klassen har Save() 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 Save() metod tar filnamnet som argument. Dessutom kan Outlook‑meddelanden skapas med en komprimerad RTF‑kropp med hjälp av MapiConversionOptions

  1. Skapa en ny instans av MailMessage klassen och ställer in From, To, Subject och Body‑egenskaperna.
  2. Anropa MapiMessage klass FromMailMessage metod som accepterar objektet av MailMessage typ. Metoden FromMailMessage metod konverterar MailMessage till en MapiMessage (MSG).
  3. Anropa MapiMessage.Save() metod för att spara MSG‑filen.

Skriv följande kod i klick‑händelsen för knappkontrollen i Windows‑applikationen.

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 Add()‑metoden på MailMessage.Attachments samlingen. Lägg till en listbox i formuläret som skapats ovan och lägg till två knappar, en för att lägga till och en för att ta bort bilagor. Applikationen som lägger till bilagor fungerar så här:

  1. När Add Attachment‑knappen klickas visas en Open File Dialog för att hjälpa användare att bläddra och välja bilagan.
  2. När en fil har valts läggs hela sökvägen till i en lista.
  3. När MSG‑filen skapas hämtas bilagornas sökvägar från listan och läggs till i MailMessage.Attachments samling.

Skriv följande kod i Lägg till bilaga-knappens klick‑händelse.

När Ta bort bilaga‑knappen klickas, tas de markerade objekten bort från listboxen. Skriv följande kod i Ta bort bilaga‑knappens klick‑händelse.

Lägg till koden för att lägga till bilagorna till MailMessage instans. Den slutgiltiga koden för Write Msg‑funktionen skrivs som nedan.

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.

RTF-komprimering för MAPI‑meddelandetext

OBS! Komprimeringsprocessen kan sakta ner prestandan vid skapande av meddelanden. Genom att förstå detta och konfigurera komprimeringsflaggan utifrån specifika krav och avvägning mellan filstorlek och prestanda kan utvecklare effektivt hantera skapandet av MSG‑ och PST‑filer när de arbetar med e‑postmeddelanden.

RTF-komprimering är avsedd att minska storleken på ett meddelande samt de resulterande PST‑filerna (Personal Storage Table) som Microsoft Outlook använder för att lagra e‑postmeddelanden och annan data. Genom att använda RTF‑komprimering när meddelandetexten konfigureras kan utvecklare minska mängden minne som behövs för att lagra e‑postmeddelanden eller optimera nätverksbandbredden vid överföring av meddelanden.

För detta ändamål har två överlagrade metoder utformats:

  • MapiMessageItemBase.SetBodyContent(string content, BodyContentType contentType, bool compression): Denna metod låter dig ange meddelandekroppens innehåll med den angivna stränginnehållet och ange hur kroppens innehållstyp är (t.ex. vanlig text, HTML etc.). Den valfria parametern compression är ett värde som specificerar om innehållet ska komprimeras med RTF‑komprimering. Om compression är true komprimeras innehållet, vilket ger en mindre meddelandestorlek.

  • MapiMessageItemBase.SetBodyRtf(string content, bool compression): Denna metod anger specifikt innehållet i meddelandekroppen i RTF‑format. parametern content är en sträng som representerar RTF‑innehållet som ska sättas som meddelandekropp. Precis som i föregående metod bestämmer parametern compression om RTF‑komprimering ska tillämpas på innehållet. Om compression är true komprimeras RTF‑innehållet för att minska storleken.

Följande kodexempel visar hur du ställer in HTML‑kropp och behåller den komprimerad:

var msg = new MapiMessage("from@doamin.com", "to@domain.com", "subject", "body");
// set the html body and keep it compressed
// this will reduce the message size
msg.SetBodyContent(htmlBody, BodyContentType.Html, true);

Det finns också en MapiConversionOptions.UseBodyCompression egenskap. När denna egenskap är aktiverad tillämpas RTF‑kropps­komprimering under konvertering från MailMessage till MapiMessage, vilket ger en mindre MSG‑filstorlek. Det visas i kodexemplet nedan:

var message = MailMessage.Load(fileName);
var options = new MapiConversionOptions();
options.UseBodyCompression = true;
var msg = MapiMessage.FromMailMessage(message, options);

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.