JavaMail发送配置测试代码

简述

单体项目,集成spring-boot-starter-webspring-boot-starter-mail.用于测试邮件配置

pom.xml

<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 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mail</groupId>
  <artifactId>mail-sender</artifactId>
  <version>1.0-SNAPSHOT</version>

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.14</version>
  </parent>

  <properties>
    <java.version>1.8</java.version>
    <version.assembly.plugin>3.3.0</version.assembly.plugin>
    <version.jar.plugin>3.2.0</version.jar.plugin>
    <version.dependency.plugin>2.7</version.dependency.plugin>
    <version.deploy.plugin>2.8.2</version.deploy.plugin>
  </properties>

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

  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
          <!--主入口-->
          <mainClass>com.mail.sender.SendApplication</mainClass>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

TestController.java

package com.mail.sender.controller;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.UnsupportedEncodingException;

@RestController
@RequestMapping("/test")
public class TestController {

    @Autowired
    JavaMailSender javaMailSender;

    @Value("${app.sender}")
    private String from;


    @Value("${app.mailto}")
    private String mailto;

    @GetMapping("/send")
    public String test() throws MessagingException, UnsupportedEncodingException    {

        // 创建一个邮件消息
        MimeMessage message = javaMailSender.createMimeMessage();

        // 创建 MimeMessageHelper
        MimeMessageHelper helper = new MimeMessageHelper(message, false);

        // 发件人邮箱和名称
        helper.setFrom(from);
        // 收件人邮箱
        helper.setTo(mailto);
        // 邮件标题
        helper.setSubject("Hello");
        // 邮件正文,第二个参数表示是否是HTML正文
        helper.setText("Hello <strong> World</strong>!", true);

        // 发送
        javaMailSender.send(message);
        return "success";
    }
}

SendApplication.java

package com.mail.sender;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
@ComponentScan(basePackages = {"com.mail.sender"})
public class SendApplication {
    public static void main(String[] args) {
        SpringApplication.run(SendApplication.class, args);
    }
}

配置文件

application.yml

app:
  sender: userxxx@example.com
  mailto: mailtoxxx@example.com
spring:
  application:
    name: mail-sender

  mail:
    # 指定邮件服务器地址
    host: xx.xx.xx.xx
    # 登录账户 (邮箱地址或用户名,视具体要求修改 )
    username: userxxx
    # 登录密码
    password: passwordxxxxx
    # 端口
    port: 25
    # 默认编码
    default-encoding: UTF-8
    # 使用的协议
    protocol: smtp
    # 其他的属性
    properties:
      mail:
        debug: true
        smtp:
          auth: true
          auth.mechanisms: NTLM  #NLTM支持
          auth.ntlm.domain: xxx.com
          startttls:
            enable: false
logging:
  config: classpath:mail-sender-logback-spring.xml
  file:
    path: ./logs

server:
  port: 8801

logback配置

mail-sender-logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    <springProperty scope="context" name="logFile" source="logging.file.name" defaultValue="mail-sender"/>
    <springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="./logs" />
    <springProperty scope="context" name="logLevel" source="logging.levels" defaultValue="info" />
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>

    <appender name="fileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${logPath}/${logFile}.log</file>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } --- [%17.17t] %-40.40logger{39} %-4L: %m%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${logPath}/${logFile}.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
            <maxFileSize>100MB</maxFileSize>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
    </appender>

    <appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${logPath}/${logFile}-error.log</file>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } --- [%17.17t] %-40.40logger{39} %-4L: %m%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${logPath}/${logFile}-error.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
            <maxFileSize>100MB</maxFileSize>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
    </appender>

    <root level="${logLevel}">
        <appender-ref ref="errorAppender"/>
        <appender-ref ref="fileAppender"/>
        <appender-ref ref="CONSOLE"/>

    </root>

    <logger name="org.hibernate.SQL" level="INFO"/>
    <logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="INFO"/>
    <logger name="org.springframework.web" level="INFO"/>
    <logger name="org.springframework.data" level="INFO"/>

</configuration>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值