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
Libérer: 2024-12-23 22:56:14
original
529 Les gens l'ont consulté

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();
        }
    }
}
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal