Cómo usar JavaMailSender para enviar un correo electrónico especial a su amado

inserte la descripción de la imagen aquí

Cuando el servidor de un sitio web envía un correo electrónico a un usuario, el correo electrónico a menudo necesita incluir imágenes, enlaces y otro contenido. Entonces, por conveniencia, generalmente enviamos correos electrónicos en formato HTML, entonces, ¿cómo se escribe un correo electrónico en formato HTML? —Hoja de tomillo.
Antes de comenzar, cree un nuevo proyecto SpringBoot y agregue las dependencias requeridas. Luego puedes continuar hacia abajo.

1. Configuración del buzón

1.1 Habilitar el servicio POP3/SMTP del cliente

En primer lugar, necesitamos una cuenta de correo electrónico. Elegí el correo electrónico de Sina aquí, regístrese e inicie sesión. Es relativamente simple aquí. Simplemente abra la configuración, busque el cliente y luego abra el servicio POP3/SMTP.

inserte la descripción de la imagen aquí

2, correo electrónico de primavera

2.1 Importar el paquete jar

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

2.2 Configuración de los parámetros del buzón

Después de importar el paquete, también debemos configurar algunos parámetros para el buzón en el programa.Si queremos usar este buzón en el programa, debemos configurar la cuenta, la contraseña, el enlace de acceso y el protocolo del buzón. Si desea cambiar el buzón más tarde, solo necesita cambiar el archivo de configuración. Recuerde no escribir el buzón hasta el final en el programa Java. Configuremos los parámetros a continuación.

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 Envío de correos electrónicos usando JavaMailSender

A continuación, podemos escribir código para enviar correos electrónicos. El núcleo de Spring Email para enviar correos electrónicos es JavaMailSender. Enviamos correos electrónicos llamando a esta interfaz. Aquí escribimos una clase de herramienta y luego encapsulamos todo el proceso lógico de envío de correos electrónicos, que se puede usar 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 Prueba sencilla

Una vez completada la configuración, podemos escribir una clase de prueba para comprobar si podemos enviar correos electrónicos.

@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);
    }


}

inserte la descripción de la imagen aquí

3. Motor de plantillas

3.1 Envío de correos electrónicos HTML con Thymeleaf

Finalmente, echemos un vistazo a cómo usar el motor de plantillas de Thymeleaf para enviar correos electrónicos con formato HTML, de modo que los correos electrónicos puedan contener un contenido más rico.

  • Primero, escribimos una plantilla de correo electrónico simpledemo.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>
  • Luego escribe un método de prueba también
@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);
    }


}

Salida de la consola:

inserte la descripción de la imagen aquí

Página de correo electrónico enviado con éxito

inserte la descripción de la imagen aquí

En general, enviar correos electrónicos es una técnica relativamente simple. ¡Pero ella no lo es! ! !

Supongo que te gusta

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