Heim >Java >javaLernprogramm >Wie können Java-Anwendungen E-Mails über Gmail, Yahoo oder Hotmail versenden?

Wie können Java-Anwendungen E-Mails über Gmail, Yahoo oder Hotmail versenden?

Susan Sarandon
Susan SarandonOriginal
2024-12-23 22:56:14443Durchsuche

How Can Java Applications Send Emails via Gmail, Yahoo, or Hotmail?

E-Mails mit GMail, Yahoo oder Hotmail in Java-Anwendungen senden

Frage:

Können Java-Anwendungen E-Mail-Konten verwenden? wie GMail, Yahoo oder Hotmail zum Versenden von E-Mails? Wie kann dies erreicht werden?

Antwort:

Schritt 1: JavaMail-API importieren

Bevor Sie fortfahren, stellen Sie sicher, dass Sie Sie haben die erforderlichen JavaMail-API-JARs heruntergeladen und zu Ihrem Klassenpfad hinzugefügt.

Schritt 2: GMail-Konfiguration

Der folgende Java-Codeausschnitt zeigt das Senden einer E-Mail mit einem GMail-Konto:

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

public class Main {

    private static String USER_NAME = "*****"; // GMail user name (before "@gmail.com")
    private static String PASSWORD = "********"; // GMail password
    private static String RECIPIENT = "[email protected]";

    public static void main(String[] args) {
        String from = USER_NAME;
        String pass = PASSWORD;
        String[] to = { RECIPIENT }; // List of recipient email addresses
        String subject = "Java send mail example";
        String body = "Welcome to JavaMail!";

        sendFromGMail(from, pass, to, subject, body);
    }

    private static void sendFromGMail(String from, String pass, String[] to, String subject, String body) {
        Properties props = System.getProperties();
        String host = "smtp.gmail.com";
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.host", host);
        props.put("mail.smtp.user", from);
        props.put("mail.smtp.password", pass);
        props.put("mail.smtp.port", "587");
        props.put("mail.smtp.auth", "true");

        Session session = Session.getDefaultInstance(props);
        MimeMessage message = new MimeMessage(session);

        try {
            // Set email properties
            message.setFrom(new InternetAddress(from));

            // Create InternetAddress array for recipients
            InternetAddress[] toAddress = new InternetAddress[to.length];
            for (int i = 0; i < to.length; i++) {
                toAddress[i] = new InternetAddress(to[i]);
            }

            // Set recipients
            for (InternetAddress addr : toAddress) {
                message.addRecipient(Message.RecipientType.TO, addr);
            }

            // Set subject and body
            message.setSubject(subject);
            message.setText(body);

            // Establish connection and send email
            Transport transport = session.getTransport("smtp");
            transport.connect(host, from, pass);
            transport.sendMessage(message, message.getAllRecipients());
            transport.close();
        } catch (AddressException ae) {
            ae.printStackTrace();
        } catch (MessagingException me) {
            me.printStackTrace();
        }
    }
}

Hinweis: Ersetzen Sie USER_NAME, PASSWORD, RECIPIENT, Subjekt- und Körpervariablen mit den entsprechenden Werten.

Zusätzlich Überlegungen:

  • Eine ordnungsgemäße Fehlerbehandlung in den Catch-Blöcken sollte implementiert werden.
  • Möglicherweise müssen Sie den Code für verschiedene E-Mail-Anbieter anpassen, indem Sie die Serveradresse (Host) aktualisieren. und Port (z. B. für Yahoo: host="smtp.mail.yahoo.com" und port="587").

Das obige ist der detaillierte Inhalt vonWie können Java-Anwendungen E-Mails über Gmail, Yahoo oder Hotmail versenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn