Maison >Java >javaDidacticiel >Comment les applications Java peuvent-elles envoyer des e-mails via Gmail, Yahoo ou Hotmail ?

Comment les applications Java peuvent-elles envoyer des e-mails via Gmail, Yahoo ou Hotmail ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-23 22:56:14443parcourir

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

Envoi d'e-mails à l'aide de GMail, Yahoo ou Hotmail dans des applications Java

Question :

Les applications Java peuvent-elles utiliser des comptes de messagerie comme GMail, Yahoo ou Hotmail pour envoyer des e-mails ? Comment y parvenir ?

Réponse :

Étape 1 : Importer l'API JavaMail

Avant de continuer, assurez-vous que vous avez téléchargé et ajouté les fichiers jar API JavaMail requis à votre chemin de classe.

Étape 2 : Configuration GMail

L'extrait de code Java suivant illustre l'envoi d'un e-mail à l'aide d'un compte GMail :

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();
        }
    }
}

Remarque : Remplacez USER_NAME, PASSWORD, Variables DESTINATAIRE, sujet et corps avec les valeurs appropriées.

Supplémentaires Considérations :

  • Une gestion appropriée des erreurs dans les blocs catch doit être mise en œuvre.
  • Vous devrez peut-être ajuster le code pour différents fournisseurs de messagerie en mettant à jour l'adresse du serveur (hôte) et le port (par exemple, pour Yahoo : host="smtp.mail.yahoo.com" et port="587").

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn