Qu'est-ce que Spring Boot
Spring Boot est un cadre conçu pour simplifier la configuration de construction initiale et le processus de développement des applications de printemps. Ce framework utilise des méthodes de configuration spécifiques, afin que les développeurs n'aient pas besoin de définir des configurations de chauffeur.
Les avantages de Spring Boot
1. Configuration simple;
2. Codage simple;
3. Déploiement simple;
4. Surveillance simple;
Aperçu
Spring Boot intègre un serveur de messagerie et l'utilisation de Spring Boot peut facilement réaliser l'envoi d'e-mail; Trier le récent e-mail envoyant et précautions pour Spring Boot;
Dépendances de packages Maven
<dependency> <proupId> org.springframework.boot </proupId> <ArtefactId> printemp-boot-starter-Mail </retifactid> </dEpendency>
Configuration de démarrage de printemps
printemps.mail.host = smtp.servie.comspring.mail.username = username // Adresse e-mail de l'expéditeur Spring.mail.password = mot de passe // pour la boîte aux lettres QQ, le mot de passe fait référence au code d'autorisation de l'expéditeur Spring.mail.properties.mail.smtp.auth = truspring.mail.propperties.mail.smts #Si-même pour activer la transmission cryptée Utilisez l'élément de vérification du protocole printemps.mail.properties.mail.smtp.starttls.requured = fasle #sether pour activer la transmission cryptée Utiliser l'élément de vérification du protocole Spring.mail.password est le mot de mot d'autorisation qui doit être généré dans les paramètres de la boîte électronique, qui n'est pas le mot de passe réel.
Implémentation du code de printemps
package com.dbgo.webservicemo.email; import org.springframework.beans.factory.annotation.autowired; import org.springframework.core.io.filesystemresource; import org.springframework.mail.javamail.javamailsder; org.springframework.mail.javamail.mimessagehelper; import org.springframework.sterreotype. Javamailssender; public void sendSImpleMail () {mimeMessage Message = null; essayez {message = javamailsender.createMiMEMessage (); MimeMessageHelper Helper = new MimeMessageHelper (message, true); helper.setFrom ("[email protected]"); helper.setto ("[email protected]"); helper.setsubject ("Title: Envoyer un contenu html"); StringBuffer sb = new StringBuffer (); SB.APPEND ("<H1> Large Title-H1 </H1>") .APPEND ("<p style = 'Color: # F00'> Red Word </p>") .APPEND ("<p style = 'Text-Align: Right'> Right </p>"); helper.setText (sb.toString (), true); FileSystemResource FileSystemResource = new FileSystemResource (nouveau fichier ("d: /76678.pdf")) helper.addattachment ("facture électronique", FileSystemResource); JavamailSender.Send (message); } catch (MessageSingException e) {e.printStackTrace (); }}}Envoyer des e-mails sous Boot non-Spring:
Dépendances de packages Maven
<Dependances> <Dependency> <ProupId> com.sun.mail </rompuprid> <letifactive> javax.mail </letefactive> <version> 1.5.2 </ version> </dependency> </Dependances>
Exemple de code Demo1
package com.justtin.framework.core.utils.email; import java.io.file; import java.io.fileInputStream; import java.io.filenotfoundException; import java.io.fileoutStream; import java.io.unsupportedExpelexpeled; java.util.date; import java.util.properties; import javax.activation.datahandler; import javax.activation.datasource; import javax.activation.filedatasource; import javax.mail.address; import javax.mail.authenticat; import javax.mail.Message; import; javax.mail.message.recipentType; import javax.mail.message.recipentType; import javax.mail.messagingException; Importer javax.mail.passwordAuthentication; import javax.mail.Session; import javax.mail.transport; import javax.mail.internet.interax. javax.mail.internet.mimebodyPart; import javax.mail.internet.mimeMessage; import javax.mail.internet.mimemultupar; import javax.mail.internnet.mimeutility; / ** * utiliser le protocole SMTP pour envoyer un courriel * / public Sendemailcode {// courriel // SMTP Mail Server private final static string host = "mail.tdb.com"; // SMTP Mail Server Port par défaut Private Final Static String Port = "25"; // s'il faut exiger l'authentification privée de chaîne statique finale est_auth = "true"; // s'il faut activer le mode de débogage (activer le mode de débogage pour imprimer le message de réponse d'une question et une réponse lorsque le client et le serveur interagissent) la chaîne statique finale privée est_enabled_debug_mod = "true"; // Sender Private Static String de = "[email protected]"; // Récipiendaire privé Static String to = "[email protected]"; chaîne statique privée sendUserName = "[email protected]"; chaîne statique privée senduserpwd = "new * 2016"; // Initialisez les informations de session se connectant au serveur de messagerie Private Static Properties props = null; statique {props = new Properties (); Prophes.setProperty ("Mail.enable", "True"); Prophes.setProperty ("Mail.transport.protocol", protocole); props.setProperty ("mail.smtp.host", hôte); props.setProperty ("mail.smtp.port", port); props.setProperty ("mail.smtp.auth", is_auth); // selon la situation, props.setProperty ("mail.debug", is_enabled_debug_mod); } / ** * Envoyer un courrier texte simple * / public static boolean sendTextEmail (chaîne à, int code) lève une exception {try {// créer une instance de session session ses session1 = session.getDefaultInstance (props); // Créer un message d'instance mimeMessage objet mimeMessage Message = new mimeMessage (session1); // Définissez le message de l'expéditeur.SetFrom (nouveau InternetAddress (From)); // Définissez le message du sujet par e-mail. // Définissez le destinataire Message.SetReccipient (destinataireType.to, nouveau InternetAddress (TO)); // Définissez le message d'heure d'envoi.sesentDate (new Date ()); // Définissez le contenu du texte brut sur le message SMS de l'e-mail. // Enregistrer et générer le message de contenu e-mail final.SaveChanges (); // Obtenez le transport d'objet d'instance de transport Transport = Session1.getTransport (); // Ouvre la connexion Transport.Connect ("Meijiajiang2016", ""); // Passez l'objet Message à l'objet Transport et envoyez le message Transport.SendMessage (message, message.getAllRcipients ()); // fermer le transport de connexion.close (); Retour Vrai; } catch (exception e) {e.printStackTrace (); retourne false; }} public static void main (String [] args) lève une exception {sendhtmlemail ("[email protected]", 8888); } / ** * Envoyer un e-mail HTML simple * / public static booléen sendhtmlemail (chaîne à, int code) lève une exception {// Créer une session d'instance de session Session Session1 = session.getInstance (props, new myAuthenticator ()); // Créer un message d'instance mimeMessage objet mimeMessage Message = new mimeMessage (session1); // Définissez le message du sujet par e-mail. // Définir Message.SetFrom (new InternetAddress (From)); // SET SEND MESSION DU MESSAGE.SETSENTDATE (NOUVEAU DATE ()); // Définir le destinataire Message.SetRcipients (destinataireType.to, InternetAddress.Parse (TO)); // Définissez le contenu HTML sur le corps de messagerie, spécifiez le type MIME sur le type Text / HTML et spécifiez le codage de caractères en tant que GBK Message.SetContent ("<div style = 'width: 600px; margin: 0 auto'> <h3 style = 'Color: # 003E64; Text-Align: Centre; Cher utilisateur: </p> <p style = ' Society </p> </div> "," Text / HTML; charset = UTF-8 "); // Définissez le surnom de l'expéditeur personnalisé Nick = ""; essayez {nick = javax.mail.internet.mimeutility.encodetext ("China Internal Combustion Engine Society"); } catch (UnportEnCcodingException e) {e.printStackTrace (); } message.setFrom (nouveau InternetAddress (nick + "<" + from + ">")); // Enregistrer et générer le message de contenu e-mail final.SaveChanges (); // Envoyer un e-mail essayez {transport.send (message); Retour Vrai; } catch (exception e) {e.printStackTrace (); retourne false; }} / ** * Envoyer un courrier html avec des images intégrées * / public static void sendhtmlWithInnerImageEmail () lève MessageSingException {// Créer une session d'instance de session session session = session.getDefaultInstance (props, new myAuthenticator ()); // Créer du contenu de messagerie Message mimeMessage = new MimeMessage (session); // MAIL SUJET et spécifiez le format de codage Message.SetSubject ("HTML Mail avec images intégrées", "UTF-8"); // Sender Message.SetFrom (nouveau InternetAddress (From)); // message du destinataire.SetRcipients (destinataireType.to, InternetAddress.Parse (TO)); // cc message.setReccipient (destinataireType.cc, nouveau InternetAddress ("[email protected]")); // Secret Send (non affiché dans la liste des destinataires de messagerie) Message.SetRcipient (destinataireType.bcc, nouveau InternetAddress ("[email protected]")); // Envoyer un message d'heure.SeSentDate (new Date ()); // Créez un objet MIMEMULTIPART avec le sous-type MIME "lié" MIMEMULPART MP = new MIMEMMULTIPART ("LELED"); // Créez un objet MIMEBODYPART représentant le corps et ajoutez-le à l'objet MIMEMULPART créé plus tôt MIMEBODYPART HTMLPART = new MIMEBODYPART (); MP.AddBodyPart (HTMLPART); // Créez un objet MIMEBODYPART représentant des ressources d'image et ajoutez-les à l'objet MIMEMULPART créé plus tôt MIMEBODYPART ImagePart = new MIMEBODYPART (); mp.addbodyPart (imagePart); // Définissez l'objet MIMEMULPART sur le contenu de l'ensemble du message Message.SetContent (MP); // Définissez le corps de messagerie d'image intégré DataSource DS = new FileDataSource (nouveau fichier ("Resource / FirefoxLogo.png")); Datahandler dh = new Datahandler (ds); ImagePart.SetDatahandler (DH); ImagePart.setContendId ("FirefoxLogo.png"); // Définissez le numéro de contenu à utiliser pour d'autres références de corps de messagerie // Créez un objet MIMEMULPART avec le sous-type MIME "Alternative" et servez le contenu e-mail de l'objet htmlPart créé plus tôt mimemultupart htmlMultipart = new MiMemultustr ("alternative"); // Créez un objet MIMEBODYPART représentant le corps HTML MIMEBODYPART HTMLBODYPART = new MIMEBODYPART (); // où cid = androidlogo.gif est l'image à l'intérieur du message de référence, c'est-à-dire, imagePart.setContentid ("AndroidLogo.gif"); Méthode htmlbodyPart.SetContent ("<span style = 'Color: Red;'> Ceci est un e-mail HTML avec des images embarquées !!! <img src = /" cid: firefoxlogo.png / "/> </span>", "text / html; chastet = utf-8"); htmlMultupartip.AddBodyPart (htmlbodypart); htmlPart.setContent (htmlMultupart); // Enregistrer et générer le message de contenu e-mail final.SaveChanges (); // Envoyer un courrier transport.send (message); } / ** * Envoyez un message HTML complet avec des images embarquées, des pièces jointes, plusieurs destinataires (affichage du nom de la boîte aux lettres), une priorité par e-mail et une réception de lecture * / public static void sendMultipleEmail () lève une exception {String Charset = "UTF-8"; // Spécifiez le format de codage chinois // Créer une session d'instance de session Session Session = session.getInstance (accessoires, new MyAuthenticator ()); // Créer un message d'instance mimeMessage MimEMessage Message = new MimeMessage (session); // Définissez le sujet Message.SetSubject ("Utilisez Javamail pour envoyer un test de courrier combiné mixte"); // Définit Message.SetFrom (new InternetAddress (From, "Sina Test Email", Charset)); // Définir le destinataire Message.SetRcipients (destinataireType.to, nouvelle adresse [] {// paramètre 1: adresse e-mail, paramètre 2: nom (seul le nom est affiché dans le client recevant, pas l'adresse e-mail), paramètre 3: nom de chaîne chinoise encoding nouveau Internetaddress ("[email protected]", "zhang san_sohu", charset), new InternetAddress ("[email protected]", "li si_163", charse),}); // set cc message.setReccipient (destinataireType.cc, nouveau InternetAddress ("[email protected]", "wang wu_gmail", charse)); // set secret message.setReccipient (destinataireType.bcc, nouveau InternetAddress ("[email protected]", "zhao liu_qq", charse)); // SET SEND MESSION DU MESSAGE.SETSENTDATE (NOUVEAU DATE ()); // Définissez le répondeur (le destinataire par défaut est donné lorsque le destinataire répond à cet e-mail) messages.setReplyTo (InternetAddress.Parse ("/" "+ mimeutility.encodext (" tian qi ") +" / "<[email protected]>")); // définir la priorité (1: urgence 3: normal 5: faible) message.Setheader ("x-priority", "1"); // demande un reçu de lecture (le destinataire invitera l'expéditeur à répondre lors de la lecture de l'e-mail, indiquant que l'e-mail a été reçu et a été lu) Message.Setheader ("Disposition-notification-to", from); // Créer un objet MIMEMultupart avec le sous-type MIME "mixé", indiquant qu'il s'agit d'un e-mail de type combinaison mixte mimeMultupart MailContent = new MIMEMULUPART ("mixte"); Message.SetContent (MailContent); // pièce jointe mimeBodyPart attach1 = new MimeBodyPart (); MIMEBODYPART attach2 = new MIMEBODYPART (); // contenu mimeBodyPart MailBody = new MIMEBODYPART (); // Ajouter la pièce jointe et le contenu au courrier mailContent.AddBodyPart (joint1); MailContent.AddBodyPart (attach2); MailContent.AddBodyPart (Mailbody); // Pièce jointe 1 (utilisez le framework JAF pour générer un corps de messagerie) DataSource DS1 = new FileDataSource ("Resource / Earth.bmp"); Datahandler DH1 = nouveau Datahandler (DS1); attach1.setFileName (mimeutility.encodeText ("Earth.bmp")); attach1.setDatahandler (dh1); // pièce jointe 2 dataSource ds2 = new FileDataSource ("Resource / How to Appreing C Language bien.txt"); Datahandler dh2 = new Datahandler (ds2); attach2.setDatahandler (dh2); attach2.setFileName (mimeutility.encodeText ("Comment apprendre c linguisé bien.txt")); // Body e-mail (image embarquée + texte HTML) MIMEMULPART Body = new MIMEMULPART ("LELED"); // Le corps par e-mail est également une combinaison, et la relation combinée doit être spécifiée MailBody.SetContent (corps); // Le corps par e-mail se compose de HTML et d'images MIMEBODYPART IMGPART = new MIMEBODYPART (); MIMEBODYPART HTMLPART = NEW MIMEBODYPART (); body.addbodyPart (imgpart); body.addbodypart (htmlpart); // Image de texte DataSource DS3 = new FileDataSource ("Resource / FirefoxLogo.png"); Datahandler dh3 = new Datahandler (ds3); imgpart.setDatahandler (dh3); imgpart.setContendId ("FirefoxLogo.png"); // HTML Courriel Contenu MIMEMULTIPART HTMLMULTIPART = NOUVEAU MIMEMUMULPART ("Alternative"); htmlPart.setContent (htmlMultupart); MIMEBODYPART HTMLCONTENT = NEW MIMEBODYPART (); htmlcontent.setContent ("<span style = 'colore: red'> Ceci est l'e-mail que j'ai envoyé avec java mail moi-même!" + "<img src = 'cid: firefoxlogo.png' /> </span>", "text / html; charset = gbk"); htmlMultupartip.AddBodyPart (htmlContent); // Enregistrez le contenu du message et modifiez Message.SaveChanges (); / * Fichier emml = buildemlfile (message); sendmailForeml (eml); * / // envoyer un e-mail transport.send (message); } / ** * Générez un fichier EML au contenu de l'e-mail * @param Message Contrôle de messagerie * / public static File BuildEmlFile (message Message) lève MessagedException, FileNotFoundException, ioException {file file = new File ("c: //" + mimeutility.decodExt (message.getSubject ()) + ". Eml"); Message.WriteTo (new FileOutputStream (fichier)); return fichier; } / ** * Envoyer un fichier e-mail généré localement * / public static void sendmailForeml (fichier emml) lève une exception {// recevoir la session de session par e-mail = session.getInstance (accessoires, new myAuthenticator ()); // Obtenez du contenu par e-mail, c'est-à-dire que le fichier EML généré avant qu'il ne se produise dans InputStream est = new FileInputStream (EML); MIMEMESSAGE MESSAGE = NOUVEAU MIMEMESSAGE (SESSION, IS); // Envoyer un e-mail transport.send (message); } / ** * Soumettre les informations d'authentification au serveur de messagerie * / classe statique MyAuthenticator étend Authenticator {private String username = ""; Private String Password = ""; public myAuthenticator () {super (); this.password = sendUserPwd; this.UserName = SendUsername; } public myAuthenticator (String Username, String Motword) {super (); this.userName = nom d'utilisateur; this.password = mot de passe; } @Override Protected PasswordAuthentication GetPasswordAuthentication () {return new PasswordAuthentication (nom d'utilisateur, mot de passe); }}}Exemple de code Demo2:
package com.justtin.framework.core.utils.email; import java.util.hashset; import java.util.properties; import java.util.set; import javax.activation.datahandler; import javax.activation.filedatasource; import javax.mail.address; import javax.mail.bodybory; import; javax.mail.message; import javax.mail.multupart; import javax.mail.session; importer javax.mail.transport; import javax.mail.internet.internetaddress; import javax.mail.internet.mimebodyPart; import javax.mail.internet.mimeMessage; import; javax.mail.internet.mimemultuparting; Importer javax.mail.internet.mimeutility; public classe MailManageRoutils {// Envoyer un e-mail Sendmail booléen statique publique (e-mail) {String Subject = email.getsubject (); String Content = email.getContent (); String [] recrues = email.getRecievers (); String [] Copyright = email.getCopyTo (); String hecking = email.getAttBody (); String [] attbodys = email.getAttBodys (); if (recivers == null || collecters.length <= 0) {return false; } try {Properties props = new Properties (); Prophes.setProperty ("Mail.enable", "True"); props.setProperty ("mail.protocal", "smtp"); props.setProperty ("mail.smtp.auth", "true"); props.setproperty ("mail.user", "[email protected]"); Prophes.setProperty ("Mail.Pass", "New ***"); props.setproperty ("mail.smtp.host", "mail.tdb.com"); props.setproperty ("mail.smtp.from", "[email protected]"); props.setProperty ("mail.smtp.fromname", "tdbvc"); // Créer un programme pour communiquer avec la session de messagerie MailConnection = session.getInstance (accessoires, null); Message msg = new MimeMessage (MailConnection); // Définit l'expéditeur et l'adresse du destinataire Sender = new InternetAddress (props.getProperty ("mail.smtp.from")); // plusieurs destinataires msg.setFrom (expéditeur); Set <InternetAddress> TouseSeT = new HashSet <InternetAddress> (); // Validation de validité de la boîte aux lettres pour (int i = 0; i <récepteurs.length; i ++) {if (recivers [i] .trim (). Correspond ("^ // w + ([- +.] // w +) * @ // w + ([-.] // w +) + $")) {tousserset.add (newwingaddress (réciveys [i]. }} msg.setReccipients (message.recipentType.to, TouseSet.toArray (new InternetAddress [0])); // set cc if (copyto! = Null) {set <InternetAddress> copyTouseSeSet = new HashSet <InternetAddress> (); // Validité par e-mail valide pour (int i = 0; i <copyto.length; i ++) {if (copyto [i] .trim (). Correspond ("^ // w + ([- +.] // w +) * @ // w + ([-.] // w +) + $")) {copyTouseSet.add (new Internetddress (Copyto [i]. }} // msg.setReccipients (message.recientType.cc, (adresse []) InternetAddress.Parse (copyto)); msg.setReccipients (message.recipentType.cc, copyTouseSet.toArray (new InternetAddress [0])); } // Définissez le sujet de messagerie MSG.SetSubject (mimeutility.encodeText (sujet, "UTF-8", "B")); // Problème de code brouillé chinois // Définir le contenu de messagerie BOROSTART MessageBodyPart = new MIMEBODYPART (); MessageBodyPart.setContent (Content, "Text / Html; charSet = UTF-8"); // MultipART chinois multipart = new mimeMultustrAt (); multipart.addbodyPart (messageBodyPart); msg.setContent (multiparte); / ***********************************. for (String filepath: filepath) {// Définissez la pièce jointe de la lettre (utilisez le fichier sur la machine locale comme pièce jointe) bodyPart MDP = new MIMEBODPART (); FiledAdAtaSource FDS = new FiledAdAtaSource (filepath); Datahandler dh = new Datahandler (fds); mdp.setFileName (mimeutility.encodeText (fds.getName ())); MDP.SetDatahandler (DH); multipart.addbodyPart (MDP); } // Put MTP comme contenu de l'objet de message msg.setContent (multipartial); }; if (attbodys! = null) {for (String filepath: attbodys) {// définissez la pièce jointe de la lettre (utilisez le fichier sur la machine locale comme pièce jointe) bodyPart MDP = new MIMEBODYPART (); FiledAdAtaSource FDS = new FiledAdAtaSource (filepath); Datahandler dh = new Datahandler (fds); mdp.setFileName (mimeutility.encodeText (fds.getName ())); MDP.SetDatahandler (DH); multipart.addbodyPart (MDP); } // Put MTP comme contenu de l'objet de message msg.setContent (multipartial); }; / *********************. System.out.println ("Envoyer un e-mail ..."); Transport Transfer = MailConnection.GetTransport (props.getProperty ("Mail.protocal")); // Nom du serveur de courrier, nom d'utilisateur, mot de passe trans.connect (props.getProperty ("mail.smtp.host"), props.getProperty ("mail.user"), props.getProperty ("Mail.pass")); trans.sendMessage (msg, msg.getAllrecipients ()); System.out.println ("Envoyer le courrier avec succès!"); // Fermez le canal if (trans.isconnected ()) {trans.close (); } return true; } catch (exception e) {System.err.println ("Email Send a échoué!" + e); retourne false; } Enfin {}} // l'expéditeur, le destinataire et le titulaire de réponse ont un code chinois brouillé dans l'e-mail, Res est l'adresse obtenue // La méthode de codage par défaut de HTTP est ISO8859_1 // Pour envoyer des adresses converties chinoises, utilisez la méthode Mimeutility.DecodeTEx getChineseFrom (string res) {String from = res; try {if (from.startswith ("=? gb") || from.startswith ("=? gb") || from.startswith ("=? utf")) {from = mimeutility.decodeText (from); } else {from = new String (from.getBytes ("ISO8859_1"), "gbk"); }} catch (exception e) {e.printStackTrace (); } retour de; } // Convertir en GBK codant pour la chaîne statique publique tochinese (String strValue) {try {if (strValue == null) renvoie null; else {strValue = new String (strValue.getBytes ("ISO8859_1"), "gbk"); Retour Strvalue; }} catch (exception e) {return null; }} public static void main (string [] args) {e-mail e-mail = new e-mail (); email.setRecievers (new String [] {"[email protected]"}); Email.SetSubject ("Test Test"); Email.SetContent ("test de test"); sendmail (e-mail); }}Résumer
Ce qui précède est l'intégralité du contenu de cet article. J'espère que le contenu de cet article a une certaine valeur de référence pour l'étude ou le travail de chacun. Si vous avez des questions, vous pouvez laisser un message pour communiquer. Merci pour votre soutien à wulin.com.