Jakarta Mail

Jakarta Mail (früher Javamail) ist a Jakarta ee API Wird zum Senden und Empfangen verwendet Email über SMTP, Pop3 und IMAP. Jakarta Mail ist in die eingebaut Java ee Plattform, bietet aber auch ein optionales Paket für die Verwendung in Java se.[1]

Die aktuelle Version ist 1.6.5, veröffentlicht im März 2020.[2] Andere Open Source Die Implementierung von Jakarta Mail besteht vor Nntp Backend, was es ermöglicht, diese Technologie zum Lesen und Senden zu verwenden Nachrichtengruppe Artikel.

Ab 2019 ist die Software als bekannt als Jakarta Mailund ist Teil der Jakarta ee Marke (früher bekannt als Java ee).

Lizenzierung

Jakarta Mail wird als gehostet als Open Source Projekt auf Eclipse.org unter seinem neuen Namen Jakarta Mail.[3]

Der größte Teil des Jakarta -Mail -Quellcodes ist unter folgenden Lizenzen lizenziert:

  • EPL-2.0
  • GPL-2.0 mit ClassPath -Ausnahmslizenz
  • Der Quellcode für die Demo -Programme ist unter der BSD -Lizenz lizenziert

Beispiele

importieren Java.util.*; importieren javax.mail.*; importieren javax.mail.internet.*; importieren Javax.Aktivation.*; // senden Öffentlichkeit Klasse Test-Email {  Öffentlichkeit statisch Leere hauptsächlich(Saite[] Args) {  // Ersetzen Sie hier Ihre E -Mail -Adressen!  Saite zu = "sendTomailaddress";  Saite aus = "sendfrommailaddress";  // Ersetzen Sie hier den Mailserver Ihres ISP!  Saite Gastgeber = "SMTP.Yourisp.inValid";  // Eigenschaften erstellen, Sitzung abrufen  Eigenschaften Requisiten = Neu Eigenschaften();  // Wenn ich statische Transport.Send () benutze,  // müssen angeben, an welchen Host es senden soll  Requisiten.stellen("Mail.smtp.host", Gastgeber);  // um zu sehen, was hinter der Szene los ist  Requisiten.stellen("Mail.debug", "Stimmt");  Sitzung Sitzung = Sitzung.bekomme Instanz(Requisiten);  Versuchen {  // eine Nachricht instanziieren  Nachricht Nachricht = Neu Mimemessage(Sitzung);  // Nachrichtenattribute festlegen  Nachricht.setfrom(Neu Internetadresse(aus));  Internetadresse[] die Anschrift = {Neu Internetadresse(zu)};  Nachricht.SetRecipients(Nachricht.Empfängertyp.ZU, die Anschrift);  Nachricht.setSubject("E-Mail über Java testen");  Nachricht.setStentdate(Neu Datum());  // Nachrichteninhalt festlegen  Nachricht.Text setzen("Dies ist ein Test beim Senden eines" +  "Einfacher Text-E-Mail durch Java. \ n" +  "Hier ist Zeile 2.");  // die Nachricht senden  Transport.senden(Nachricht);  }  Fang (MessagingException Mex) {  // druckt auch alle verschachtelten (angeketteten) Ausnahmen  Mex.printstacktrace();  }  } }// Ende des Unterrichts 

Beispielcode zum Senden von mehrteiler E-Mail, HTML-E-Mail und Dateianhängen

importieren Java.util.*; importieren Java.io.*; importieren javax.mail.*; importieren javax.mail.internet.*; importieren Javax.Aktivation.*; Öffentlichkeit Klasse Sendmailusage {  Öffentlichkeit statisch Leere hauptsächlich(Saite[] Args) {  // Ersetzen Sie hier Ihre E -Mail -Adressen !!!  Saite zu = "sendTomailaddress";  Saite aus = "sendfrommailaddress";  // Ersetzen Sie hier den Mailserver Ihres ISP -Mailservers !!!  Saite Gastgeber = "SMTPServer.yourisp.inValid";  // Eigenschaften für die Sitzung erstellen  Eigenschaften Requisiten = Neu Eigenschaften();  // Wenn ich statische Transport.Send () benutze,  // Muss den Mailserver hier angeben  Requisiten.stellen("Mail.smtp.host", Gastgeber);  // um zu sehen, was hinter der Szene los ist  Requisiten.stellen("Mail.debug", "Stimmt");  // eine Sitzung bekommen  Sitzung Sitzung = Sitzung.bekomme Instanz(Requisiten);  Versuchen {  // Erhalten Sie ein Transportobjekt, um E-Mails zu senden  Transport Bus = Sitzung.GetTransport("SMTP");  // Nur einmal hier eine Verbindung herstellen  // transport.send () trennt nach jedem Senden  // Normalerweise ist für SMTP kein Benutzername und Passwort erforderlich  Bus.verbinden();  //bus.connect("smtpserver.yourisp.net "," Benutzername "," Passwort ");  // eine Nachricht instanziieren  Nachricht Nachricht = Neu Mimemessage(Sitzung);  // Nachrichtenattribute festlegen  Nachricht.setfrom(Neu Internetadresse(aus));  Internetadresse[] die Anschrift = {Neu Internetadresse(zu)};  Nachricht.SetRecipients(Nachricht.Empfängertyp.ZU, die Anschrift);  // Analysieren Sie eine von Kommas getrennte Liste von E-Mail-Adressen. Streng sein.  Nachricht.SetRecipients(Nachricht.Empfängertyp.CC,  Internetadresse.analysieren(zu, Stimmt));  // Komma/Space-getrennte Liste analysieren. Schneiden Sie etwas locker.  Nachricht.SetRecipients(Nachricht.Empfängertyp.BCC,  Internetadresse.analysieren(zu, FALSCH));  Nachricht.setSubject("E-Mail über Java testen");  Nachricht.setStentdate(Neu Datum());  // Nachrichteninhalt festlegen und senden  setTextContent(Nachricht);  Nachricht.Änderungen speichern();  Bus.Nachricht senden(Nachricht, die Anschrift);  setMultipartContent(Nachricht);  Nachricht.Änderungen speichern();  Bus.Nachricht senden(Nachricht, die Anschrift);  setFileasattachment(Nachricht, "C: /windows/cloud.gif");  Nachricht.Änderungen speichern();  Bus.Nachricht senden(Nachricht, die Anschrift);  SethtmlContent(Nachricht);  Nachricht.Änderungen speichern();  Bus.Nachricht senden(Nachricht, die Anschrift);  Bus.nah dran();  }  Fang (MessagingException Mex) {  // druckt auch alle verschachtelten (angeketteten) Ausnahmen  Mex.printstacktrace();  // wie man auf verschachtelte Ausnahmen zugreift  während (Mex.GetNextexception() ! = Null) {  // Nächste Ausnahme in der Kette erhalten  Ausnahme ex = Mex.GetNextexception();  ex.printstacktrace();  wenn (!(ex Instanz MessagingException)) Unterbrechung;  anders Mex = (MessagingException)ex;  }  }  }  // Ein einfacher, einteiliger Text/einfacher E-Mail.  Öffentlichkeit statisch Leere setTextContent(Nachricht Nachricht) Würfe MessagingException {  // Nachrichteninhalt festlegen  Saite mytxt = "Dies ist ein Test beim Senden eines" +  "Einfacher Text-E-Mail durch Java. \ n" +  "Hier ist Zeile 2.";  Nachricht.Text setzen(mytxt);  // Alternative Form  Nachricht.setContent(mytxt, "Text/Ebene");  }  // Ein einfaches mehrteiliges/gemischtes E-Mail. Beide Körperteile sind Text/einfach.  Öffentlichkeit statisch Leere setMultipartContent(Nachricht Nachricht) Würfe MessagingException {  // Erstellen und füllen Sie den ersten Teil  Mimebodypart P1 = Neu Mimebodypart();  P1.Text setzen("Dies ist Teil einer der multippartischen E-Mails mit Tests.");  // zweiten Teil erstellen und füllen  Mimebodypart p2 = Neu Mimebodypart();  // Hier finden Sie, wie Sie ein Zeichen für Textinhalte festlegen  p2.Text setzen("Dies ist der zweite Teil", "US-Ascii");  // Erstellen Sie den Mehrteil der Mehrheit. Fügen Sie ihm Bodyparts hinzu.  Mehrfachviertel MP = Neu Mimemultipart();  MP.addbodypart(P1);  MP.addbodypart(p2);  // Multipart als Inhalt der Nachricht festlegen  Nachricht.setContent(MP);  }  // Setzen Sie eine Datei als Anhang. Verwendet JAF sarredataSource.  Öffentlichkeit statisch Leere setFileasattachment(Nachricht Nachricht, Saite Dateiname)  Würfe MessagingException {  // Erstellen und füllen Sie den ersten Teil  Mimebodypart P1 = Neu Mimebodypart();  P1.Text setzen("Dies ist Teil einer der multippartischen E-Mails mit Tests." +  "Der zweite Teil ist Datei als Anhang");  // zweiten Teil erstellen  Mimebodypart p2 = Neu Mimebodypart();  // Geben Sie eine Datei im zweiten Teil ein  Fieledatasource fds = Neu Fieledatasource(Dateiname);  p2.setdatahandler(Neu Datahandler(fds));  p2.setFileName(fds.GetName());  // Erstellen Sie den Mehrteil der Mehrheit. Fügen Sie ihm Bodyparts hinzu.  Mehrfachviertel MP = Neu Mimemultipart();  MP.addbodypart(P1);  MP.addbodypart(p2);  // Multipart als Inhalt der Nachricht festlegen  Nachricht.setContent(MP);  }  // Legen Sie einen einzelnen HTML -Inhalt fest.  // Das Senden von Daten jeglicher Art ist ähnlich.  Öffentlichkeit statisch Leere SethtmlContent(Nachricht Nachricht) Würfe MessagingException {  Saite html = "<html> <kopf> <titels>" +  Nachricht.Getubject() +  "</title> </head> <body> <h1>" +  Nachricht.Getubject() +  "</h1> <p> Dies ist ein Test beim Senden einer HTML-E-Mail" +  "durch Java. </body> </html>";  // htmldatasource ist eine statische verschachtelte Klasse  Nachricht.setdatahandler(Neu Datahandler(Neu Htmldatasource(html)));  }  /*      * Statische verschachtelte Klasse, um als JAF-Datenquelle zu fungieren, um HTML-E-Mail-Inhalte zu senden      */  statisch Klasse Htmldatasource Geräte Datenquelle {  Privatgelände Saite html;  Öffentlichkeit Htmldatasource(Saite htmlstring) {  html = htmlstring;  }  // HTML -Zeichenfolge in einem Eingabestream zurückgeben.  // Ein neuer Stream muss jedes Mal zurückgegeben werden.  Öffentlichkeit Eingabestrom GetInputStream() Würfe IoException {  wenn (html == Null) Wurf Neu IoException("Null html");  Rückkehr Neu BytearrayInputStream(html.Getbytes());  }  Öffentlichkeit Ausgabestrom GetOutputStream() Würfe IoException {  Wurf Neu IoException("Dieser Datahandler kann HTML nicht schreiben");  }  Öffentlichkeit Saite GetContentType() {  Rückkehr "Text/HTML";  }  Öffentlichkeit Saite GetName() {  Rückkehr "JAF Text/HTML-Datenquelle, um nur E-Mails zu senden";  }  } } // Ende des Unterrichts 

Verweise

  1. ^ "Javaee Inklusion". Abgerufen 12. November 2014.
  2. ^ ""Nachrichten"". Abgerufen 13. Mai 2020.
  3. ^ "Jakarta Mail". Abgerufen 3 Sep 2019.

Externe Links