„Ich bin es – wieder einmal. Und wieder habe ich eine kleine Überraschung für dich.“

„Heute werde ich Ihnen beibringen, wie Sie E-Mails mit Java versenden.

„Beginnen wir mit der guten Nachricht: Java verfügt über eine native Bibliothek für die Arbeit mit E-Mail.

„Die schlechte Nachricht ist, dass diese Bibliothek Teil von Java EE ist , nicht von Java SE .“

Java EE ist eine erweiterte Version von JavaSE , die Klassen enthält, die für raffiniertere Anwendungen benötigt werden. Zum Beispiel eine Anwendung für die Arbeit mit E-Mail.“

„Verstanden, was kann man dann tun?“

„Nun, ich schlage vor, Sie laden einfach diese Bibliothek herunter und das war’s.“

„Setzen Sie IntelliJ IDEA mit Bedacht ein.“

„Erstellen Sie eine Klasse und fügen Sie die Bibliotheken javax.mail.* und javax.mail.internet.* zum Importabschnitt hinzu.

„Drücken Sie dann Alt+Enter und lassen Sie IDEA alles für Sie erledigen:

„So sieht das Angebot zum Download der fehlenden Bibliotheken aus:“

E-Mail senden - 1

„So sieht das Download-Fenster aus:“

E-Mail senden - 2

„Oder Sie können es hier herunterladen “

„Heruntergeladen. Was kommt als nächstes?“

„Sie müssen in den Projekteinstellungen (Moduleinstellungen öffnen) zum Abschnitt „Bibliotheken“ gehen und JAR-Dateien aus dem heruntergeladenen Archiv hinzufügen.“

E-Mail senden - 3

"Erledigt."

„Sind die folgenden Zeilen nicht mehr rot?“

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

"Ja."

„Super, dann lass uns weitermachen.“

„Das Versenden einer E-Mail besteht aus drei Schritten.“

1) Stellen Sie eine Verbindung mit dem Mailserver her, der zum Versenden der E-Mail verwendet wird

2) Erstellen Sie die E-Mail und fügen Sie ggf. Anhänge hinzu

3) Senden Sie die E-Mail.

"Fangen wir von vorne an."

„Um eine E-Mail in Java zu versenden, müssen Sie zunächst eine Verbindung mit dem Mailserver herstellen.“

„Am besten ist es, wenn Sie bereits ein E-Mail-Konto auf dem Server haben. Aus Angst vor Spam möchten moderne Mailserver keine Nachrichten von anonymen Benutzern senden.

„Sie können mit einem einzigen Aufruf der Methode javax.mail.Session.getDefaultInstance eine Verbindung zum Server herstellen:“

Stellen Sie eine Verbindung mit dem Mailserver her
Properties props = new Properties();

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

Session session = Session.getDefaultInstance(props);

„Aber Sie müssen die Mailservereinstellungen an diese Methode übergeben.“

„Sie können beispielsweise eine Mail.properties-Datei erstellen und diese mit den gewünschten Einstellungen füllen, beispielsweise etwa so:“

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

„Das Wichtigste ist die Angabe des Protokolls und des Hosts, aber je nach Funktionsweise des Mailservers sind möglicherweise weitere Einstellungen erforderlich.“

„Sie können diese Daten einfach direkt in Ihrem Java-Code zu einem Properties-Objekt hinzufügen.“

"Zum Beispiel:"

Erstellen Sie eine Verbindung mit dem 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);

„Großartig, wir haben eine Sitzung. Jetzt erstellen wir eine E-Mail.“

„Das geht einfacher, als es auf den ersten Blick scheint. Zum Beispiel:“

Erstellen Sie eine E-Mail-Nachricht
// 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());

„Ich kann jede E-Mail-Adresse als Empfänger angeben?“

„Ja. Darüber hinaus können Sie auch eine beliebige E-Mail-Adresse als Absender angeben.“

„Cool! Das werde ich berücksichtigen.“

„Jetzt müssen wir nur noch diese Nachricht senden.“

„Zuerst melden wir uns beim Server an und dann senden wir unsere Nachricht. Nur zwei Codezeilen:“

Eine Nachricht schicken
// 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));

„Wie interessant! Das muss ich unbedingt ausprobieren.“

„Wenn Sie sich fragen, wie Sie eine Nachricht mit Anhängen versenden können, können Sie das hier nachlesen .“

„Wenn Sie auch erfahren möchten, wie Sie E-Mails empfangen können, schauen Sie bitte hier nach .“

„Holy Moly. Was für nützliche Links!“

„Ja, ich werde jetzt meinen eigenen E-Mail-Client erstellen. Cool!“

„Danke, Ellie!“