Como usar o JavaMailSender para enviar um e-mail especial para ela uma vez amada

insira a descrição da imagem aqui

Quando o servidor de um site envia um e-mail para um usuário, o e-mail geralmente precisa conter fotos, links e outros conteúdos. Então, por conveniência, geralmente enviamos e-mails em formato HTML, então como escrever um e-mail em formato HTML? — Tomilho.
Antes de começar, crie um novo projeto SpringBoot e adicione as dependências necessárias. Então você pode continuar para baixo.

1. Configurações da caixa de correio

1.1 Ativar serviço POP3/SMTP do cliente

Antes de tudo, precisamos de uma conta de e-mail. Escolhi o e-mail Sina aqui, registre-se e faça o login. É relativamente simples aqui. Basta abrir as configurações, encontrar o cliente e abrir o serviço POP3/SMTP.

insira a descrição da imagem aqui

2、E-mail da Primavera

2.1 Importar o pacote jar

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-mail</artifactId>
	<version>2.7.2</version>
</dependency>

2.2 Configurações de parâmetros da caixa postal

Após importar o pacote, também precisamos configurar alguns parâmetros para a caixa de correio no programa.Se quisermos usar esta caixa de correio no programa, precisamos configurar a conta, senha, link de acesso e protocolo da caixa de correio. Se você quiser alterar a caixa de correio mais tarde, você só precisa alterar o arquivo de configuração. Lembre-se de não escrever a caixa de correio até a morte no programa Java. Vamos configurar os parâmetros abaixo.

spring:
  # MailProperties 邮箱设置
  mail:
    host: smtp.sina.com   # 声明邮箱域名
    port: 465             # 邮箱端口
    username: [email protected]    # 邮箱账号
    password: be157646ac7d3754   # 邮箱授权码
    protocol: smtps       # 协议
    # 发送邮件时采用ssl安全连接
    properties:
      mail:
        smtp:
          ssl:
            enable: true

2.3 Enviando e-mails usando JavaMailSender

Em seguida, podemos escrever o código para enviar e-mails. O núcleo do Spring Email enviando e-mails é JavaMailSender. Enviamos e-mails chamando essa interface. Escrevemos uma classe de ferramentas aqui e, em seguida, encapsulamos todo o processo lógico de envio de e-mails, que podem ser usados ​​repetidamente.

@Component
public class MailClient {
    
    
	
	// 声明一个logger,用来记录日志
    private static final Logger logger = LoggerFactory.getLogger(MailClient.class);

    @Autowired
    private JavaMailSender mailSender;

	// 发件人
    @Value("${spring.mail.username}")
    private String from;

	// to:收件人  subject:邮件标题  content:邮件内容
    public void sendMail(String to,String subject,String content) {
    
    
        try {
    
    
            MimeMessage message = mailSender.createMimeMessage();
            // 构建 MimeMessage 的内容
            MimeMessageHelper helper = new MimeMessageHelper(message);
            helper.setFrom(from);
            helper.setTo(to);
            helper.setSubject(subject);
            helper.setText(content, true); // true表示支持html文本
            mailSender.send(helper.getMimeMessage());
        } catch (MessagingException e) {
    
    
            logger.error("发送邮件失败:" + e.getMessage());
        }
    }
}

发送一份邮件需要发件人、收件人、邮件标题。邮件内容,而通过服务器发邮件,发件人是固定的,所以我们通过@Value将其注入进来。

2.4 Teste simples

Depois que a configuração estiver concluída, podemos escrever uma classe de teste para testar se podemos enviar e-mails.

@SpringBootTest
public class MailTests {
    
    

    @Autowired
    private MailClient mailClient;

    @Test
    public void testTextMail() {
    
    
        mailClient.sendMail("[email protected]","测试邮件","Welcome!!!");
    }

    @Test
    public void testHtmlMail() {
    
    
        Context context = new Context();
        context.setVariable("username","Lucy");

        String content = templateEngine.process("/mail/demo", context);
        System.out.println(content);

        mailClient.sendMail("[email protected]","HTML测试",content);
    }


}

insira a descrição da imagem aqui

3. Mecanismo de modelo

3.1 Enviando e-mails HTML com Thymeleaf

Por fim, vamos dar uma olhada em como usar o mecanismo de modelo Thymeleaf para enviar e-mails formatados em HTML, para que os e-mails possam conter conteúdo mais rico.

  • Primeiro, escrevemos um modelo de e-mail simplesdemo.html
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
  <meta charset="UTF-8">
  <title>邮件示例</title>
</head>
<body>
<p>亲爱的, <span style="color:red;" th:text="${username}"></span>!</p>
<p>最近怎么样?我希望你的生活有点变化,至少是每当你歇班的时候不要一个人呆在宿舍里睡大觉,应该有一个帅哥哥陪着你逛商场,当你看到一件你想买又一直不舍得买的东西时,刚好他的兜里有足够的钱,逛完商场陪你吃晚饭,然后为你买一大包零食再把你送回宿舍。这种待遇如果恋爱的时候不好好享受一下,结婚后恐怕就很难再找到感觉了。</p>
<p>XX,一定要嫁给一个真心实意爱你的男人,嫁给一个品行好的男人,或许他会与你心中的白马王子有一定的差距,但在今后的生活中,你会感觉到,他对你的感情是你无穷无尽的幸福宝藏,有这座宝藏在心中,你会比任何一个女人都幸福。</p>
<p>...</p>
<p>爱你的男孩</p>
</body>
</html>
  • Em seguida, escreva um método de teste também
@SpringBootTest
public class MailTests {
    
    

    @Autowired
    private MailClient mailClient;

    @Autowired
    private TemplateEngine templateEngine;

    @Test
    public void testHtmlMail() {
    
    
        Context context = new Context();
        context.setVariable("username","XX");
		// 调用templateEngine的process方法生成动态网页
		// 并且需要将模板文件的位置以及数据传给他
        String content = templateEngine.process("/mail/demo", context);
        
        // 这里可以将生成的网页打印在控制台查看一下
        System.out.println(content);
        
        // 发送邮件
        mailClient.sendMail("[email protected]","写给心爱女孩的一封信",content);
    }


}

Saída do console:

insira a descrição da imagem aqui

Página de e-mail enviado com sucesso

insira a descrição da imagem aqui

Em geral, enviar e-mails é uma técnica relativamente simples. Mas ela não é! ! !

Acho que você gosta

Origin blog.csdn.net/weixin_52986315/article/details/126512431
Recomendado
Clasificación