"Det är jag - igen. Och igen, jag har en liten överraskning till dig."

"Idag ska jag lära dig hur du skickar e-post med Java. "

"Låt oss börja med de goda nyheterna: Java har ett inbyggt bibliotek för att arbeta med e-post. "

"Den dåliga nyheten är att det här biblioteket är en del av Java EE , inte Java SE ."

" Java EE är en utökad version av JavaSE , som inkluderar klasser som behövs för snyggare applikationer. Till exempel ett program för att arbeta med e-post."

"Förstår det, så vad kan man göra då?"

"Tja, jag föreslår att du bara laddar ner det här biblioteket och det är det."

"Använd IntelliJ IDEA klokt."

"Skapa en klass och lägg till biblioteken javax.mail.* och javax.mail.internet.* till importsektionen.

"Tryck sedan på Alt+Enter och låt IDEA göra allt åt dig:

"Så här ser erbjudandet att ladda ner de saknade biblioteken ut:"

Skicka e-post - 1

"Så här ser nedladdningsfönstret ut:"

Skicka e-post - 2

"Eller så kan du ladda ner den här "

"Nedladdat. Vad händer härnäst?"

"Du måste gå till projektinställningarna (öppna modulinställningar) till sektionen Bibliotek och lägga till JAR-filer från det nedladdade arkivet."

Skicka e-post - 3

"Gjort."

"Är följande rader inte längre röda?"

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

"Japp."

"Bra, låt oss fortsätta då."

"Det finns tre steg för att skicka ett e-postmeddelande."

1) Upprätta en anslutning till e-postservern som kommer att användas för att skicka e-postmeddelandet

2) Skapa e-postmeddelandet och lägg vid behov till bilagor

3) Skicka e-postmeddelandet.

"Låt oss börja från början."

"För att skicka ett e-postmeddelande i Java måste du först upprätta en anslutning till e-postservern."

"Det är bäst om du redan har ett e-postkonto på servern. Bekymrade över spam vill moderna e-postservrar inte skicka meddelanden från anonyma användare. "

"Du kan ansluta till servern med ett enda anrop till metoden javax.mail.Session.getDefaultInstance:"

Skapa en anslutning till e-postservern
Properties props = new Properties();

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

Session session = Session.getDefaultInstance(props);

"Men du måste skicka e-postserverinställningarna till den här metoden."

"Du kan till exempel skapa en Mail.properties-fil och fylla den med önskade inställningar, till exempel något så här:"

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

"Det viktigaste är att ange protokoll och värd, men du kan behöva ytterligare inställningar, beroende på hur e-postservern fungerar."

"Du kan helt enkelt lägga till denna data till ett Properties-objekt direkt i din Java-kod."

"Till exempel:"

Skapa en anslutning till e-postservern"
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);

"Bra, vi har en session. Nu ska vi skapa ett e-postmeddelande."

"Det här är lättare att göra än det verkar vid första anblicken. Till exempel:"

Skapa ett e-postmeddelande
// 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());

"Jag kan ange vilken e-postadress som helst som mottagare?"

"Japp. Dessutom kan du också ange vilken e-postadress som helst som avsändare."

"Coolt! Jag tar hänsyn till det."

"Nu behöver vi bara skicka det här meddelandet."

"Först loggar vi in ​​på servern och sedan skickar vi vårt meddelande. Bara två rader kod:"

Skicka ett meddelande
// 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));

"Vad intressant! Jag måste prova det."

"Om du undrar hur du skickar ett meddelande med bilagor kan du läsa om det här ."

"Om du också vill ta reda på hur du tar emot post, vänligen titta här ."

"Holy moly. Vilka användbara länkar!"

"Ja, jag ska göra min egen e-postklient nu. Coolt!"

"Tack, Ellie!"