首页技术栈归档照片墙音乐日记随想收藏夹友链留言关于

邮件任务

写作时间:2026-07-08

邮件任务

简单邮件

导入邮件依赖

       <!--导入邮件依赖-->
       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

application.properties

spring.mail.username=2121007706@qq.com
#你的qq授权码 在设置账户开启服务:
#POP3/SMTP服务 (如何使用 Foxmail 等软件收发邮件?)设为启用即可
spring.mail.password=你的qq授权码 
spring.mail.host=smtp.qq.com
#开启加密验证
spring.mail.properties.mail.smtp.ssl.enable=true

在测试类进行测试

package com.yuan;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import java.io.File;
import java.util.logging.Filter;

@SpringBootTest
class DemoApplicationTests {
    @Autowired
    JavaMailSenderImpl javaMailSender;
    @Test
    void contextLoads() {
        //一个简单的邮件
        SimpleMailMessage message=new SimpleMailMessage();
        message.setSubject("邮件标题");
        message.setText("邮件内容");
        message.setTo("2121007706@qq.com");//发件人
        message.setFrom("2121007706@qq.com");//收件人
        javaMailSender.send(message);//开始发送邮件

    }
    @Test
    void contextLoads2() throws MessagingException {
        //一个复杂的邮件
        MimeMessage message = javaMailSender.createMimeMessage();
        //组装
        MimeMessageHelper helper = new MimeMessageHelper(message, true);
        //正文
        helper.setSubject("标题");
        helper.setText("<p style='color:red'>内容</p>",true);
        //附件
        helper.addAttachment("aa.jpg",new File("D:\\__MACOSX\\高清大图\\aa.jpg"));

        helper.setTo("2121007706@qq.com");
        helper.setFrom("2121007706@qq.com");

        javaMailSender.send(message);

    }
}

Spring boot定时发送邮件

导入依赖

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

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

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
        </dependency>

        <!-- httpclient 依赖 -->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.12</version>
        </dependency>


        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>
    </dependencies>

    <!--打包插件-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                </configuration>
            </plugin>
        </plugins>
    </build>

scheduled包下的MyScheduled类

package com.any.scheduled;

import com.any.pojo.Miss;
import com.any.send.SendMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.sql.Time;
import java.util.Date;

/**
 * 功能描述: 定时任务执行
 *
 * @param:
 * @return:
 */
@Component
public class MyScheduled {

    @Autowired
    private SendMessage sendMessage;

    /*每天下午5:20执行此方法*/
    @Scheduled(cron ="0 20 17 * * *")
    public void dsrw(){
        String message = sendMessage.getOneS();
        sendMessage.sendMessage("来自Sometimes的消息!❤",message);
        System.out.println(new Date().toLocaleString() +" 发送消息:" + message);
    }
}

send包下的SendMessage

package com.any.send;

import com.any.pojo.Miss;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
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.stereotype.Component;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.IOException;


/**
 * @describe
 * @author: AnyWhere
 */
@Component
public class SendMessage {
    @Autowired
    private JavaMailSender mailSender;
    @Value("${spring.mail.username}")
    private String from;
    @Value("${she.mail}")
    private String[] sheMail;
    public void sendMessage(String subject,String message) {

        try {
            MimeMessage mimeMessage = mailSender.createMimeMessage();
            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage);
            helper.setFrom(from);
            helper.setTo(sheMail);
            helper.setSubject(subject);
            helper.setText(message);
            mailSender.send(helper.getMimeMessage());
        } catch (MessagingException e) {
            e.printStackTrace();
        }

    }
    public void sendHtmlMessage(String subject,String message){
        try {
            MimeMessage mimeMessage = mailSender.createMimeMessage();
            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage);
            helper.setFrom(from);
            helper.setTo(sheMail);
            helper.setSubject(subject);
            helper.setText(message,true);//true 使用html 方式发送
            mailSender.send(helper.getMimeMessage());
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }

    public static String getOneS(){
        try {
            //创建客户端对象
            HttpClient client = HttpClients.createDefault();
            /*创建地址 https://du.shadiao.app/api.php*/
            HttpGet get = new HttpGet("https://chp.shadiao.app/api.php");
            //发起请求,接收响应对象
            HttpResponse response = client.execute(get);
            //获取响应体,响应数据是一种基于HTTP协议标准字符串的对象
            //响应体和响应头,都是封装HTTP协议数据。直接使用可能出现乱码或解析错误
            HttpEntity entity = response.getEntity();
            //通过HTTP实体工具类,转换响应体数据
            String responseString = EntityUtils.toString(entity, "utf-8");
            return responseString;
        } catch (IOException e) {
            throw  new RuntimeException("网站获取句子失败");
        }
    }
}

启动类

/**
 * @describe
 * @author: AnyWhere
 */
@EnableScheduling
@SpringBootApplication
public class BiaoBaiApp {
    public static void main(String[] args) {
        SpringApplication.run(BiaoBaiApp.class,args);
    }
}

application.yml

spring:
  mail:
    username: xxxxxx@qq.com  # 邮箱地址
    password: xxxxxxxxxxx    # SMTP|POP3|IMAP协议授权码
    host: smtp.qq.com        # 服务器地址。参考邮箱服务运营商提供的信息。
    properties:
      mail:
        smtp:
          auth: true         # 开启smtp协议验证
    port: 587
# 发给谁的邮箱
she:
  mail: XXXXXXX@qq.com

TestSendMessage测试类

// import com.any.BiaoBaiApp;
// import com.any.pojo.Miss;
// import com.any.send.SendMessage;
// import com.fasterxml.jackson.core.JsonParser;
// import com.fasterxml.jackson.databind.ObjectMapper;
// import com.jayway.jsonpath.spi.mapper.JacksonMappingProvider;
// import net.minidev.json.writer.BeansMapper;
// import org.apache.http.HttpEntity;
// import org.apache.http.HttpResponse;
// import org.apache.http.client.HttpClient;
// import org.apache.http.client.methods.HttpGet;
// import org.apache.http.impl.client.HttpClients;
// import org.apache.http.util.EntityUtils;
// import org.json.JSONException;
// import org.json.JSONObject;
// import org.junit.Test;
// import org.junit.runner.RunWith;
// import org.springframework.beans.factory.annotation.Autowired;
// import org.springframework.boot.json.JacksonJsonParser;
// import org.springframework.boot.test.context.SpringBootTest;
// import org.springframework.test.context.junit4.SpringRunner;


// import java.io.IOException;
// import java.sql.Time;
// import java.util.Date;


/**
 * @describe 测试代码可用性
 * @author: AnyWhere
 * @date 2020/12/15 12:21
 */

// @SpringBootTest(classes = {BiaoBaiApp.class})
// @RunWith(SpringRunner.class)
// public class TestSendMessage {

//     @Autowired
//     private SendMessage sendMessage;

//     @Test
//     public void Test() {
//         String oneS = sendMessage.getOneS();
//         System.out.println(oneS);
//         System.out.println(new Date().toLocaleString() + " 发送消息:" + oneS);
//         sendMessage.sendMessage("来自Sometimes的消息!❤", oneS);
//     }



//     @Test
//     public void test2() {
//         try {
//             //创建客户端对象
//             HttpClient client = HttpClients.createDefault();
//             //创建地址    https://chp.shadiao.app/api.php
//             HttpGet get = new HttpGet("http://open.iciba.com/dsapi/");
//             //发起请求,接收响应对象
//             HttpResponse response = client.execute(get);
//             //获取响应体,响应数据是一种基于HTTP协议标准字符串的对象
//             //响应体和响应头,都是封装HTTP协议数据。直接使用可能出现乱码或解析错误
//             HttpEntity entity = response.getEntity();
//             //通过HTTP实体工具类,转换响应体数据
//             String string = EntityUtils.toString(entity, "utf-8");
//             ObjectMapper mapper = new ObjectMapper();
//             // json字符串转换为java对象
//             Miss miss = mapper.readValue(string, Miss.class);
//             System.out.println(miss.getContent() + "\n\n" + miss.getNote());
//             System.out.println(miss.toString());
//         } catch (IOException e) {
//             e.printStackTrace();
//         }
//     }
// }

avatar

yuanyourdomain

写代码,做研究,记录生活。

RECOMMENDED

MyBatis 动态 SQL

2026-07-08

Nginx 基础入门

2026-07-08

Maven 多模块与私服

2026-07-08