Maison  >  Article  >  Java  >  Pourquoi est-ce que je reçois une erreur « Connexion refusée » lors de l'envoi d'un e-mail en Java ?

Pourquoi est-ce que je reçois une erreur « Connexion refusée » lors de l'envoi d'un e-mail en Java ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-07 15:44:02301parcourir

Why Am I Getting a

Envoi d'un e-mail à l'aide de Java : résolution de l'erreur de connexion refusée

Dans votre extrait de code, vous rencontrez une erreur « Connexion refusée » lorsque vous tentez d'envoyer un e-mail à l'aide de l'hôte local. Serveur SMTP. Cela indique que le serveur SMTP n'écoute pas sur cet hôte ou ce port.

Solution

Pour résoudre ce problème, vous devez soit :

  1. Configurez votre serveur SMTP local : Assurez-vous que vous disposez d'un serveur SMTP valide en cours d'exécution sur votre ordinateur local. Cela peut être fait en configurant un serveur de messagerie comme Postfix ou Exim.
  2. Utilisez un service SMTP basé sur le cloud : Pensez à utiliser un service SMTP fiable basé sur le cloud comme le serveur SMTP de Google ou Amazon. SES. Ces services fournissent une fonctionnalité SMTP robuste et évolutive sans avoir besoin de maintenir un serveur local.

Code alternatif utilisant la classe GoogleMail

Si l'utilisation d'un serveur SMTP local n'est pas réalisable, vous pouvez utiliser la classe GoogleMail fournie dans la réponse. Cette classe simplifie le processus d'envoi d'e-mails à l'aide du serveur SMTP de Google. Voici un extrait de code modifié à l'aide de GoogleMail :

import com.google.api.services.gmail.Gmail;
import com.google.api.services.gmail.model.Message;
import javax.mail.MessagingException;
import java.io.IOException;

public class SendEmail {

    public static void main(String[] args) throws IOException, MessagingException {
        // Replace these variables with your own information
        String username = "your_gmail_username";
        String password = "your_gmail_password";
        String recipientEmail = "recipient_email_address";
        String title = "This is the Subject Line!";
        String message = "This is actual message";

        // Construct an authorized Gmail service
        Gmail service = Utils.getGmail(username, password);

        // Send the email
        GoogleMail.Send(service, recipientEmail, "", "user1@XYZ.com", title, message);
        System.out.println("Sent message successfully...");
    }
}

Notez que vous devrez obtenir un jeton d'actualisation auprès de Google et l'enregistrer dans un fichier afin d'éviter d'avoir à saisir votre mot de passe à chaque fois que vous envoyez un e-mail. .

Conclusion

En résolvant le problème de connexion SMTP ou en tirant parti de la classe GoogleMail fournie, vous pouvez réussir à envoyer des e-mails à l'aide de Java. N'oubliez pas d'ajuster l'extrait de code pour inclure vos propres identifiants de messagerie et le contenu du message.

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