Spring Mail résume le service de courrier de Javamail, ce qui facilite l'utilisation du service de messagerie. Prenez le serveur de boîtes aux lettres QQ à titre d'exemple et utilisez le service Spring Mail pour envoyer des e-mails.
Configurez la boîte aux lettres QQ, "Paramètres" - "Compte", ouvrez le service SMTP et générez un code d'autorisation
La génération d'un code d'autorisation nécessite une vérification du téléphone mobile. Ensuite, vous pouvez utiliser le compte de messagerie QQ et le code d'autorisation pour envoyer des e-mails, et il n'y a pas besoin de mot de passe QQ.
Le service Spring Mail est configuré dans Spring-Context-Support, puis vous pouvez envoyer des e-mails avec le serveur d'envoi fourni par la boîte aux lettres QQ.
<Dedency> <ProupId> javax.mail </rompuprid> <Ertifactid> mail </ artifactive> <in version> 1.4.7 </ version> </ Dependency> <Dedency> <ProupId> org.springFramework </proupId> <ErtifactId> Spring-Context-Support </ Depenvence>
Courrier texte normal
Le premier test est un message texte normal
package com.xmyself.mail; import org.springframework.mail.simplemailMessage; import org.springframework.mail.javamail.javamailssenderimpl; classe publique main {public static void main (String [] args) {javamailSenderImpl MailSender = new JavamailSenderImpl (); MailSender.Sethost ("smtp.qq.com"); MailSender.Setport (587); MailSender.SetUsername ("[email protected]"); MailSender.SetPassword ("DSRUKLOZELXCBDBA"); // Code d'autorisation SimpleMailMessage Mail = new SimpleMailMessage (); Mail.setto ("[email protected]"); Mail.setFrom ("[email protected]"); Mail.SetSubject ("Test Mail"); Mail.SeTText ("Test Mail Content"); MailSender.Send (courrier); System.out.println ("Success"); }}Exécutez-le et envoyez un e-mail. Remarque: Le code d'autorisation n'est pas le mot de passe, le port n'est pas 25 mais 587
Ensuite, gardez le MailSender inchangé, modifiez le type de messagerie et envoyez des messages de messagerie riches
Mail HTML simple
Laissez le contenu de l'e-mail être affiché au format HTML, modifiez-le simplement comme suit
MimeMessage Mail = MailSender.CreateMiMEmSage (); MimeMessageHelper Helper = new MimeMessageHelper (mail, true); // true est utilisé pour activer le mode multiparte et ajouter une image ou une pièce jointe helper.setTo("[email protected]");helper.setFrom("[email protected]");helper.setSubject("test mail");helper.setText("<html><head></head><body>" + "<h1>hello!!spring html Mail</h1>" + "</body></html>" , vrai);Envoyez toujours ce courrier à l'aide de MailSender
MailSender.Send (courrier);
Mail HTML avec des photos
Insérer l'affichage de l'image dans le contenu HTML de l'e-mail, modifiez le contenu texte
helper.setText ("<html> <ead> </ head> <body>" + "<h1> Bonjour !! Spring Html Mail </H1>" + "<img src = /" cid: image / "/>" + "</body> </html>", true); FileSystemResource image = new FileSystemResource (new File ("d: /test.jpg")); helper.addinline ("image", image); Mail HTML avec pièces jointes
Ajouter des pièces jointes aux e-mails, le contenu texte reste inchangé, il suffit de le modifier comme suit
HELPER.SETTEXT ("<HTML> <A-HEAD> </ Head> <Body>" + "<H1> Hello !! Spring Html Mail </H1>" + "</body> </html>", true); FileSystemResource Image = New FileSystemResource (nouveau fichier ("d: /test.jpg")); helper.addddddattachment ("TSSIGHT.JPG"); Email du modèle Freemarker
Le contenu HTML est généralement très riche, et il est trop désordonné pour écrire directement dans la méthode setText (). Par conséquent, HTML doit être géré séparément en tant que fichier, puis utiliser des outils pour convertir son contenu en une chaîne en tant que paramètre de setText (). Ce qui suit est un moteur de modèle Freemarker comme exemple
Créez un nouveau répertoire de modèles dans le répertoire du projet SRC / Main / Resources et placez un fichier test.ftl, le contenu est le suivant
<html> <éad- head> </ head> <pody> <p> Tester le modèle Freemarker, bienvenue $ {nom d'utilisateur} </p> <img src = "cid: image" /> </ body> </html>Ensuite, utilisez les outils fournis par Freemarker et Spring pour convertir le contenu en une chaîne, ce qui nécessite bien sûr de compter sur le nouveau pot
<dependency> <proupId> org.freMarker </rom grouped> <Ertifactid> freemarker </retifactid> <version> 2.3.23 </-version> </Dependance>
Créez un nouveau frearikerparser.java
package com.xmyself.mail; Importer java.util.map; import org.springframework.ui.freMarker.freMarkerTemplateUtils; Importer freemarker.template.configuration; import freamarker.template.template; classe publique FreeMarkerParser {public String tohtmlString (String Name, map <String, String> data) {@SuppressWarnings ("Deprecation") Configuration config = new Configuration (); config.setClassForTemplateLoading (this.getClass (), "/ templates /"); try {template template = config.getTemplate (name); return FreemarkerTemplateUtils.ProcessTemplateIntoString (modèle, données); } catch (exception e) {e.printStackTrace (); } return "échec"; }}Remplacez le contenu $ {} dans le modèle par la valeur de la carte, convertissez le fichier de modèle en une chaîne de chaîne
Remarque: La configuration et la lecture des chemins de modèle pendant le processus sont gênantes et elles sont temporairement gérées de cette manière.
Le code pour envoyer un e-mail ne nécessite qu'un très petit changement
Map <string, string> data = new hashmap <string, string> (); data.put ("username", "chengyi"); string text = new freemarkerParser (). Tohtmlstring ("test.ftl", data); helper.setText (texte, true); FileSystemResource image = new FileSystemResource (nouveau fichier ("d: /test.jpg")); helper.addinline ("image", image);Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.