'Ik ben het weer. En nogmaals, ik heb een kleine verrassing voor je.'

"Vandaag ga ik je leren hoe je e-mail kunt versturen met Java. "

"Laten we beginnen met het goede nieuws: Java heeft een eigen bibliotheek voor het werken met e-mail. "

"Het slechte nieuws is dat deze bibliotheek deel uitmaakt van Java EE , niet van Java SE ."

" Java EE is een uitgebreide versie van JavaSE , die klassen bevat die nodig zijn voor geavanceerdere toepassingen. Bijvoorbeeld een toepassing voor het werken met e-mail."

"Begrepen, dus wat kan er dan gedaan worden?"

"Nou, ik stel voor dat je gewoon deze bibliotheek downloadt en dat is alles."

"Gebruik IntelliJ IDEA verstandig."

"Maak een klas en voeg de bibliotheken javax.mail.* en javax.mail.internet.* toe aan de importsectie.

"Druk dan op Alt+Enter en laat IDEA alles voor je doen:

"Zo ziet het aanbod om de ontbrekende bibliotheken te downloaden eruit:"

E-mail verzenden - 1

"Zo ziet het downloadvenster eruit:"

E-mail verzenden - 2

"Of je kunt het hier downloaden "

"Gedownload. Wat nu?"

"U moet naar de projectinstellingen (Open Module-instellingen) gaan naar het gedeelte Bibliotheken en JAR-bestanden toevoegen uit het gedownloade archief."

E-mail verzenden - 3

"Klaar."

"Zijn de volgende regels niet meer rood?"

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

"Ja."

"Mooi, dan gaan we verder."

"Er zijn drie stappen om een ​​e-mail te verzenden."

1) Breng een verbinding tot stand met de mailserver die zal worden gebruikt om de e-mail te verzenden

2) Maak de e-mail aan en voeg eventueel bijlagen toe

3) Verzend de e-mail.

"Laten we bij het begin beginnen."

"Om een ​​e-mail te versturen in Java, moet je eerst verbinding maken met de mailserver."

"Het is het beste als je al een e-mailaccount op de server hebt. Bezorgd over spam willen moderne mailservers geen berichten van anonieme gebruikers verzenden. "

"U kunt verbinding maken met de server met een enkele oproep naar de methode javax.mail.Session.getDefaultInstance:"

Maak een verbinding met de mailserver
Properties props = new Properties();

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

Session session = Session.getDefaultInstance(props);

"Maar u moet de instellingen van de mailserver doorgeven aan deze methode."

"U kunt bijvoorbeeld een bestand Mail.properties maken en dit vullen met de gewenste instellingen, bijvoorbeeld iets als dit:"

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

"Het belangrijkste is om het protocol en de host te specificeren, maar mogelijk heb je aanvullende instellingen nodig, afhankelijk van hoe de mailserver werkt."

"U kunt deze gegevens eenvoudig toevoegen aan een Properties-object in uw Java-code."

"Bijvoorbeeld:"

Maak verbinding met de mailserver"
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);

"Geweldig, we hebben een sessie. Laten we nu een e-mail maken."

"Dit is makkelijker te doen dan het op het eerste gezicht lijkt. Bijvoorbeeld:"

Maak een e-mailbericht
// 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());

"Kan ik elk e-mailadres opgeven als ontvanger?"

"Ja. Bovendien kun je ook elk e-mailadres als afzender opgeven."

"Cool! Daar zal ik rekening mee houden."

"Nu moeten we alleen dit bericht verzenden."

"Eerst loggen we in op de server en dan versturen we ons bericht. Slechts twee regels code:"

Stuur een bericht
// 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));

"Wat interessant! Ik zal het moeten proberen."

"Als je je afvraagt ​​hoe je een bericht met bijlagen verstuurt, kun je dat hier lezen ."

"Wil je ook weten hoe je post ontvangt, kijk dan hier ."

"Holy moly. Wat een handige links!"

"Ja, ik ga nu mijn eigen e-mailclient maken. Gaaf!"

"Bedankt, Ellie!"