"Sunt eu... din nou. Și din nou, am o mică surpriză pentru tine."

„Astăzi vă voi învăța cum să trimiteți e-mail folosind Java.

„Să începem cu vestea bună: Java are o bibliotecă nativă pentru lucrul cu e-mailul.

„Veștile proaste sunt că această bibliotecă face parte din Java EE , nu Java SE .”

Java EE este o versiune extinsă a JavaSE , care include clase necesare pentru aplicații mai ingenioase. De exemplu, o aplicație pentru lucrul cu e-mailul.”

„Am înțeles, deci ce se poate face atunci?”

— Ei bine, vă sugerez să descărcați această bibliotecă și gata.

„Folosește IntelliJ IDEA cu înțelepciune.”

„Creați o clasă și adăugați bibliotecile javax.mail.* și javax.mail.internet.* la secțiunea de import.

„Apoi apăsați Alt+Enter și lăsați IDEA să facă totul pentru dvs.:

„Iată cum arată oferta de descărcare a bibliotecilor lipsă:”

Trimite e-mail - 1

„Iată cum arată fereastra de descărcare:”

Trimite e-mail - 2

„Sau îl puteți descărca aici

"Descărcat. Ce urmează?"

„Trebuie să accesați setările proiectului (Open Module Settings) în secțiunea Biblioteci și să adăugați fișiere JAR din arhiva descărcată”.

Trimite e-mail - 3

"Terminat."

„Rândurile următoare nu mai sunt roșii?”

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

"Da."

— Grozav, atunci hai să continuăm.

„Există trei pași pentru a trimite un e-mail.”

1) Stabiliți o conexiune cu serverul de e-mail care va fi folosit pentru a trimite e-mailul

2) Creați e-mailul și, dacă este necesar, adăugați atașamente

3) Trimite e-mailul.

— Să începem de la început.

„Pentru a trimite un e-mail în Java, mai întâi trebuie să stabiliți o conexiune cu serverul de e-mail.”

„Cel mai bine este dacă aveți deja un cont de e-mail pe server. Preocupate de spam, serverele moderne de e-mail nu vor să trimită mesaje de la utilizatori anonimi.

„Puteți să vă conectați la server cu un singur apel la metoda javax.mail.Session.getDefaultInstance:”

Creați o conexiune cu serverul de e-mail
Properties props = new Properties();

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

Session session = Session.getDefaultInstance(props);

„Dar trebuie să treceți setările serverului de e-mail la această metodă.”

„De exemplu, puteți crea un fișier Mail.properties și îl puteți completa cu setările dorite, de exemplu, ceva de genul acesta:”

Mail.proprietăţi
mail.transport.protocol=smtp
mail.host=smtp.gmail.com
mail.smtp.auth=true
mail.user=arnold@gmail.com
mail.password=strong

„Cel mai important este să specificați protocolul și gazda, dar este posibil să aveți nevoie de setări suplimentare, în funcție de modul în care funcționează serverul de e-mail.”

„Puteți pur și simplu să adăugați aceste date la un obiect Proprietăți chiar în codul Java.”

"De exemplu:"

Creați o conexiune cu serverul de e-mail"
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);

„Bine, avem o sesiune. Acum să creăm un e-mail.”

„Acest lucru este mai ușor de făcut decât pare la prima vedere. De exemplu:”

Creați un mesaj de e-mail
// 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());

„Pot specifica orice adresă de e-mail ca destinatar?”

„Da. În plus, puteți specifica orice adresă de e-mail ca expeditor.”

"Fără! Voi ține cont de asta."

„Acum trebuie doar să trimitem acest mesaj”.

„Mai întâi, ne conectăm la server și apoi trimitem mesajul nostru. Doar două linii de cod:”

Trimite un mesaj
// 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));

"Ce interesant! Va trebui să-l încerc."

„Dacă vă întrebați cum să trimiteți un mesaj cu atașamente, puteți citi despre asta aici ”.

„Dacă doriți și să aflați cum să primiți e-mailuri, vă rugăm să căutați aici ”.

"Holy Moly. Ce link-uri utile!"

"Da, acum o să-mi fac propriul client de e-mail. Tare!"

— Mulțumesc, Ellie!