– Már megint én vagyok. És megint van egy kis meglepetésem a számodra.

"Ma megtanítom neked, hogyan küldj e-mailt Java használatával. "

"Kezdjük a jó hírrel: a Java natív könyvtárral rendelkezik az e-mail kezeléshez. "

"A rossz hír az, hogy ez a könyvtár a Java EE része , nem a Java SE ."

" A Java EE a JavaSE kiterjesztett változata , amely a finomabb alkalmazásokhoz szükséges osztályokat tartalmazza. Például egy e-mail-kezeléshez szükséges alkalmazás."

– Értem, akkor mit lehet tenni?

– Nos, azt javaslom, hogy töltse le ezt a könyvtárat, és kész.

"Használja bölcsen az IntelliJ IDEA-t."

"Hozzon létre egy osztályt, és adja hozzá a javax.mail.* és javax.mail.internet.* könyvtárakat az importálási szakaszhoz.

"Ezután nyomja meg az Alt+Enter billentyűt , és hagyja, hogy az IDEA mindent megtegyen helyetted:

"Íme, hogy néz ki az ajánlat a hiányzó könyvtárak letöltésére:"

E-mail küldése - 1

"Íme, így néz ki a letöltési ablak:"

E-mail küldése - 2

"Vagy letöltheti innen "

"Letöltve. Mi a következő lépés?"

"Meg kell mennie a projektbeállításokhoz (Open Module Settings) a Könyvtárak részhez, és hozzá kell adnia JAR fájlokat a letöltött archívumból."

E-mail küldése - 3

"Kész."

– A következő sorok már nem pirosak?

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

"Igen."

– Remek, akkor folytassuk.

"E-mail küldésének három lépése van."

1) Hozzon létre kapcsolatot az e-mail küldésére használt levelezőszerverrel

2) Hozza létre az e-mailt, és ha szükséges, adjon hozzá mellékleteket

3) Küldje el az e-mailt.

– Kezdjük elölről.

"E-mail küldéséhez Java nyelven először kapcsolatot kell létesítenie a levelezőszerverrel."

"A legjobb, ha már van e-mail fiókod a szerveren. A spam miatt a modern levelezőszerverek nem akarnak névtelen felhasználóktól üzeneteket küldeni. "

"A javax.mail.Session.getDefaultInstance metódus egyetlen hívásával csatlakozhat a szerverhez:"

Hozzon létre kapcsolatot a levelezőszerverrel
Properties props = new Properties();

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

Session session = Session.getDefaultInstance(props);

"De ehhez a módszerhez át kell adnia a levelezőszerver beállításait."

"Létrehozhat például egy Mail.properties fájlt, és kitöltheti a kívánt beállításokkal, például valami ilyesmivel:"

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

"A legfontosabb a protokoll és a gazdagép megadása, de a levelezőszerver működésétől függően további beállításokra lehet szükség."

"Egyszerűen hozzáadhatja ezeket az adatokat egy Properties objektumhoz közvetlenül a Java-kódban."

"Például:"

Hozzon létre kapcsolatot a levelezőszerverrel"
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);

"Remek, munkamenetünk van. Most hozzunk létre egy e-mailt."

"Ezt könnyebb megtenni, mint amilyennek első pillantásra tűnik. Például:"

Hozzon létre egy e-mail üzenetet
// 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());

"Bármilyen e-mail címet megadhatok címzettként?"

"Igen. Sőt, bármilyen e-mail címet megadhat feladóként."

– Klassz! Ezt figyelembe fogom venni.

– Most már csak el kell küldenünk ezt az üzenetet.

"Először bejelentkezünk a szerverre, majd elküldjük az üzenetünket. Csak két sornyi kód:"

Üzenetet küldeni
// 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));

"Milyen érdekes! Ki kell próbálnom."

"Ha kíváncsi, hogyan küldhet üzenetet mellékletekkel, itt olvashat erről ."

"Ha azt is szeretné megtudni, hogyan kaphat levelet, kérjük, nézzen be ide ."

"Szent moly. Milyen hasznos linkek!"

"Igen, most elkészítem a saját levelezőprogramomat. Klassz!"

– Köszönöm, Ellie!