"Sono io... di nuovo. E ancora, ho una piccola sorpresa per te."

"Oggi ti insegnerò come inviare e-mail utilizzando Java. "

"Cominciamo con la buona notizia: Java ha una libreria nativa per lavorare con la posta elettronica. "

"La cattiva notizia è che questa libreria fa parte di Java EE , non di Java SE ."

" Java EE è una versione estesa di JavaSE , che include le classi necessarie per applicazioni più niftier. Ad esempio, un'applicazione per lavorare con la posta elettronica."

"Capito, allora cosa si può fare?"

"Beh, ti suggerisco di scaricare questa libreria e basta."

"Usa IntelliJ IDEA con saggezza."

"Crea una classe e aggiungi le librerie javax.mail.* e javax.mail.internet.* alla sezione di importazione.

"Quindi premi Alt+Invio e lascia che IDEA faccia tutto per te:

"Ecco come appare l'offerta per scaricare le librerie mancanti:"

Invia e-mail - 1

"Ecco come appare la finestra di download:"

Invia e-mail - 2

"Oppure puoi scaricarlo qui "

"Scaricato. Cosa c'è dopo?"

"Devi andare alle impostazioni del progetto (Apri le impostazioni del modulo) nella sezione Librerie e aggiungere i file JAR dall'archivio scaricato."

Invia e-mail - 3

"Fatto."

"Le righe seguenti non sono più rosse?"

import javax.mail.internet.MimeMessage;
import javax.mail.internet.*;

"Sì."

"Bene, andiamo avanti allora."

"Ci sono tre passaggi per inviare un'e-mail."

1) Stabilire una connessione con il server di posta che verrà utilizzato per inviare l'e-mail

2) Crea l'email e, se necessario, aggiungi gli allegati

3) Invia la mail.

"Cominciamo dall'inizio."

"Per inviare un'e-mail in Java, devi prima stabilire una connessione con il server di posta."

"È meglio se hai già un account di posta elettronica sul server. Preoccupati per lo spam, i server di posta moderni non vogliono inviare messaggi da utenti anonimi. "

"Puoi connetterti al server con una singola chiamata al metodo javax.mail.Session.getDefaultInstance:"

Crea una connessione con il server di posta
Properties props = new Properties();

// Here we need to load data into the props object

Session session = Session.getDefaultInstance(props);

"Ma devi passare le impostazioni del server di posta a questo metodo."

"Ad esempio, puoi creare un file Mail.properties e riempirlo con le impostazioni desiderate, ad esempio qualcosa del genere:"

Mail.properties
mail.transport.protocol=smtp
mail.host=smtp.gmail.com
mail.smtp.auth=true
mail.user=arnold@gmail.com
mail.password=strong

"La cosa più importante è specificare il protocollo e l'host, ma potresti aver bisogno di impostazioni aggiuntive, a seconda di come funziona il server di posta."

"Puoi semplicemente aggiungere questi dati a un oggetto Properties direttamente nel tuo codice Java."

"Per esempio:"

Crea una connessione con il server di posta"
Properties props = new Properties();
props.put("mail.transport.protocol", "smtps");
props.put("mail.smtps.host", “smtp.gmail.com”);
props.put("mail.smtps.auth", "true");
props.put("mail.smtp.sendpartial", "true");

Session session = Session.getDefaultInstance(props);

"Fantastico, abbiamo una sessione. Ora creiamo un'email."

"Questo è più facile da fare di quanto sembri a prima vista. Ad esempio:"

Crea un messaggio di posta
// Create a message
MimeMessage message = new MimeMessage(session);

// Set the message subject
message.setSubject("Test email!");

// Add the message text
message.setText("Asta la vista, baby!");

// Specify the recipient
message.addRecipient(Message.RecipientType.TO, new InternetAddress("stalone@gmail.com"));

// Specify the delivery date
message.setSentDate(new Date());

"Posso specificare qualsiasi indirizzo email come destinatario?"

"Sì. Inoltre, puoi anche specificare qualsiasi indirizzo email come mittente."

"Fantastico! Ne terrò conto."

"Ora dobbiamo solo inviare questo messaggio."

"Per prima cosa, accediamo al server, quindi inviamo il nostro messaggio. Solo due righe di codice:"

Mandare un messaggio
// Username and password for a Gmail account
String userLogin = “arnold@gmail.com”;
String userPassword = “strong”;

// Sign in on the server:
Transport transport = session.getTransport();
transport.connect("smtp.gmail.com", 465, userLogin, userPassword);

// Send a message:
transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));

"Che interessante! Dovrò provarlo."

"Se ti stai chiedendo come inviare un messaggio con allegati, puoi leggerlo qui ."

"Se anche tu vuoi sapere come ricevere la posta, guarda qui ."

"Santo cielo. Che link utili!"

"Sì, ora creerò il mio client di posta elettronica. Fantastico!"

"Grazie, Eli!"