Springboot envía correo electrónico (formato texto / html) correo

Springboot + swagger enviar correo electrónico (formato de texto y formato html) correo

Aquí estoy usando el buzón 126. Se puede decir que soy un usuario leal de 126. El buzón que solicité en 2006. Lo he estado usando ahora.¡Gracias NetEase, gracias 126!
Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

1. Encienda el servicio y obtenga la contraseña de autorización

Configuración ==> Habilitar ==> Seleccionar para enviar verificación por SMS ==> Generar código de autorización
Obtenga la contraseña de autorización del buzón

2. Estructura de directorio

Inserte la descripción de la imagen aquí

config: Coloque la clase de configuración de swagger
controlador: entrada de programa

3. Introducir la dependencia de pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.email</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- lombok *********************  Begin -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <!-- lombok *********************  End -->

        <!-- swagger *********************  Begin -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
        <!-- swagger *********************  End -->

        <!-- email *********************  Begin -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
        <!-- email *********************  End -->

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

4. Configure el archivo de propiedades

Configure los parámetros para enviar correo aquí e inyecte la instancia de JavaMailSender por sí mismo

server.port=2080

# SMTP服务器
spring.mail.host=smtp.126.com
# 邮箱账号
spring.mail.username=zjylove2006@126.com
# 授权密码,并非邮箱密码
spring.mail.password=刚才生成的授权码
# 邮箱协议类型
spring.mail.protocol=smtp
spring.mail.default-encoding=UTF-8

5.SwaggerConfig

package com.email.demo.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    
    

    @Bean
    public Docket createRestApi() {
    
    
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .pathMapping("/")
                .select()
                .apis(RequestHandlerSelectors.any())
                .apis(RequestHandlerSelectors.basePackage("com.email.demo.controller"))
                .build();
    }

    private ApiInfo apiInfo() {
    
    
        return new ApiInfoBuilder()
                .title("springboot利用swagger构建api文档")
                .description("swagger接口文档")
                .version("1.0")
                .build();
    }
}

6.EmailController

package com.email.demo.controller;

import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.mail.internet.MimeMessage;
import java.text.SimpleDateFormat;
import java.util.Date;

@Api(value = "发送邮件", tags = {
    
    "发送邮件"})
@Slf4j
@Validated
@RestController
@RequestMapping("/email")
public class EmailController {
    
    

    @Autowired
    private JavaMailSender javaMailSender;

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

    @PostMapping("/send")
    public String send(@RequestBody SimpleMailMessage message){
    
    

        SimpleDateFormat format =  new SimpleDateFormat("yyyy-MM-dd HH:mm");
        String time = format.format(new Date());

        message.setFrom(from);
        javaMailSender.send(message);
        log.info("发送人为:{}, 收件人为:{}, 发送标题为:{}, 发送内容为:{}, 发送时间为:{}",
                from,
                message.getTo(),
                message.getSubject(),
                message.getText(),
                time);

        return "发送成功!!!";
    }

    /**
     * 发送html格式
     * @return
     */
    @PostMapping("/sendHtml")
    public String sendHtml() throws Exception{
    
    

        SimpleDateFormat format =  new SimpleDateFormat("yyyy-MM-dd HH:mm");
        String time = format.format(new Date());

        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage);
        messageHelper.setSubject("日志");
        messageHelper.setFrom(from);
        messageHelper.setTo("[email protected]");
        messageHelper.setText("<a href=\"https://blog.csdn.net/dayonglove2018/article/details/106784064\">老周的博客</a>", true);
        javaMailSender.send(messageHelper.getMimeMessage());

        log.info("发送人为:{}, 收件人为:{}, 发送标题为:{}, 发送内容为:{}, 发送时间为:{}",
                from, "[email protected]", "日志", messageHelper.getMimeMessage(),
                time);

        return "发送成功!!!";
    }

}

7. Prueba

1. Inicie el programa y acceda a la interfaz swagger:

http: // localhost: 2080 / swagger-ui.html #

2. Ingrese los parámetros de prueba:

{
    
    
  "subject": "日志",
  "text": "springboot + mybatis-plus整合quartz实现定时任务(超详细,附带sql)",
  "to": "[email protected]"
}

3. Resultados de la prueba

1. Prueba el envío de mensajes de texto

Swagger devuelve el resultado: la
Inserte la descripción de la imagen aquí
consola en segundo plano imprime el resultado: el
Inserte la descripción de la imagen aquí
correo electrónico también se ha recibido: la
Inserte la descripción de la imagen aquí
prueba está bien

2. Prueba el envío de correo html

Swagger devuelve el resultado: la
Inserte la descripción de la imagen aquí
consola devuelve el resultado: el
Inserte la descripción de la imagen aquí
correo electrónico recibido es: ¡la
Inserte la descripción de la imagen aquí
prueba está bien! ¡
Bienvenido a los grandes para que dejen un comentario y aprendan juntos! ¡¡¡Gracias !!!

===========================
Artículo original, reimpreso con la fuente.

Supongo que te gusta

Origin blog.csdn.net/dayonglove2018/article/details/106784064
Recomendado
Clasificación