Inviare email con Gmail in Java e Apache Commons
Apache Commons Email è un'ottima libreria per la gestione delle email in Java.
E' possibile usarla anche in Kotlin.
Oggi vediamo come usare la libreria per inviare email usando l'account di Gmail (come sempre vi ricordo che va sbloccata una impostazione del vostro account per l'uso di applicazioni di terze parti).
Prima di tutto installiamo la libreria; se usate Maven:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.4</version>
</dependency>
Questo il codice Java:
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
public class Main {
public static void main(String[] args) {
try {
HtmlEmail email = new HtmlEmail();
String user = ".....@gmail.com";
String pwd = "....";
email.setSmtpPort(587);
email.setAuthenticator(new DefaultAuthenticator(user, pwd));
email.setDebug(true);
email.setHostName("smtp.gmail.com");
email.getMailSession().getProperties().put("mail.smtps.auth", "true");
email.getMailSession().getProperties().put("mail.debug", "true");
email.getMailSession().getProperties().put("mail.smtps.port", "587");
email.getMailSession().getProperties().put("mail.smtps.socketFactory.port",
"587");
email.getMailSession().getProperties().put("mail.smtps.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
email.getMailSession().getProperties().put("mail.smtps.socketFactory.fallback",
"false");
email.getMailSession().getProperties().put("mail.smtp.starttls.enable",
"true");
email.addTo("....@email.it", "Nome");
email.setFrom(user, "Me");
email.setSubject("Email di prova in HTML");
URL url = new URL("https://www.mattepuffo.com/blog/images/logo.png");
String cid = email.embed(url, "Apache logo");
email.setHtmlMsg("Mattepuffo logo - ");
email.setTextMsg("Il tuo client non supporta le email in HTML");
email.send();
} catch (EmailException | MalformedURLException ex) {
System.out.println(ex.getMessage());
}
}
}
Mette le vostre credenziali e un indirizzo di destinazione valido, ed il gioco è fatto.
Enjoy!
java apache commons email gmail email maven
Commentami!