Ich habe eine E-Mail in Java gesendet

Einführung

Da ich an MA-Tools beteiligt war, habe ich mich mit der Postzustellung befasst. Ich habe ein einfaches Mail-Zustellungsprogramm (HTML-Mail) mit dem SMTP-Server von Google erstellt.

Sprache / was zu verwenden

・ Java -Mail.jar: Download-Link -Activation.jar: Download-Link ・ Google SMTP-Server

Prozessablauf

Als grober Verarbeitungsablauf

SMTP-Authentifizierung → Lieferinhalt, Ziel, Absendereinstellungen → Senden

Es ist ein einfacher oder normaler Fluss.

Codierung

import

Importvorgang


import javax.mail.Address;
import javax.mail.AuthenticationFailedException;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
import java.io.UnsupportedEncodingException;
import java.util.Date;

Zunächst müssen Sie sie importieren.

SMTP-Authentifizierung

python


Properties props = new Properties();
//SMTP-Servereinstellungen. Richten Sie hier den SMTP-Server von Google ein
props.setProperty("mail.smtp.host","smtp.gmail.com"); 
//Ändern Sie die Portnummer für SSL
props.setProperty("mail.smtp.port", "465");
//Timeout-Einstellung
props.setProperty("mail.smtp.connectiontimeout", "60000");
props.setProperty("mail.smtp.timeout", "60000");

//Authentifizierung
props.setProperty("mail.smtp.auth", "true");
//Diese Einstellung ist erforderlich, wenn Sie SSL verwenden
props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.socketFactory.port","465");

//Erstellen Sie eine Sitzung mit den in Requisiten festgelegten Informationen
final Session session = Session.getInstance(props, new Authenticator() {
	protected PasswordAuthentication getPasswordAuthentication() {
        //Legen Sie hier Ihr Google Mail-Konto und Ihr Passwort fest
		return new PasswordAuthentication("[email protected]","your password");
	}
});

Legen Sie auf diese Weise die Anmeldeinformationen in den Eigenschaften fest und erstellen Sie eine Sitzung Anmeldeinformationen werden der Sitzungstypvariablen Sitzung zugewiesen.

Lieferinhalt, Ziel, Quelleneinstellungen

python


//Legen Sie die variable Sitzung fest
MimeMessage contentMessage = new MimeMessage(session);
//E-Mail-Inhaltsinformationen
String mailContents = "<html><body><h1>hello</h1></body></html>"
try {
    //Stellen Sie die Quelladresse, den Anzeigenamen und den Zeichencode ein
	Address addFrom = new InternetAddress("[email protected]", "Herr A.", "UTF-8");
	contentMessage.setFrom(addFrom);
    //Zieladresse, Anzeigename, Zeichencode einstellen
	Address addTo = new InternetAddress("[email protected]","Herr B.","UTF-8");
	contentMessage.addRecipient(Message.RecipientType.TO, addTo);
    //Betreff einstellen
	contentMessage.setSubject("Hallo! !!","UTF-8");
    //Der Inhaltstyp der Mail wird angegeben. In diesem Fall handelt es sich um eine HTML-Mail
	contentMessage.setHeader("Content-Type", "text/html; charset=UTF-8");
    //Festlegen des Inhalts der Mail
	contentMessage.setContent(mailContents, "text/html; charset=UTF-8");
    //Einstellung wie Datum
	contentMessage.setSentDate(new Date());
} catch (MessagingException e) {
	e.printStackTrace();
} catch (UnsupportedEncodingException e) {
	e.printStackTrace();
}

Legen Sie den Lieferinhalt, das Ziel und die Quelle fest Weisen Sie es einer Variablen namens contentMessage vom Typ MimeMessage zu. Übrigens, wenn Sie den Inhaltstyp auf Text setzen, können Sie Textmail zustellen.

Senden

python


//E-Mail senden
try {
    //Stellen Sie die contentMessage früher ein
	Transport.send(contentMessage);
} catch (AuthenticationFailedException e) {	
    //Authentifizierungsfehler
	e.printStackTrace();
} catch (MessagingException e) {
	//Verbindung zum SMTP-Server fehlgeschlagen
	e.printStackTrace();
}

Dadurch wird die E-Mail gesendet.

Zusammenfassung

Es scheint, dass die grundlegende E-Mail-Zustellung in Java im Grunde so ist. Um dies noch schneller zu machen, verwenden Sie Threads, fügen Sie Zeichen in den Inhalt ein usw. Es ist interessant, weil Sie verschiedene Dinge tun können. Den aktuellen Code finden Sie auf dem Git-Hub unten, wenn Sie möchten.

Quelle: github

Recommended Posts

Ich habe eine E-Mail in Java gesendet
Ich möchte eine E-Mail in Java senden.
Ich habe eine Anmerkung in Java gemacht.
Ich habe ein Roulette in Java gemacht.
Implementieren Sie das Senden von E-Mails in Java
Ich habe versucht, Metaprogrammierung mit Java
Ich habe leicht verständlich über Java Downcast geschrieben
Ich habe versucht, die erweiterte for-Anweisung in Java zu verwenden
Ich habe ein PDF mit Java erstellt.
Versuchen Sie einen If-Ausdruck in Java
Ich habe Gordobachs Theorem in Java geschrieben
Ich habe versucht, JWT in Java zu verwenden
Führen Sie einen externen Prozess in Java aus
Ich habe versucht, die Elasticsearch-API in Java zu verwenden
Map ohne Verwendung eines Arrays in Java
Ich habe das neue Yuan-Problem in Java ausprobiert
[Java] Senden Sie eine E-Mail mit Amazon SES
Ich habe die OpenCV-Kamerakalibrierung in Java durchgeführt
[* Java *] Ich habe am JJUG CCC 2019 Spring teilgenommen
Partisierung in Java
Änderungen in Java 11
Janken in Java
Ich möchte für jedes Array mit Lambda-Ausdruck in Java
Umfangsrate in Java
FizzBuzz in Java
Ich habe ein Programm zur Beurteilung von Primzahlen in Java erstellt
Senden Sie E-Mails mit Amazon SES SMTP in Java
Zweite Abkochung: Versuchen Sie einen If-Ausdruck in Java
Ich wollte (a == 1 && a == 2 && a == 3) in Java wahr machen
Ich habe ein Programm zur Beurteilung von Primzahlen in Java geschrieben
Ich habe ein Janken-Spiel in Java (CLI) gemacht.
rsync4j - Ich möchte rsync in Java berühren.
Was ich in Java gelernt habe (Teil 2) Was sind Variablen?
Ich habe versucht, neunundneunzig in Java auszugeben
So lösen Sie Ausdrucksprobleme in Java
Ich habe versucht, eine Anwendung in 2 Sprachen zu entwickeln
Ich habe versucht, Alexa-Fähigkeiten mit Java zu erstellen
Ich habe ein Primfaktorisierungsprogramm in Java geschrieben
Interpreter-Implementierung durch Java
Machen Sie einen Blackjack mit Java
Ich habe ein einfaches Berechnungsproblemspiel in Java gemacht
Versuchte Mastodons Toot- und Streaming-API in Java
Janken App in Java
Einschränkungsprogrammierung in Java
Setzen Sie Java8 in Centos7
Schreiben Sie ABNF in Java und geben Sie die E-Mail-Adresse weiter
Ich möchte so etwas wie "cls" in Java machen
NVL-artiger Typ in Java
Verbinden Sie Arrays in Java
Ich habe zuerst Java touched berührt
"Hallo Welt" in Java
Aufrufbare Schnittstelle in Java
Ich habe versucht, die Firebase-Push-Benachrichtigung in Java zu implementieren
Ich habe zuerst Java touched berührt
[Java] Wirf eine Ausnahme aus
Kommentare in der Java-Quelle
Ich möchte ES2015 auch in Java verwenden! → (´ ・ ω ・ `)
Azure funktioniert in Java