Skapa MIME-meddelanden med Java

När du skickar ett e-postmeddelande kan du behöva inkludera multimediainnehåll som bilder, ljud eller video för att göra ditt meddelande mer engagerande och effektivt. För att uppnå detta ger vårt blogginlägg några enkla instruktioner om hur du skapar MIME-meddelanden (Multipurpose Internet Mail Extensions). Vi kommer att utforska hur man skapar en EML-fil med bilder i HTML-kroppen med hjälp av Java. Vi kommer att gå igenom stegen som ingår i processen och förse dig med exempelkoder som hjälper dig att komma igång. Så oavsett om du är en Java-utvecklare eller någon som är intresserad av att lära dig om att skapa EML-filer med bilder, är det här inlägget för dig!

Java API för att skapa MIME-meddelanden

För att skapa MIME-meddelanden programmatiskt i Java, måste du installera Aspose.Email for Java i ditt projekt. Det här biblioteket är ett robust verktyg för Java-utvecklare som erbjuder ett brett utbud av funktioner för att arbeta med e-postmeddelanden. Det gör det möjligt för utvecklare att enkelt manipulera olika aspekter av MIME-meddelanden, såsom bilaga, brödtext, rubrik, kodning och mer. Med Aspose.Email för Java kan utvecklare skapa och anpassa MIME-meddelanden med lätthet, vilket ger ett enkelt och effektivt sätt att skicka rika och multimedia-e-postmeddelanden.

För att skaffa API:t är det möjligt att antingen ladda ner eller installera det från vårt arkiv.

Skapa en EML-fil från grunden

Nu när du har installerat Aspose.Email för Java är det dags att skapa din första EML-fil från början. Ett av de enklaste sätten att göra detta är att använda klassen MailMessage som tillhandahålls av biblioteket. MailMessage-klassen låter dig skapa ett e-postmeddelandeobjekt med en mängd olika egenskaper och metoder som gör att du kan ställa in detaljer som avsändare, mottagare, ämne, brödtext, bilagor, rubriker och mer. Med klassen MailMessage kan du enkelt anpassa ditt e-postmeddelande så att det passar dina behov och skapa en professionell EML-fil som är redo att skickas till dina mottagare.

Följande steg och ett kodavsnitt hjälper dig att skapa en EML från början:

  • Skapa ett nytt MailMessage-objekt med standardkonstruktorn.
  • Ställ in egenskaperna för MailMessage-objektet enligt dina behov.
  • Spara MailMessage-objektet till en EML-fil med metoden save.
// Skapa ett nytt MailMessage-objekt
MailMessage eml = new MailMessage();
// Ställ in avsändaradressen
eml.setFrom(new MailAddress("sender@domain.com"));
// Lägg till en mottagaradress
eml.setTo(MailAddressCollection.to_MailAddressCollection(new MailAddress("recipient@domain.com")));
// Ställ in ämne
eml.setSubject("New message");
// Ställ in HTML-kroppen
eml.setHtmlBody("<!DOCTYPE html>\n"
        + "    <html>\n"
        + "     <head>\n"
        + "      <style>\n"
        + "       h3{font-family:Verdana, sans-serif;color:#000000;background-color:#ffffff;}\n"
        + "       p {font-family:Verdana, sans-serif;font-size:14px;font-style:normal;\n"
        + "         font-weight:normal;color:#000000;background-color:#ffffff;}\n"
        + "      </style>\n"
        + "     </head>\n"
        + "     <body>\n"
        + "       <h3>New message</h3>\n"
        + "       <p>This is a new message created by Aspose.Email.</p>\n"
        + "     </body>\n"
        + "    </html>");

// Spara MailMessage-objektet i en EML-fil
eml.save("message_with_image.eml", SaveOptions.getDefaultEml());

Metoden save för klassen MailMessage tar två parametrar: filsökvägen och sparaalternativen. Sparalternativen anger formatet på utdatafilen.

Lägg till en bild till HTML-innehållet

För att lägga till en bild i HTML-texten i ditt e-postmeddelande måste du bädda in bilden med “img”-taggen. Detta gör att du kan infoga bilden direkt i HTML-koden för ditt meddelande, så att den kommer att visas när e-postmeddelandet öppnas av mottagaren.

Följande kodavsnitt visar hur man lägger till en bild i HTML-brödtexten i ett meddelande.

  • HTML-kroppen innehåller en bildtagg med ett källattribut satt till cid:image1.
  • Klassen AlternateView används för att få en alternativ vy av meddelandetexten som innehåller den inbäddade bilden.
  • Klassen LinkedResource används för att representera den inbäddade bilden och dess innehålls-ID är inställt på “image1”.
  • Slutligen läggs den alternativa vyn till i samlingen för meddelanden med alternativa vyer.
// Skapa en ny instans av klassen MailMessage
MailMessage eml = new MailMessage();
// Ställ in avsändare och mottagare
eml.setFrom(new MailAddress("sender@domain.com"));
eml.setTo(MailAddressCollection.to_MailAddressCollection(new MailAddress("recipient@domain.com")));
// Ställ in ämne och kropp
eml.setSubject("New message with image");
eml.setHtmlBody("<!DOCTYPE html>\n"
        + "    <html>\n"
        + "     <head>\n"
        + "      <style>\n"
        + "       h3{font-family:Verdana, sans-serif;color:#000000;background-color:#ffffff;}\n"
        + "       p {font-family:Verdana, sans-serif;font-size:14px;font-style:normal;\n"
        + "         font-weight:normal;color:#000000;background-color:#ffffff;}\n"
        + "      </style>\n"
        + "     </head>\n"
        + "     <body>\n"
        + "       <h3>New message</h3>\n"
        + "       <p>This is a new message created by Aspose.Email.</p>\n"
        + "       <img src='cid:myImage' />\n"
        + "     </body>\n"
        + "    </html>");

AlternateView alternateView = eml.getAlternateViews().get_Item(0);
LinkedResource imageResource = new LinkedResource(path + "image.png", MediaTypeNames.Image.PNG);
imageResource.setContentId("image1");
alternateView.getLinkedResources().addItem(imageResource);

eml.save("message_with_image.eml", SaveOptions.getDefaultEml());

Skapa en EML-fil från en HTML-fil

Ett sätt att göra detta är att börja med en HTML-fil och konvertera den till EML. Detta kan vara användbart om du har en HTML som du vill skicka som ett e-postmeddelande. För detta ändamål måste vi först ha HTML-innehållet. Låt oss kalla den här filen content.html. Här är ett exempel på det:

<!DOCTYPE html>
<html>
<head>
	<title>My Email</title>
</head>
<body>
	<h1>Hello,</h1>
	<img src="logo.png" alt="Logo">
	<p>This is my first email created form HTML.</p>
</body>
</html>

Du måste också förbereda alla bilder som innehåller HTML och ange rätt sökväg till dem i HTML-filen.

Nu kan vi enkelt skapa ett MailMessage genom att ställa in HTML-kroppen från content.html.

  • Skapa först ett nytt HtmlLoadOptions-objekt.
  • Ställ in en sträng som innehåller sökvägen till bilderna i PathToResources.
  • Ställ in egenskapen ShouldAddPlainTextView till true om EML ska innehålla AlternateView med vanlig text.
  • Skapa ett MailMessage-objekt genom att ladda HTML-filen och skicka in HtmlLoadOptions-objektet som en parameter.
  • Ställ in ytterligare meddelandeegenskaper.
  • Slutligen sparar du MailMessage-objektet i en EML-fil med metoden Save.
HtmlLoadOptions htmlloadOptions = new HtmlLoadOptions();
htmlloadOptions.setPathToResources(path);
htmlloadOptions.shouldAddPlainTextView(true);

var eml = MailMessage.load(path + "content.html", htmlloadOptions);
// Ställ in avsändare och mottagare
eml.setFrom(new MailAddress("sender@domain.com"));
eml.setTo(MailAddressCollection.to_MailAddressCollection(new MailAddress("recipient@domain.com")));
// Ställ in ämne
eml.setSubject("New message from HTML");

// Spara meddelandet i EML-format
eml.save("message_from_html.eml", SaveOptions.getDefaultEml());

Tips för att förbättra visningen av HTML-meddelandet i Outlook

För att se ditt HTML-meddelande i Outlook måste du se till att dess kod är kompatibel med Outlook-renderingsmotorn, som skiljer sig från de flesta webbläsare. Några av de vanligaste problemen som kan påverka din HTML-e-post i Outlook är:

  • Outlook stöder inte vissa av dess taggar och CSS-egenskaper, såsom bakgrundsbilder, flytningar, marginaler, utfyllnad, etc. Du kan behöva använda inline-stilar, tabeller eller villkorliga kommentarer för att uppnå önskad layout och formatering.
  • Outlook kan lägga till extra mellanslag eller linjer mellan element eller ta bort vissa element helt och hållet. Du kan behöva använda icke-avbrytande mellanslag, blanksteg med noll bredd eller tomma tabellceller för att förhindra detta.
  • Outlook kan ändra kodningen eller teckenuppsättningen för din HTML-fil, vilket kan göra att vissa tecken visas felaktigt. Du kan behöva ange kodningen och teckenuppsättningen i den med en metatagg.

Slutsats

I det här blogginlägget har du lärt dig hur du skapar MIME-meddelanden programmatiskt i Java med Aspose.Email. Steg-för-steg-handledningen och kodexemplen visade hur man skapar en eml-fil från grunden och från HTML-fil, lägger till en bild till HTML-innehållet i e-postmeddelandet och stödde allt ovanstående med användbara tips om hur man förbättrar visningen av ditt HTML-meddelande i Outlook.

Se även