Spring Mail encapsula el servicio de correo de Javamail, lo que hace que sea más fácil usar el servicio de correo. Tome el servidor de buzón QQ como ejemplo y use el servicio Spring Mail para enviar correos electrónicos.
Configurar el buzón QQ, "Configuración" - "Cuenta", abra el servicio SMTP y genere un código de autorización
La generación de un código de autorización requiere la verificación del teléfono móvil. A continuación, puede usar la cuenta de correo electrónico de QQ y el código de autorización para enviar correos electrónicos, y no hay necesidad de una contraseña de QQ.
El servicio Spring Mail está configurado en Spring-Context-Support, y luego puede enviar correos electrónicos con el servidor de envío proporcionado por el buzón QQ.
<Spendency> <MoupRoMID> javax.mail </groupid> <artifactId> mail </artifactid> <versión> 1.4.7 </versión> </pendency> <spendency> <proupid> org.springframework </groupId> <artifactid> spring --context-support </artifactId> <version> 3.2.17.release </version> </spring --context-support </artifactId> <version> 3.2.17.Release </versión> </artifactId> spring-Condext-support </artifactId> <PROPLESE> 3.2.17.Release </versión> </artifactID> Spring-Condext-Support </artifactId> <PROPLESA>
Correo de texto normal
La primera prueba es el correo de texto normal
paquete com.xmyself.mail; importar org.springframework.mail.simplemailMessage; import org.springframework.mail.javamail.javamailsenderImpl; public class 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"); // código de autorización simplemailMessage mail = new SimpleMailMessage (); mail.setto ("[email protected]"); mail.setFrom ("[email protected]"); mail.setsubject ("Test Mail"); mail.settext ("Test Mail Content"); Mailsender.send (correo); System.out.println ("éxito"); }}Ejecutarlo y enviar un correo electrónico. Nota: El código de autorización no es la contraseña, el puerto no es 25 sino 587
A continuación, mantenga el ceñador de correo sin cambios, modifique el tipo de correo y envíe mensajes de correo ricos
Correo HTML simple
Deje que el contenido de correo electrónico se muestre en formato HTML, simplemente modifíelo de la siguiente manera
Mimemessage mail = mailsender.createMeMeMessage (); mimemessageHelper helper = new mimemessageHelper (correo, verdadero); // Verdadero se utiliza para activar el modo multipart y agregar una imagen o archivos adjuntos helper.setto ("[email protected]"); helper.setFrom ("[email protected]"); helper.setsubject ("Test Mail"); Helper.setText ("<html> <ade) "</body> </ html>", true);Todavía envía este correo usando Mailsender
Mailsender.send (correo);
Correo html con fotos
Inserte la pantalla de imagen en el contenido HTML del correo electrónico, modifique el contenido de texto
helper.setText ("<html> <fead> </head> <body>" + "<h1> hello !! spring html mail </h1>" + "<img src =/" cid: image/"/>" + "</body> </html>", true); filsysteSource Image = new FileSesource (nuevo Archivo ("d: /test.jpg")); helper.addinline ("imagen", imagen); Correo html con archivos adjuntos
Agregar archivos adjuntos al correo electrónico, el contenido de texto permanece sin cambios, simplemente modifíelo de la siguiente manera
Helper.setText ("<html> <head> </head> <body>" + "<h1> hello !! spring html mail </h1>" + "</body> </html>", true); filesystemResource imagen = nuevo filesystemresource (nuevo archivo ("d: /test.jpg")); helper.addattattachment (test.jpg (test.jpg (test.jpg; Correo electrónico de plantilla de freemarker
El contenido HTML suele ser muy rico, y es demasiado complicado para escribir directamente en el método setText (). Por lo tanto, HTML debe administrarse por separado como un archivo y luego usar herramientas para convertir su contenido en una cadena como un parámetro de setText (). El siguiente es un motor de plantilla de marca libre como ejemplo
Cree un nuevo directorio de plantillas en el directorio del proyecto src/main/recursos, y coloque un archivo test.ftl, el contenido es el siguiente
<html> <head> </head> <body> <p> Test Freemarker Plantilla, bienvenido $ {nombre de usuario} </p> <img src = "cid: image"/> </body> </html>Luego, use las herramientas proporcionadas por Freemarker y salte para convertir el contenido en una cadena, lo que, por supuesto, requiere confiar en el nuevo frasco.
<Spendency> <MoupRoMID> org.freemarker </groupid> <artifactid> freemarker </artifactid> <versever> 2.3.23 </versión> </pendency>
Crea un nuevo freemarkerParser.java
paquete com.xmyself.mail; import java.util.map; import org.springframework.ui.freemarker.freemarkerTemplateUtils; import freemarker.template.configuration; import freemarker.template.template; public class FreemarkerParser {public String tohtmlString (name de cadena, map <string, string> data) {@supplresswarnings ("deprecation") configuración configuración configuración = nueva configuración (); config.setClassfortEmplAteloading (this.getClass (), "/Templates/"); intente {plantilla plantlate = config.gettemplate (nombre); return freeMarkerTemplateUtilss.processTemplateInToString (plantilla, datos); } catch (Exception e) {E.PrintStackTrace (); } return "fail"; }}Reemplace el contenido $ {} en la plantilla con el valor en el mapa, convierta el archivo de plantilla en una cadena de cadena
Nota: La configuración y lectura de rutas de plantilla durante el proceso es problemática, y se maneja temporalmente de esta manera.
El código para enviar un correo electrónico requiere solo un cambio muy pequeño.
Map <string, string> data = new HashMap <String, String> (); data.put ("UserName", "Chengyi"); String Text = new FreeMarkerParser (). TohtmlString ("test.ftl", data); Helper.settext (Text, True); FilesystemResource Image = new FilesystemResource (nuevo archivo ("d: /test.jpg")); helper.addinline ("imagen", imagen);Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.