Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

E-Mails in Java versenden: Schritt-für-Schritt-Anleitung

Das Versenden von E-Mails über eine Java-Anwendung ist grundsätzlich einfach, erfordert jedoch zunächst die Installation der JavaMail API und des Java Activation Framework (JAF) auf Ihrem System.

Erforderliche Bibliotheken herunterladen

Entpacken Sie die heruntergeladenen Dateien. In den neu erstellten Verzeichnissen finden Sie mehrere JAR-Dateien. Sie müssen mail.jar und activation.jar (bzw. jakarta.activation-api.jar bei neueren Versionen) in Ihren CLASSPATH aufnehmen.

Einfache E-Mail versenden

Hier ist ein Beispiel zum Versenden einer einfachen E-Mail von Ihrem Rechner aus. Voraussetzung ist, dass Ihr localhost mit dem Internet verbunden ist und E-Mails versenden kann.

Beispiel: SendEmail.java

// Dateiname: SendEmail.java
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

public class SendEmail {
    public static void main(String[] args) {
        // Empfänger-E-Mail-Adresse
        String to = "empfaenger@example.com";
        // Absender-E-Mail-Adresse
        String from = "absender@example.com";
        // SMTP-Server (hier localhost)
        String host = "localhost";

        // Systemeigenschaften abrufen
        Properties properties = System.getProperties();
        // Mail-Server konfigurieren
        properties.setProperty("mail.smtp.host", host);

        // Standard-Session-Objekt erstellen
        Session session = Session.getDefaultInstance(properties);

        try {
            // MimeMessage-Objekt erstellen
            MimeMessage message = new MimeMessage(session);
            // Absender setzen
            message.setFrom(new InternetAddress(from));
            // Empfänger setzen
            message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
            // Betreff setzen
            message.setSubject("Dies ist die Betreffzeile!");
            // Nachrichtentext setzen
            message.setText("Dies ist die eigentliche Nachricht");
            // Nachricht senden
            Transport.send(message);
            System.out.println("Nachricht erfolgreich gesendet....");
        } catch (MessagingException mex) {
            mex.printStackTrace();
        }
    }
}

Kompilieren und Ausführen

$ javac SendEmail.java
$ java SendEmail
Nachricht erfolgreich gesendet....

An mehrere Empfänger senden

Um eine E-Mail an mehrere Empfänger zu senden, verwenden Sie die folgende Methode:

void addRecipients(Message.RecipientType type, Address[] addresses) throws MessagingException

Parameter:

HTML-E-Mail versenden

Dieses Beispiel zeigt, wie Sie eine HTML-formatierte E-Mail versenden. Der Unterschied zum vorherigen Beispiel besteht in der Verwendung der setContent()-Methode mit dem MIME-Type "text/html".

Beispiel: SendHTMLEmail.java

// Dateiname: SendHTMLEmail.java
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

public class SendHTMLEmail {
    public static void main(String[] args) {
        String to = "empfaenger@example.com";
        String from = "absender@example.com";
        String host = "localhost";

        Properties properties = System.getProperties();
        properties.setProperty("mail.smtp.host", host);
        Session session = Session.getDefaultInstance(properties);

        try {
            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress(from));
            message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
            message.setSubject("Dies ist die Betreffzeile!");
            // HTML-Inhalt setzen
            message.setContent("<h1>Dies ist die eigentliche Nachricht</h1>", "text/html");
            Transport.send(message);
            System.out.println("HTML-Nachricht erfolgreich gesendet....");
        } catch (MessagingException mex) {
            mex.printStackTrace();
        }
    }
}

Ausgabe

$ java SendHTMLEmail
HTML-Nachricht erfolgreich gesendet....

E-Mail mit Anhang versenden

Hier lernen Sie, wie Sie eine E-Mail mit Dateianhang versenden.

Beispiel: SendFileEmail.java

// Dateiname: SendFileEmail.java
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

public class SendFileEmail {
    public static void main(String[] args) {
        String to = "empfaenger@example.com";
        String from = "absender@example.com";
        String host = "localhost";

        Properties properties = System.getProperties();
        properties.setProperty("mail.smtp.host", host);
        Session session = Session.getDefaultInstance(properties);

        try {
            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress(from));
            message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
            message.setSubject("Betreff mit Anhang");

            // Nachrichtenteil erstellen
            BodyPart messageBodyPart = new MimeBodyPart();
            messageBodyPart.setText("Dies ist der Nachrichtentext");

            // Multipart-Container erstellen
            Multipart multipart = new MimeMultipart();
            multipart.addBodyPart(messageBodyPart);

            // Anhang hinzufügen
            messageBodyPart = new MimeBodyPart();
            String filename = "datei.txt";
            DataSource source = new FileDataSource(filename);
            messageBodyPart.setDataHandler(new DataHandler(source));
            messageBodyPart.setFileName(filename);
            multipart.addBodyPart(messageBodyPart);

            // Komplette Nachricht setzen
            message.setContent(multipart);
            Transport.send(message);
            System.out.println("E-Mail mit Anhang erfolgreich gesendet....");
        } catch (MessagingException mex) {
            mex.printStackTrace();
        }
    }
}

Ausgabe

$ java SendFileEmail
E-Mail mit Anhang erfolgreich gesendet....

Benutzerauthentifizierung

Falls der E-Mail-Server eine Authentifizierung erfordert, setzen Sie Benutzername und Passwort wie folgt:

props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.user", "meinBenutzer");
props.setProperty("mail.password", "meinPasswort");

Der restliche Versandmechanismus bleibt unverändert. Beachten Sie, dass für produktive Umgebungen die Verwendung von Session.getInstance() mit einem Authenticator empfohlen wird.

Java

  1. Java Operatoren meistern: Typen, Syntax und praktische Beispiele
  2. Java Kommentare: Typen, Verwendung und Best Practices
  3. Java Enhanced For-Schleife meistern: Syntax, Beispiele und Best Practices
  4. Java Strings meistern: Erstellung, Methoden und Best Practices
  5. Java-Schnittstellen meistern: Konzepte, Implementierung und Best Practices
  6. Java anonyme innere Klassen meistern: Definition, Syntax und praktische Beispiele
  7. Java Try-With-Resources meistern: Automatisches Ressourcenmanagement erklärt
  8. Java Annotations erklärt: Typen, Platzierung und praktische Beispiele
  9. Java Assertions: Praktischer Leitfaden zur Fehlererkennung und Code-Reliabilität
  10. Java Vector verstehen: Verwendung, Funktionen und Vergleich mit ArrayList