Java gilt seit vielen Jahren als eine der beliebtesten Webprogrammiersprachen. In diesem Tutorial zeigen wir, wie Sie E-Mails in Java mit HTML-Inhalten sowie Bildern über einen SMTP-Server versenden.
Die Hauptoption besteht darin, eine Java-API zum Senden und Empfangen von E-Mails über SMTP, POP3 und IMAP zu verwenden. Es wird als optionales Paket implementiert, das mit jedem Betriebssystem kompatibel ist. Gleichzeitig wird Jakarta Mail als Teil der Jakarta EE- und Java EE-Plattformen bereitgestellt. In früheren Versionen hieß das Mailpaket JavaMail API. Seit Juli 2019 wird die Java-Software jedoch von der Eclipse Foundation weiterentwickelt. Deshalb hat auch das E-Mail-Paket den neuen Namen bekommen. Alle Hauptklassen und Eigenschaften sind für JavaMail und Jakarta Mail gleich.
Erste Schritte mit Jakarta Mail
Um mit Jakarta Mail zu arbeiten, sollten Sie zunächst das jakarta.mail.jar Datei in Ihre CLASSPATH-Umgebung. Sie können es von der Jakarta Mail-Projektseite herunterladen auf GitHub .
Außerdem können Sie Jakarta Mail-Jar-Dateien im Maven-Repository finden und sie mit Maven-Abhängigkeiten zu Ihrer Umgebung hinzufügen:
com.sun.mail jakarta.mail 1.6.4
Bitte beachten Sie, dass Sie bei Verwendung von JDK 1.5 oder älteren Versionen auch eine Implementierung des JavaBeans Activation Framework benötigen.
java.util importieren.;
javax.mail importieren.;
javax.mail.internet importieren.;
javax.activation importieren.;
Konzentrieren wir uns auf die wichtigsten Schritte zum Vorbereiten von HTML-E-Mails und zum Senden über einen externen SMTP-Server.
Jakarta Mail-Klassen und Syntax
Sehen wir uns die Kernklassen und Eigenschaften an, die am häufigsten zum Erstellen und Senden von Nachrichten mit Jakarta Mail verwendet werden.
Die Sitzungsklasse (|_+_|) ist die primäre, die alle Eigenschaften und Standardeinstellungen verbindet. Die folgenden Methoden werden verwendet, um das Sitzungsobjekt abzurufen:
url:roku.com/link
getDefaultInstance() gibt die Standardsitzung zurück
öffentliche statische Sitzung getDefaultInstance/(Properties props)
public static Session getDefaultInstance(Properties props, Authenticator Auth)
getInstance(): gibt die neue Sitzung zurück.
öffentliche statische Sitzung getInstance(Eigenschaften props)
öffentliche statische Session getInstance(Eigenschaften props, Authenticator-Authentifizierung)
Die Nachrichtenklasse (|_+_|) ist eine abstrakte Klasse zum eigentlichen Erstellen einer E-Mail-Nachricht. Wir werden hauptsächlich die Unterklasse Mime Message (|_+_|) und ihre Hauptmethoden verwenden:
|_+_| legt das Von-Header-Feld fest.
public void addFrom(Adresse[ ] Adressen)
|_+_| fügt die angegebene Adresse zum Empfängertyp hinzu.
public void addRecipient(Message.RecipientType type, Address[ ] Adressen)
Message.RecipientType.TO Zu
Message.RecipientType.CC DC
Message.RecipientType.BCC Bcc
MimeMessage.RecipientType.NEWSGROUPS Newsgroups
|_+_| setzt das Betreff-Header-Feld.
public void setSubject(String-Betreff)
|_+_| legt den Text als Nachrichteninhalt unter Verwendung des MIME-Typs text/plain fest.
public void setText(String-Textnachricht)
|_+_| legt den Inhalt dieser Nachricht fest.
public void setContent(Objekt o, String-Typ)
Um E-Mails über einen externen SMTP-Server zu senden, verwenden Sie |_+_| Paket: Es ist ein SMTP-Protokollanbieter für die JavaMail-API, der den Zugriff auf einen SMTP-Server ermöglicht.
Die wichtigsten Eigenschaften sind:
|_+_|, Standardbenutzername für SMTP.
|_+_|, der SMTP-Server, zu dem eine Verbindung hergestellt werden soll.
|_+_|, der SMTP-Serverport, zu dem eine Verbindung hergestellt werden soll, wenn die Methode connect() keinen explizit angibt. Standardmäßig auf 25.
Um die SMTP-Authentifizierung zu aktivieren, setzen Sie |_+_| -Eigenschaft oder geben Sie dem SMTP-Transport einen Benutzernamen und ein Kennwort an, wenn Sie eine Verbindung zum SMTP-Server herstellen.
|_+_| -Klasse ist eine Spezialisierung der MimeMessage-Klasse zum Angeben von SMTP-Optionen und -Parametern. Verwenden Sie einfach diese Klasse anstelle von MimeMessage und legen Sie SMTP-Optionen mit den Methoden dieser Klasse fest.
öffentliche SMTPMessage (Sitzungssitzung)
Transport ( |_+_|) ist eine abstrakte Klasse zum Senden von Nachrichten.
Transport.send(Nachricht);
Um alle Klassen und ihre Methoden anzuzeigen, lesen Sie diesen Abschnitt der Jakarta Mail-Dokumentation .
Möchten Sie sich mit dem Debuggen und Testen von E-Mails mit Java befassen? Lies das kompletter Artikel .
#Java
blog.mailtrap.io
Java und E-Mails: So verwenden Sie Jakarta Mail
Dieser Beitrag hilft Ihnen, die ersten Schritte mit Jakarta Mail (früher bekannt als JavaMail) zu machen, um E-Mails aus Java-Apps zu versenden. Außerdem überprüfen wir das Spring Framework, Apache Commons Email und Simple Java Mail