Depuis que j'ai été impliqué dans les outils MA, j'ai fait des recherches sur la livraison du courrier. J'ai créé un programme de distribution de courrier simple (courrier html) en utilisant le serveur smtp de Google.
・ Java -Mail.jar: lien de téléchargement -Activation.jar: lien de téléchargement ・ Serveur smtp de Google
En tant que flux de traitement approximatif
authentification smtp → Contenu de la diffusion, destination, paramètres de l'expéditeur → Envoyer
C'est un flux simple ou normal.
import
processus d'importation
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;
Tout d'abord, vous devez les importer.
python
Properties props = new Properties();
//Paramètres du serveur SMTP. Configurez le serveur SMTP de Google ici
props.setProperty("mail.smtp.host","smtp.gmail.com"); 
//Changer le numéro de port pour SSL
props.setProperty("mail.smtp.port", "465");
//Réglage du délai d'expiration
props.setProperty("mail.smtp.connectiontimeout", "60000");
props.setProperty("mail.smtp.timeout", "60000");
//Authentification
props.setProperty("mail.smtp.auth", "true");
//Ce paramètre est requis lors de l'utilisation de SSL
props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.socketFactory.port","465");
//Créer une session en utilisant les informations définies dans les accessoires
final Session session = Session.getInstance(props, new Authenticator() {
	protected PasswordAuthentication getPasswordAuthentication() {
        //Définissez ici votre compte Gmail et votre mot de passe
		return new PasswordAuthentication("[email protected]","your password");
	}
});
De cette façon, définissez les informations d'identification dans Propriétés et créez une session Les informations d'identification sont attribuées à la variable de type Session, session.
python
//Définir la session variable
MimeMessage contentMessage = new MimeMessage(session);
//Informations sur le contenu de l'e-mail
String mailContents = "<html><body><h1>hello</h1></body></html>"
try {
    //Définissez l'adresse source, le nom d'affichage et le code de caractère
	Address addFrom = new InternetAddress("[email protected]", "Monsieur A", "UTF-8");
	contentMessage.setFrom(addFrom);
    //Définir l'adresse de destination, le nom d'affichage, le code de caractère
	Address addTo = new InternetAddress("[email protected]","Monsieur B","UTF-8");
	contentMessage.addRecipient(Message.RecipientType.TO, addTo);
    //Définir le sujet
	contentMessage.setSubject("salut! !!","UTF-8");
    //Le type de contenu du courrier est spécifié. Dans ce cas, ce sera un mail HTML
	contentMessage.setHeader("Content-Type", "text/html; charset=UTF-8");
    //Définition du contenu du courrier
	contentMessage.setContent(mailContents, "text/html; charset=UTF-8");
    //Réglage tel que la date
	contentMessage.setSentDate(new Date());
} catch (MessagingException e) {
	e.printStackTrace();
} catch (UnsupportedEncodingException e) {
	e.printStackTrace();
}
Définir le contenu, la destination et la source de la diffusion Affectez-le à une variable appelée contentMessage de type MimeMessage. En passant, si vous définissez le type de contenu sur texte, vous pouvez remettre du courrier texte.
python
//envoyer un e-mail
try {
    //Définir le contentMessage plus tôt
	Transport.send(contentMessage);
} catch (AuthenticationFailedException e) {	
    //Échec d'authentification
	e.printStackTrace();
} catch (MessagingException e) {
	//Échec de la connexion au serveur smtp
	e.printStackTrace();
}
Cela enverra l'e-mail.
Il semble que la livraison de courrier de base en Java soit fondamentalement comme ça. Pour rendre cela encore plus rapide, utilisez des fils, insérez des caractères dans le contenu, etc. C'est intéressant car vous pouvez faire différentes choses. Le code réel peut être trouvé sur le hub git ci-dessous, si vous le souhaitez.
Source: github
Recommended Posts