Jakarta Mail - Jakarta Mail - Wikipedia
Jakarta Mail (dříve JavaMail) je Jakarta EE API slouží k odesílání a přijímání e-mailem přes SMTP, POP3 a IMAP. Jakarta Mail je zabudován do Java EE platformu, ale také poskytuje volitelný balíček pro použití v Java SE.[1]
Aktuální verze je 1.6.5, vydaná v březnu 2020.[2] Další otevřený zdroj Existuje implementace Jakarta Mail - GNU JavaMail - zatímco podporuje pouze verzi 1.3 specifikace JavaMail, poskytuje pouze bezplatné NNTP backend, který umožňuje používat tuto technologii ke čtení a odesílání zpravodajská skupina článků.
Od roku 2019 je software známý jako Jakarta Mail, a je součástí Jakarta EE značka (dříve známá jako Java EE).
Licencování
Jakarta Mail je hostován jako otevřený zdroj projekt na Eclipse.org pod svým novým názvem Jakarta Mail.[3]
Většina zdrojového kódu Jakarta Mail je licencována na základě následujících licencí:
- EPL-2.0
- GPL-2.0 s licencí Classpath Exception
- Zdrojový kód demo programů je licencován na základě licence BSD
Příklady
import java.util. *;import javax.mail. *;import javax.mail.internet. *;import javax.activation. *;// Odeslání jednoduchého e-mailu s jednou částí, textového / prostéhoveřejnost třída TestEmail { veřejnost statický prázdnota hlavní(Tětiva[] args) { // NÁHRADU SVÝCH E-mailových adres ZDE! Tětiva na = „sendToMailAddress“; Tětiva z = „sendFromMailAddress“; // NÁHRADU MAILOVÉHO SERVERU VAŠEHO ISP ZDE! Tětiva hostitel = „smtp.yourisp.invalid“; // Vytvořit vlastnosti, získat relaci Vlastnosti rekvizity = Nový Vlastnosti(); // Pokud používáte statický Transport.send (), // je třeba určit, na kterého hostitele jej poslat rekvizity.dát("mail.smtp.host", hostitel); // Chcete-li zjistit, co se děje za scénou rekvizity.dát("mail.debug", "skutečný"); Zasedání zasedání = Zasedání.getInstance(rekvizity); Snaž se { // Vytvoření instance zprávy Zpráva zpráva = Nový MimeMessage(zasedání); // Nastavit atributy zprávy zpráva.nastavitOd(Nový Internetová adresa(z)); Internetová adresa[] adresa = {Nový Internetová adresa(na)}; zpráva.setRecipients(Zpráva.Typ příjemce.NA, adresa); zpráva.setSubject(„Test E-Mail through Java“); zpráva.setSentDate(Nový datum()); // Nastavit obsah zprávy zpráva.setText(„Toto je test odeslání“ + "prostý textový e-mail přes Javu. n" + „Tady je řádek 2.“); // Odeslat zprávu Doprava.poslat(zpráva); } chytit (MessagingException mex) { // Vypíše také všechny vnořené (zřetězené) výjimky mex.printStackTrace(); } }}// Konec třídy
Ukázkový kód pro odesílání vícedílných e-mailů, e-mailů HTML a příloh souborů
import java.util. *;import java.io. *;import javax.mail. *;import javax.mail.internet. *;import javax.activation. *;veřejnost třída SendMailUsage { veřejnost statický prázdnota hlavní(Tětiva[] args) { // VYMĚŇTE SVOJE E-MAILOVÉ ADRESY ZDE !!! Tětiva na = „sendToMailAddress“; Tětiva z = „sendFromMailAddress“; // NÁHRADU MAILOVÉHO SERVERU ISP ZDE ZDE !!! Tětiva hostitel = „smtpserver.yourisp.invalid“; // Vytvořit vlastnosti pro relaci Vlastnosti rekvizity = Nový Vlastnosti(); // Pokud používáte statický Transport.send (), // zde je třeba zadat poštovní server rekvizity.dát("mail.smtp.host", hostitel); // Chcete-li zjistit, co se děje za scénou rekvizity.dát("mail.debug", "skutečný"); // Získejte relaci Zasedání zasedání = Zasedání.getInstance(rekvizity); Snaž se { // Získejte transportní objekt k odeslání e-mailu Doprava autobus = zasedání.getTransport("smtp"); // Zde se připojte pouze jednou // Transport.send () se odpojí po každém odeslání // Obvykle není pro SMTP vyžadováno žádné uživatelské jméno a heslo autobus.připojit(); //bus.connect("smtpserver.yourisp.net "," uživatelské jméno "," heslo "); // Vytvoření instance zprávy Zpráva zpráva = Nový MimeMessage(zasedání); // Nastavit atributy zprávy zpráva.nastavitOd(Nový Internetová adresa(z)); Internetová adresa[] adresa = {Nový Internetová adresa(na)}; zpráva.setRecipients(Zpráva.Typ příjemce.NA, adresa); // Analyzujte seznam e-mailových adres oddělených čárkami. Buďte přísní. zpráva.setRecipients(Zpráva.Typ příjemce.CC, Internetová adresa.analyzovat(na, skutečný)); // Analýza seznamu oddělených čárkami / mezerami. Odřízněte trochu. zpráva.setRecipients(Zpráva.Typ příjemce.BCC, Internetová adresa.analyzovat(na, Nepravdivé)); zpráva.setSubject(„Test E-Mail through Java“); zpráva.setSentDate(Nový datum()); // Nastavit obsah zprávy a odeslat setTextContent(zpráva); zpráva.uložit změny(); autobus.poslat zprávu(zpráva, adresa); setMultipartContent(zpráva); zpráva.uložit změny(); autobus.poslat zprávu(zpráva, adresa); setFileAsAttachment(zpráva, „C: /WINDOWS/CLOUD.GIF“); zpráva.uložit změny(); autobus.poslat zprávu(zpráva, adresa); setHTMLContent(zpráva); zpráva.uložit změny(); autobus.poslat zprávu(zpráva, adresa); autobus.zavřít(); } chytit (MessagingException mex) { // Vypíše také všechny vnořené (zřetězené) výjimky mex.printStackTrace(); // Jak získat přístup k vnořeným výjimkám zatímco (mex.getNextException() != nula) { // Získejte další výjimku v řetězci Výjimka např = mex.getNextException(); např.printStackTrace(); -li (!(např instanceof MessagingException)) přestávka; jiný mex = (MessagingException)např; } } } // Jednoduchý jednodílný textový / prostý e-mail. veřejnost statický prázdnota setTextContent(Zpráva zpráva) hodí MessagingException { // Nastavit obsah zprávy Tětiva mytxt = „Toto je test odeslání + "prostý textový e-mail přes Javu. n" + „Tady je řádek 2.“; zpráva.setText(mytxt); // Alternativní forma zpráva.setContent(mytxt, "text / prostý"); } // Jednoduchý vícedílný / smíšený e-mail. Obě části těla jsou textové / prosté. veřejnost statický prázdnota setMultipartContent(Zpráva zpráva) hodí MessagingException { // Vytvořit a vyplnit první část MimeBodyPart p1 = Nový MimeBodyPart(); p1.setText(„Toto je první část testovacího vícedílného e-mailu.“); // Vytvoření a vyplnění druhé části MimeBodyPart p2 = Nový MimeBodyPart(); // Takto nastavíte znakovou sadu na textový obsah p2.setText(„Toto je druhá část“, "us-ascii"); // Vytvořte vícedílné. Přidejte k tomu BodyParts. Vícedílné mp = Nový MimeMultipart(); mp.addBodyPart(p1); mp.addBodyPart(p2); // Nastavit vícedílné jako obsah zprávy zpráva.setContent(mp); } // Nastaví soubor jako přílohu. Používá JAF FileDataSource. veřejnost statický prázdnota setFileAsAttachment(Zpráva zpráva, Tětiva název souboru) hodí MessagingException { // Vytvořit a vyplnit první část MimeBodyPart p1 = Nový MimeBodyPart(); p1.setText(„Toto je první část testovacího vícedílného e-mailu.“ + "Druhá část je soubor jako příloha"); // Vytvořit druhou část MimeBodyPart p2 = Nový MimeBodyPart(); // Vložte soubor do druhé části FileDataSource fds = Nový FileDataSource(název souboru); p2.setDataHandler(Nový DataHandler(fds)); p2.setFileName(fds.getName()); // Vytvořte vícedílné. Přidejte k tomu BodyParts. Vícedílné mp = Nový MimeMultipart(); mp.addBodyPart(p1); mp.addBodyPart(p2); // Nastavit více částí jako obsah zprávy zpráva.setContent(mp); } // Nastaví obsah jedné části HTML. // Odesílání dat jakéhokoli typu je podobné. veřejnost statický prázdnota setHTMLContent(Zpráva zpráva) hodí MessagingException { Tětiva html = „ “ + zpráva.getSubject() + „ “
+ zpráva.getSubject() + „ Toto je test odeslání e-mailu ve formátu HTML“
+ „prostřednictvím Javy. “; // HTMLDataSource je statická vnořená třída zpráva.setDataHandler(Nový DataHandler(Nový HTMLDataSource(html))); } /* * Statická vnořená třída, která slouží jako zdroj dat JAF k odesílání e-mailového obsahu HTML */ statický třída HTMLDataSource nářadí Zdroj dat { soukromé Tětiva html; veřejnost HTMLDataSource(Tětiva htmlString) { html = htmlString; } // Vrací html řetězec v InputStream. // Pokaždé musí být vrácen nový stream. veřejnost InputStream getInputStream() hodí IOException { -li (html == nula) házet Nový IOException(„Null HTML“); vrátit se Nový ByteArrayInputStream(html.getBytes()); } veřejnost Výstupní proud getOutputStream() hodí IOException { házet Nový IOException(„Tento DataHandler nemůže psát HTML“); } veřejnost Tětiva getContentType() { vrátit se „text / html“; } veřejnost Tětiva getName() { vrátit se „JAF text / html dataSource pouze pro odesílání e-mailů“; } }} // Konec třídy
Reference
- ^ „Začlenění JavaEE“. Citováno 12. listopadu 2014.
- ^ ""Zprávy"". Citováno 13. května 2020.
- ^ „Jakarta Mail“. Citováno 3 zář 2019.