Question

J'utilise Apache Commons bibliothèque e-mail pour envoyer des emails, mais je ne suis pas en mesure de les envoyer via le serveur SMTP GMail.
Quelqu'un peut-il fournir des exemples de code qui fonctionne avec le serveur SMTP GMail et d'autres?

Je suis en utilisant le code suivant qui ne fonctionne pas:

String[] recipients = {"receiver@gmail.com"};

SimpleEmail email = new SimpleEmail();
email.setHostName("smtp.gmail.com");
email.setAuthentication("sender@gmail.com", "mypasswd");
email.setDebug(true);
email.setSmtpPort(465);

for (int i = 0; i < recipients.length; i++)
{
    email.addTo(recipients[i]);
}

email.setFrom("sender@gmail.com", "Me");
email.setSubject("Test message");
email.setMsg("This is a simple test of commons-email");
email.send();
Était-ce utile?

La solution

L'envoi de courriels au serveur SMTP GMail requiert une authentification et SSL. Le nom d'utilisateur et mot de passe est assez simple. Assurez-vous que vous avez les propriétés suivantes définies pour activer l'authentification et SSL et cela devrait fonctionner.

mail.smtp.auth=true
mail.smtp.starttls.enable=true

Pour l'exemple de code pour ajouter ce qui suit TLS est activée.

Pour API Versions <1.3 Utilisation:

email.setTSL(true); la méthode est dépréciée pour les versions> = 1.3, et au lieu, vous devez utiliser: email.setStartTLSEnabled(true);

Autres conseils

S'il vous plaît trouverez ci-dessous un code qui fonctionne. Évidemment, vous devez ajouter le pot apache au chemin de la construction de votre projet.

public static void sendSimpleMail() throws Exception {
    Email email = new SimpleEmail();
    email.setSmtpPort(587);
    email.setAuthenticator(new DefaultAuthenticator("your gmail username",
            "your gmail password"));
    email.setDebug(false);
    email.setHostName("smtp.gmail.com");
    email.setFrom("me@gmail.com");
    email.setSubject("Hi");
    email.setMsg("This is a test mail ... :-)");
    email.addTo("you@gmail.com");
    email.setTLS(true);
    email.send();
    System.out.println("Mail sent!");
}

Cordialement, Sergiu

à l'aide commons.email a fonctionné pour moi.

HtmlEmail email = new HtmlEmail();
email.setHostName("smtp.gmail.com");
email.setSmtpPort(465);
email.setSSL(true);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top