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

Java - E-Mail senden

Das Senden einer E-Mail mit Ihrer Java-Anwendung ist einfach genug, aber zu Beginn sollten Sie über JavaMail API verfügen und Java Activation Framework (JAF) auf Ihrem Rechner installiert.

Laden Sie diese Dateien herunter und entpacken Sie sie. In den neu erstellten Verzeichnissen der obersten Ebene finden Sie eine Reihe von JAR-Dateien für beide Anwendungen. Sie müssen mail.jar hinzufügen und aktivierung.jar Dateien in Ihrem CLASSPATH.

Eine einfache E-Mail senden

Hier ist ein Beispiel zum Senden einer einfachen E-Mail von Ihrem Gerät aus. Es wird davon ausgegangen, dass Ihr localhost mit dem Internet verbunden und in der Lage ist, eine E-Mail zu versenden.

Beispiel

// File Name SendEmail.java

import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

public class SendEmail {

   public static void main(String [] args) {    
      // Recipient's email ID needs to be mentioned.
      String to = "[email protected]";

      // Sender's email ID needs to be mentioned
      String from = "[email protected]";

      // Assuming you are sending email from localhost
      String host = "localhost";

      // Get system properties
      Properties properties = System.getProperties();

      // Setup mail server
      properties.setProperty("mail.smtp.host", host);

      // Get the default Session object.
      Session session = Session.getDefaultInstance(properties);

      try {
         // Create a default MimeMessage object.
         MimeMessage message = new MimeMessage(session);

         // Set From: header field of the header.
         message.setFrom(new InternetAddress(from));

         // Set To: header field of the header.
         message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));

         // Set Subject: header field
         message.setSubject("This is the Subject Line!");

         // Now set the actual message
         message.setText("This is actual message");

         // Send message
         Transport.send(message);
         System.out.println("Sent message successfully....");
      } catch (MessagingException mex) {
         mex.printStackTrace();
      }
   }
}

Kompilieren Sie dieses Programm und führen Sie es aus, um eine einfache E-Mail zu versenden −

Ausgabe

$ java SendEmail
Sent message successfully....

Wenn Sie eine E-Mail an mehrere Empfänger senden möchten, werden die folgenden Methoden verwendet, um mehrere E-Mail-IDs anzugeben −

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

Hier ist die Beschreibung der Parameter −

HTML-E-Mail senden

Hier ist ein Beispiel zum Senden einer HTML-E-Mail von Ihrem Gerät aus. Hier wird davon ausgegangen, dass Ihr localhost mit dem Internet verbunden und in der Lage ist, eine E-Mail zu versenden.

Dieses Beispiel ist dem vorherigen sehr ähnlich, außer dass wir hier die Methode setContent() verwenden, um Inhalt festzulegen, dessen zweites Argument "text/html" ist, um anzugeben, dass der HTML-Inhalt in der Nachricht enthalten ist.

Anhand dieses Beispiels können Sie HTML-Inhalte in beliebiger Größe senden.

Beispiel

// File Name SendHTMLEmail.java

import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

public class SendHTMLEmail {

   public static void main(String [] args) {
      // Recipient's email ID needs to be mentioned.
      String to = "[email protected]";

      // Sender's email ID needs to be mentioned
      String from = "[email protected]";

      // Assuming you are sending email from localhost
      String host = "localhost";

      // Get system properties
      Properties properties = System.getProperties();

      // Setup mail server
      properties.setProperty("mail.smtp.host", host);

      // Get the default Session object.
      Session session = Session.getDefaultInstance(properties);

      try {
         // Create a default MimeMessage object.
         MimeMessage message = new MimeMessage(session);

         // Set From: header field of the header.
         message.setFrom(new InternetAddress(from));

         // Set To: header field of the header.
         message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));

         // Set Subject: header field
         message.setSubject("This is the Subject Line!");

         // Send the actual HTML message, as big as you like
         message.setContent("<h1>This is actual message</h1>", "text/html");

         // Send message
         Transport.send(message);
         System.out.println("Sent message successfully....");
      } catch (MessagingException mex) {
         mex.printStackTrace();
      }
   }
}

Kompilieren Sie dieses Programm und führen Sie es aus, um eine HTML-E-Mail zu senden −

Ausgabe

$ java SendHTMLEmail
Sent message successfully....

Anhang per E-Mail senden

Hier ist ein Beispiel zum Senden einer E-Mail mit Anhang von Ihrem Gerät. Hier wird davon ausgegangen, dass Ihr localhost mit dem Internet verbunden und in der Lage ist, eine E-Mail zu versenden.

Beispiel

// File Name SendFileEmail.java

import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

public class SendFileEmail {

   public static void main(String [] args) {     
      // Recipient's email ID needs to be mentioned.
      String to = "[email protected]";

      // Sender's email ID needs to be mentioned
      String from = "[email protected]";

      // Assuming you are sending email from localhost
      String host = "localhost";

      // Get system properties
      Properties properties = System.getProperties();

      // Setup mail server
      properties.setProperty("mail.smtp.host", host);

      // Get the default Session object.
      Session session = Session.getDefaultInstance(properties);

      try {
         // Create a default MimeMessage object.
         MimeMessage message = new MimeMessage(session);

         // Set From: header field of the header.
         message.setFrom(new InternetAddress(from));

         // Set To: header field of the header.
         message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));

         // Set Subject: header field
         message.setSubject("This is the Subject Line!");

         // Create the message part 
         BodyPart messageBodyPart = new MimeBodyPart();

         // Fill the message
         messageBodyPart.setText("This is message body");
         
         // Create a multipar message
         Multipart multipart = new MimeMultipart();

         // Set text message part
         multipart.addBodyPart(messageBodyPart);

         // Part two is attachment
         messageBodyPart = new MimeBodyPart();
         String filename = "file.txt";
         DataSource source = new FileDataSource(filename);
         messageBodyPart.setDataHandler(new DataHandler(source));
         messageBodyPart.setFileName(filename);
         multipart.addBodyPart(messageBodyPart);

         // Send the complete message parts
         message.setContent(multipart );

         // Send message
         Transport.send(message);
         System.out.println("Sent message successfully....");
      } catch (MessagingException mex) {
         mex.printStackTrace();
      }
   }
}

Kompilieren Sie dieses Programm und führen Sie es aus, um eine HTML-E-Mail zu senden −

Ausgabe

$ java SendFileEmail
Sent message successfully....

Benutzerauthentifizierungsteil

Wenn es erforderlich ist, dem E-Mail-Server zu Authentifizierungszwecken eine Benutzer-ID und ein Kennwort bereitzustellen, können Sie diese Eigenschaften wie folgt festlegen −

props.setProperty("mail.user", "myuser");
props.setProperty("mail.password", "mypwd");

Der Rest des E-Mail-Sendemechanismus würde wie oben erklärt bleiben.


Java

  1. Java-Operatoren
  2. Java-Kommentare
  3. Java for-each-Schleife
  4. Java-Strings
  5. Java-Schnittstelle
  6. Anonyme Java-Klasse
  7. Java-Versuch-mit-Ressourcen
  8. Java-Anmerkungen
  9. Java-Assertionen
  10. Java-Vektor