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