O Spring Mail encapsula o serviço de email do Javamail, facilitando o uso do serviço de email. Pegue o servidor QQ Mailbox como exemplo e use o serviço de email de primavera para enviar e -mails.
Configure a caixa de correio QQ, "Configurações" - "Conta", abra o Serviço SMTP e gerar um código de autorização
A geração de um código de autorização requer verificação do telefone celular. Em seguida, você pode usar a conta de email QQ e o código de autorização para enviar e -mails e não há necessidade de uma senha QQ.
O serviço de correio de primavera está configurado no suporte de contexto da primavera e, em seguida, você pode enviar e-mails com o servidor de envio fornecido pela caixa de correio QQ.
<Depencency> <PuerpId> javax.mail </frugiD> <TRAFACTID> Mail </sutifactId> <Versão> 1.4.7 </siers> </dependency> <pendency> <puperid> org.springframework </groupid> <artifactId> spring-context-suport </artefactid> <sunders> 3.2.2.20>
Correio de texto normal
O primeiro teste é o correio de texto normal
pacote com.xmysfl.mail; importar org.springframework.mail.simplemailMessage; importar org.springframework.mail.javamail.javamailsenderImpl; classe pública principal {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 autorização SimpleMailMessage Mail = new SimpleMailMessage (); mail.setto ("[email protected]"); email.setFrom ("[email protected]"); Mail.SetSubject ("Test Mail"); Mail.Settext ("Conteúdo do correio de teste"); MailSender.send (Mail); System.out.println ("Sucesso"); }}Execute -o e envie um email. Nota: O código de autorização não é a senha, a porta não é 25, mas 587
Em seguida, mantenha o MailSender inalterado, modifique o tipo de email e envie mensagens de correio ricas
Mail HTML simples
Deixe o conteúdo de email ser exibido no formato HTML, basta modificá -lo da seguinte forma
Mimemessage Mail = MailSender.Createmimemessage (); MimemessageHelper Helper = New MimemessageHelper (Mail, True); // true é usado para ativar o modo multipartido e adicionar uma imagem ou anexo helper.setto ("[email protected]"); helper.setFrom ("[email protected]"); helper.setsubject ("teste de teste"); helper.settext ("Spring html> , verdadeiro);Ainda envie este e -mail usando o MailSender
MailSender.send (Mail);
HTML Mail com fotos
Insira a exibição da imagem no conteúdo HTML do email, modifique o conteúdo do texto
helper.settext ("<html> <head> </head> <body>" + "<h1> olá !! spring html Mail </h1>" + "<img src =/" cid: image/"/>" + "</body> </html>", true); Arquivo ("d: /test.jpg")); helper.addinline ("imagem", imagem); Mail HTML com anexos
Adicione anexos ao email, o conteúdo do texto permanece inalterado, basta modificá -lo da seguinte forma
helper.settext ("<html> <head> </head> <body>" + "<h1> hello !! spring html Mail </h1>" + "</body> </html>", true); finsystemResource imagem ") Freemarker Modelo Email
O conteúdo HTML geralmente é muito rico e é muito confuso escrever diretamente no método setText (). Portanto, o HTML deve ser gerenciado separadamente como um arquivo e, em seguida, usar as ferramentas para converter seu conteúdo em uma string como um parâmetro de setText (). A seguir, é apresentado um mecanismo de modelo Freemarker como exemplo
Crie um novo diretório de modelos no diretório do Projeto SRC/Main/Recursos e coloque um arquivo test.ftl, o conteúdo é o seguinte
<html> <head> </head> <body> <p> Teste o modelo Freemarker, bem -vindo $ {nome de usuário} </p> <img src = "cid: image"/> </body> </html>Em seguida, use as ferramentas fornecidas pelo Freemarker e Spring para converter o conteúdo em uma string, o que obviamente exige confiar no novo frasco
<Depencency> <GrupidId> org.freemarker </proupid> <ArtifactId> freemarker </stutifactId> <versão> 2.3.23 </sisters> </dependency>
Crie um novo FreemarkerParser.java
pacote com.xmysfl.mail; importar java.util.map; importar org.springframework.ui.freemarker.freemarkertemplateUtils; importar freemarker.template.configuration; importar freemarker.template.template; public class FreemarkerParser {public String toHtmlString (Nome da String, Map <String, String> Data) {@suppresswarnings ("depreciação") Configation Config = new Configuration (); config.setClassfortemplateLoading (this.getClass (), "/modsates/"); tente {modelo modelo = config.getTemplate (nome); return freemarkertemplateutils.processtemplateIntroString (modelo, dados); } catch (Exceção e) {e.printStackTrace (); } retornar "falha"; }}Substitua o conteúdo $ {} no modelo pelo valor no mapa, converta o arquivo de modelo em uma string string
Nota: A configuração e a leitura dos caminhos de modelo durante o processo são problemáticas e é temporariamente tratada dessa maneira.
O código para enviar um email requer apenas uma mudança muito pequena
Mapa <string, string> data = new hashmap <string, string> (); data.put ("nome de usuário", "chengyi"); string text = new FreemarkerParser (). TohtmlString ("test.ftl", dados); Helper.Settext (Texto, True); FileSystemResource Image = new FileSystemResource (novo File ("D: /test.jpg")); Helper.addinline ("Image", Image);O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.