logo

E-Mail in Java senden

  1. Senden von E-Mails mit der JavaMail-API
  2. Schritte zum Senden von E-Mails mit der JavaMail-API
    1. Holen Sie sich das Sitzungsobjekt
    2. Verfassen Sie die Nachricht
    3. Senden Sie die Nachricht
  3. Einfaches Beispiel für das Senden von E-Mails mithilfe der JavaMail-API
  4. Beispiel für das Senden von E-Mails mithilfe der JavaMail-API über den vom Hostanbieter bereitgestellten SMTP-Server

Es gibt verschiedene Möglichkeiten, E-Mails mithilfe der JavaMail-API zu senden. Zu diesem Zweck benötigen Sie einen SMTP-Server, der für den E-Mail-Versand zuständig ist.

Sie können eine der folgenden Techniken verwenden, um den SMTP-Server abzurufen:

  • Installieren und verwenden Sie einen beliebigen SMTP-Server wie Postcast-Server, Apache James-Server, Cmail-Server usw. (oder)
  • Nutzen Sie den vom Hostanbieter bereitgestellten SMTP-Server, z.B. mein SMTP-Server ist mail.javatpoint.com (oder)
  • Verwenden Sie den SMTP-Server anderer Unternehmen, z. B. Gmail usw.

Hier lernen wir die drei oben genannten Ansätze zum Senden von E-Mails mithilfe der Javamail-API kennen. Wir sollten jedoch die grundlegenden Schritte zum Senden von E-Mails aus einer Java-Anwendung lernen.


Schritte zum Senden von E-Mails mit der JavaMail-API

Zum Versenden von E-Mails mit JavaMail sind die folgenden drei Schritte erforderlich. Sie sind wie folgt:

    Holen Sie sich das Sitzungsobjektdas alle Informationen des Hosts wie Hostname, Benutzername, Passwort usw. speichert.Verfassen Sie die Nachricht Senden Sie die Nachricht


1) Holen Sie sich das Sitzungsobjekt

Der javax.mail.Session-Klasse stellt zwei Methoden zum Abrufen des Sitzungsobjekts bereit: die Methode Session.getDefaultInstance() und die Methode Session.getInstance(). Sie können jede Methode verwenden, um das Sitzungsobjekt abzurufen.

Methode der Session-Klasse

NEIN.MethodeBeschreibung
1öffentliche statische Sitzung getDefaultInstance(Eigenschaften Requisiten)gibt die Standardsitzung zurück.
2öffentliche statische Sitzung getDefaultInstance(Properties props,Authenticator auth)gibt die Standardsitzung zurück.
3öffentliche statische Sitzung getInstance(Eigenschaften Requisiten)gibt die neue Sitzung zurück.
4öffentliche statische Sitzung getInstance(Properties props,Authenticator auth)gibt die neue Sitzung zurück.

Beispiel für die Methode getDefaultInstance()

 Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getDefaultInstance(properties,null); 

Beispiel für die Methode getInstance()

 Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getInstance(properties,null); 

2) Verfassen Sie die Nachricht

Die Klasse javax.mail.Message stellt Methoden zum Verfassen der Nachricht bereit. Da es sich jedoch um eine abstrakte Klasse handelt, wird hauptsächlich deren Unterklasse javax.mail.internet.MimeMessage verwendet.
Um die Nachricht zu erstellen, müssen Sie ein Sitzungsobjekt im MimeMessage-Klassenkonstruktor übergeben. Zum Beispiel:
 MimeMessage message=new MimeMessage(session); 
Jetzt wurde ein Nachrichtenobjekt erstellt, aber zum Speichern von Informationen in diesem Objekt bietet die MimeMessage-Klasse viele Methoden. Sehen wir uns die von der MimeMessage-Klasse bereitgestellten Methoden an:

Häufig verwendete Methoden der MimeMessage-Klasse

NEIN.MethodeBeschreibung
1public void setFrom(Adressadresse)wird verwendet, um das From-Header-Feld festzulegen.
2public void addRecipient(Message.RecipientType Typ, Adressadresse)wird verwendet, um die angegebene Adresse zum Empfängertyp hinzuzufügen.
3public void addRecipients(Message.RecipientType Typ, Address[] Adressen)wird verwendet, um die angegebenen Adressen zum Empfängertyp hinzuzufügen.
4public void setSubject(String subject)wird verwendet, um das Betreff-Header-Feld festzulegen.
5public void setText(String textmessage)wird verwendet, um den Text mithilfe des MIME-Typs text/plain als Nachrichteninhalt festzulegen.
6public void setContent(Object msg, String contentType)wird verwendet, um den Inhalt mithilfe des angegebenen MIME-Typs als Nachrichteninhalt festzulegen.

Beispiel zum Verfassen der Nachricht:

 MimeMessage message=new MimeMessage(session); message.setFrom(new InternetAddress('[email protected]')); message.addRecipient(Message.RecipientType.To, new InternetAddress('[email protected]')); message.setHeader('Hi, everyone'); message.setText('Hi, This mail is to inform you...'); 

3) Senden Sie die Nachricht

Die Klasse javax.mail.Transport stellt eine Methode zum Senden der Nachricht bereit.

Häufig verwendete Methoden der Transportklasse

NEIN.MethodeBeschreibung
1public static void send(Message message)wird verwendet, um die Nachricht zu senden.
2public static void send(Nachricht Nachricht, Adresse[] Adresse)wird verwendet, um die Nachricht an die angegebenen Adressen zu senden.

Beispiel zum Versenden der Nachricht:

 Transport.send(message); 

Einfaches Beispiel für das Senden von E-Mails in Java

Laden Sie diese JAR-Dateien herunter oder besuchen Sie die Oracle-Website, um die neueste Version herunterzuladen.
In diesem Beispiel lernen wir, wie man E-Mails über den auf dem Computer installierten SMTP-Server sendet, z. B. Postcast-Server, Apache James-Server, Cmail-Server usw. Wenn Sie E-Mails über den vom Hostanbieter bereitgestellten SMTP-Server senden möchten, sehen Sie sich das folgende Beispiel an.
Um die E-Mail über die JavaMail-API zu senden, müssen Sie die beiden JAR-Dateien laden:
mail.jar
Aktivierung.jar
 import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendEmail { public static void main(String [] args){ String to = '[email protected]';//change accordingly String from = '[email protected]';change accordingly String host = 'localhost';//or IP address //Get the session object Properties properties = System.getProperties(); properties.setProperty('mail.smtp.host', host); Session session = Session.getDefaultInstance(properties); //compose the message try{ MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); message.setSubject('Ping'); message.setText('Hello, this is example of sending email '); // Send message Transport.send(message); System.out.println('message sent successfully....'); }catch (MessagingException mex) {mex.printStackTrace();} } } 
Laden Sie dieses Beispiel herunter, um E-Mails zu senden

In diesem Beispiel lernen wir, wie man E-Mails über den auf dem Computer installierten SMTP-Server sendet, z. B. Postcast-Server, Apache James-Server, Cmail-Server usw. Wenn Sie E-Mails über den vom Hostanbieter bereitgestellten SMTP-Server senden möchten, sehen Sie sich das folgende Beispiel an.

Um dieses Beispiel auszuführen, müssen Sie zwei JAR-Dateien laden. Es gibt 4 Möglichkeiten, die JAR-Datei zu laden. Eine Möglichkeit besteht darin, den Klassenpfad festzulegen. Sehen wir uns an, wie dieses Beispiel ausgeführt wird:

Laden Sie die JAR-Dateic:> set classpath=mail.jar;activation.jar;.;
Kompilieren Sie die Quelldateic:> javac SendEmail.java
betrieben vonc:> Java SendEmail

Beispiel für das Senden von E-Mails in Java über den vom Hostanbieter bereitgestellten SMTP-Server

Laden Sie diese JAR-Dateien herunter oder besuchen Sie die Oracle-Website, um die neueste Version herunterzuladen.
Wenn Sie den vom Hostanbieter bereitgestellten SMTP-Server verwenden, z. mail.javatpoint.com , müssen Sie den Benutzernamen und das Passwort authentifizieren. Die Klasse javax.mail.PasswordAuthentication wird zur Authentifizierung des Passworts verwendet.
Wenn Sie die E-Mail über die JavaMail-API senden, laden Sie die beiden JAR-Dateien:
mail.jar
Aktivierung.jar
 import java.util.Properties; import javax.mail.*; import javax.mail.internet.*; public class SendMailBySite { public static void main(String[] args) { String host='mail.javatpoint.com'; final String user='[email protected]';//change accordingly final String password='xxxxx';//change accordingly String to='[email protected]';//change accordingly //Get the session object Properties props = new Properties(); props.put('mail.smtp.host',host); props.put('mail.smtp.auth', 'true'); Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(user,password); } }); //Compose the message try { MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(user)); message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); message.setSubject('javatpoint'); message.setText('This is simple program of sending email using JavaMail API'); //send the message Transport.send(message); System.out.println('message sent successfully...'); } catch (MessagingException e) {e.printStackTrace();} } } 
Laden Sie dieses Beispiel herunter, um E-Mails zu senden

Wie Sie im obigen Beispiel sehen können, müssen Benutzer-ID und Passwort authentifiziert werden. Wie dieses Programm zeigt, können Sie ganz einfach E-Mails versenden. Ändern Sie den Benutzernamen und das Passwort entsprechend. Sehen wir uns noch einmal an, wie man es mit einer einfachen Technik ausführt:

Laden Sie die JAR-Dateic:> set classpath=mail.jar;activation.jar;.;
Kompilieren Sie die Quelldateic:> javac SendMailBySite.java
betrieben vonc:> Java SendMailBySite