Kostenlose Java-API zum Senden einfacher & HTML-basierter E-Mails
Open-Source Java-E-Mail-Verarbeitungs-API zum Erstellen und Senden von Text- und HTML-basierten E-Mail-Nachrichten mit Anhängen, eingebetteten Bildern, SMTP-, IMAP-, POP3-Protokollunterstützung und erweiterter Sicherheitsunterstützung.
Was ist JavaMail?
In der Welt von Unternehmensanwendungen und automatisierten Systemen ist die Möglichkeit, E-Mails programmgesteuert zu senden und zu empfangen, nicht nur ein Komfort – sie ist eine Notwendigkeit. Vom Versenden von Passwortzurücksetzungen und Auftragsbestätigungen bis hin zur Verarbeitung eingehender Support‑Tickets ist die E‑Mail‑Integration ein Kernfeature. Für Java‑Entwickler war das Fundament dieser Funktionalität die robuste, Open‑Source JavaMail‑API. Diese umfassende Produktseite wird die JavaMail‑API, ihre leistungsstarken Funktionen untersuchen und praktische Code‑Beispiele bereitstellen, damit Sie die E‑Mail‑Integration in Ihren Java‑Anwendungen starten können.
Die JavaMail‑API ist ein ausgereiftes Open‑Source‑Framework, das von Oracle (ehemals Sun Microsystems) bereitgestellt wird und ein plattform‑ und protokollunabhängiges Framework zum Aufbau von Mail‑ und Messaging‑Anwendungen bietet. Sie ist die Standard‑API für die Verarbeitung von E‑Mails im Java‑Ökosystem. Sie abstrahiert die Komplexität der zugrunde liegenden E‑Mail‑Protokolle wie SMTP, POP3 und IMAP, sodass Entwickler mit einer sauberen, objektorientierten Schnittstelle arbeiten können. Es gibt mehrere wichtige Funktionen der Bibliothek, wie das Erstellen und Senden von HTML‑E‑Mails, das Hinzufügen von Anhängen, das Einfügen von Inline‑Bildern, Multipart‑Inhalte, starke Authentifizierung und Sicherheitsunterstützung, Ordner‑basierte E‑Mail‑Unterstützung, verbesserte Such‑ und Filterfunktionen, das Lesen von E‑Mails via SMTP und vieles mehr.
Erste Schritte mit JavaMail
Zunächst müssen Sie JDK 1.6 oder höher installieren. Fügen Sie die folgende Maven‑Abhängigkeit in die pom.xml ein.
Maven Dependency
<dependency>
<groupId>com.sun.mail</groupId>s;
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
Sie können die Bibliothek direkt von der GitHub-Seite herunterladen.
E‑Mail‑Nachrichtensenden über Java‑Bibliothek
Die Open‑Source‑JavaMail‑Bibliothek unterstützt das Erstellen und Senden sowohl einfacher als auch HTML‑E‑Mail‑Nachrichten innerhalb von Java‑Anwendungen. Entwickler können vorhandene E‑Mails lesen, Dateien sowie Bilder als Anhänge hinzufügen, E‑Mails an mehrere Empfänger senden, benutzerdefinierte Header hinzufügen und vieles mehr. Sie müssen Verbindungsparameter wie Host, Port und Flags definieren, um Authentifizierung und TLS zu aktivieren. Das folgende Beispiel demonstriert, wie man eine einfache Nur‑Text‑E‑Mail über einen SMTP‑Server (z. B. Gmail) in einer Java‑Anwendung sendet.
Wie man eine einfache Nur‑Text‑E‑Mail über einen SMTP‑Server via Java‑API sendet
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
public class SimpleEmailSender {
public static void main(String[] args) {
// Sender's and recipient's email ID
String from = "your.email@gmail.com";
String to = "recipient.email@example.com";
// SMTP server configuration (for Gmail)
String host = "smtp.gmail.com";
final String username = "your.email@gmail.com";
final String password = "your-app-password"; // Use an App Password for Gmail
// Setup mail server properties
Properties properties = new Properties();
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.starttls.enable", "true"); // Use TLS
properties.put("mail.smtp.host", host);
properties.put("mail.smtp.port", "587");
// Get the Session object and pass username and password
Session session = Session.getInstance(properties, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
// Create a default MimeMessage object
Message message = new MimeMessage(session);
// Set From: header field
message.setFrom(new InternetAddress(from));
// Set To: header field
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
// Set Subject: header field
message.setSubject("Hello from JavaMail API");
// Set the actual message body
message.setText("This is a test email sent programmatically using the JavaMail API.");
// Send message
Transport.send(message);
System.out.println("Email sent successfully!");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}
E‑Mail‑Suche & ‑Filterung mit Java
Die Open‑Source‑JavaMail‑Bibliothek bietet vollständige Unterstützung für die Suche nach E‑Mail‑Nachrichten in einem Ordner anhand verschiedener Kriterien (Absender, Betreff, Datum, Flags) innerhalb von Java‑Anwendungen. Das ist besonders nützlich beim Entwickeln von E‑Mail‑Clients oder Automatisierungen. Sie können mehrere Suchbegriffe (AND, OR, NOT) über AndTerm, OrTerm, NotTerm kombinieren. Das folgende Beispiel zeigt, wie man Nachrichten von einem bestimmten Absender sucht.
Wie man Nachrichten von einem bestimmten Absender in Java‑Apps sucht
Store store = session.getStore("imap");
store.connect("imap.example.com", username, password);
Folder inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);
// Search for messages from a specific sender
SearchTerm senderTerm = new FromStringTerm("alerts@example.com");
Message[] found = inbox.search(senderTerm);
for (Message m : found) {
System.out.println("Subject: " + m.getSubject());
}
inbox.close(false);
store.close();
SMTP‑, IMAP‑, POP3‑Protokollunterstützung
Die Open‑Source‑JavaMail unterstützt standardmäßig die drei am häufigsten genutzten E‑Mail‑Protokolle: SMTP (Simple Mail Transfer Protocol) zum Senden von Nachrichten, POP3 (Post Office Protocol 3) für die einfache E‑Mail‑Abruf und IMAP (Internet Message Access Protocol) für fortgeschrittenen Zugriff (Ordner, partielles Abrufen). Darüber hinaus unterstützt sie sichere Varianten wie SMTPS, POP3S, IMAPS und kann zu benutzerdefinierten Anbietern erweitert werden.
Erweiterte Authentifizierung und Sicherheit mit Java
Die Open‑Source‑JavaMail unterstützt die sichere Kommunikation mit E‑Mail‑Servern, was in der heutigen sicherheitsbewussten Umgebung entscheidend ist. Die Bibliothek unterstützt TLS (Transport Layer Security), das die Kommunikationsverbindung zwischen Ihrer Anwendung und dem Mail‑Server verschlüsselt. Sie unterstützt zudem SSL (Secure Sockets Layer), den Vorgänger von TLS, ebenfalls für die Herstellung einer sicheren Verbindung. Zusätzlich unterstützt die Bibliothek die gängige Benutzername/Passwort‑Authentifizierung für Server, die eine Anmeldung erfordern.