Senden von E-Mails mit Anhängen in Java

1. Übersicht

In diesem kurzen Tutorial erfahren Sie, wie Sie E-Mails mit einzelnen und mehreren Anhängen in Java mithilfe der JavaMail- API senden .

2. Projekteinrichtung

In diesem Artikel erstellen wir ein einfaches Maven-Projekt mit der Abhängigkeit javax.mail :

 javax.mail mail 1.5.0-b01 

3. Mail mit Anhängen senden

Zuerst müssen wir die Anmeldeinformationen des E-Mail-Dienstanbieters konfigurieren. Anschließend wird das Sitzungsobjekt erstellt, indem der E-Mail-Host, der Port, der Benutzername und das Kennwort angegeben werden. Alle diese Details werden vom E-Mail-Host-Service bereitgestellt. Wir können alle gefälschten SMTP-Testserver für unseren Code verwenden.

Das Sitzungsobjekt fungiert als Verbindungsfactory für die Konfiguration und Authentifizierung von JavaMail .

Nachdem wir nun ein Session- Objekt haben, gehen wir weiter und erstellen MimeMessage- und MimeBodyPart- Objekte. Wir verwenden diese Objekte, um die E-Mail-Nachricht zu erstellen:

Message message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to)); message.setSubject("Test Mail Subject"); BodyPart messageBodyPart = new MimeBodyPart(); messageBodyPart.setText("Mail Body"); 

Im obigen Snippet haben wir das MimeMessage- Objekt mit den erforderlichen Details wie von, bis und Betreff erstellt. Dann haben wir ein MimeBodyPart- Objekt mit dem E-Mail- Text .

Jetzt müssen wir ein weiteres MimeBodyPart erstellen , um einen Anhang in unsere E-Mail einzufügen :

MimeBodyPart attachmentPart = new MimeBodyPart(); attachmentPart.attachFile(new File("C:\\Document1.txt")); 

Wir haben jetzt zwei MimeBodyPart- Objekte für eine Mail-Sitzung. Wir müssen also ein MimeMultipart- Objekt erstellen und dann beide MimeBodyPart- Objekte hinzufügen :

Multipart multipart = new MimeMultipart(); multipart.addBodyPart(messageBodyPart); multipart.addBodyPart(attachmentPart); 

Schließlich wird das MimeMultiPart dem MimeMessage- Objekt als unser E-Mail-Inhalt hinzugefügt und die Transport.send () -Methode wird aufgerufen, um die Nachricht zu senden:

message.setContent(multipart); Transport.send(message); 

Zusammenfassend enthält die Nachricht MimeMultiPart, das außerdem mehrere MimeBodyPart (s) enthält . So stellen wir die komplette E-Mail zusammen.

Um mehrere Anhänge zu senden, können Sie einfach ein weiteres MimeBodyPart hinzufügen .

4. Fazit

In diesem Tutorial haben wir gelernt, wie Sie E-Mails mit einzelnen und mehreren Anhängen in Java senden.

Wie immer ist der vollständige Quellcode auf GitHub verfügbar.