零基础,使用Idea工具写一个邮件报警程序

打开idea,创建一个project

打开文件目录下的pom.xml文件,添加下面的内容安装依赖,等待下载完成

html 复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

打开src->main->resources->application.properties配置文件

添加邮箱账号、密码(这里使用的是qq邮箱的授权码)

java 复制代码
spring.application.name=my-email-app
spring.mail.host=smtp.qq.com  //指定邮箱的SMTP服务器地址
spring.mail.port=587  //SMTP服务端口号
 #邮箱账号
spring.mail.properties.mail.smtp.auth=true  //启用SMTP身份验证(必须为true才能发送邮件)
spring.mail.properties.mail.smtp.starttls.enable=true  //启用STARTTLS加密(确保邮件传输安全)
spring.mail.username=25xxxxxxx@qq.com  //发件人邮箱
spring.mail.password=klptaxfztbtxxxx  //邮箱授权码
spring.mail.default-encoding=utf-8  //防止中文乱码

授权码在登录qq邮箱点击设置->账号->开启服务

在src->main->项目文件里面添加一个service包

添加一个SendMail.java文件

java 复制代码
package com.qst.springbootjava4.service;
import jakarta.mail.MessagingException;  // 添加这行
import jakarta.mail.internet.MimeMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.MailException;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
// 其他已有导入...
import java.io.File;

@ComponentScan
@Service
public class SendMail {
    @Autowired
    private JavaMailSenderImpl mailSender;
    @Value("${spring.mail.username}")
    private String from;
  public void sendSimpleEmail(String to,String subject,String text){
      //定制纯文本邮件信息对象
      SimpleMailMessage message=new SimpleMailMessage();
      message.setFrom(from);
      message.setTo(to);
      message.setSubject(subject);
      message.setText(text);
      //发送邮件
      mailSender.send(message);
      try{
          mailSender.send(message);
          System.out.print("成功");
      }catch (MailException e){
          System.out.print("失败");

      }
  }
  //复杂的邮件发送
  public void  sendCompexEmail(String to,String subject,String text,String filePath){
      //定制复杂邮件信息对象MimeMessage
      MimeMessage message= mailSender.createMimeMessage();
      //使用MimeMessageHelper帮助类,并设置multipart多部件使用为true
      try {
          MimeMessageHelper helper=new MimeMessageHelper(message,true);
          helper.setFrom(from);
          helper.setTo(to);
          helper.setSubject(subject);
          helper.setText(text);
          //设置邮件附件
          FileSystemResource file=new FileSystemResource(new File(filePath));
          String fileName=filePath.substring(filePath.lastIndexOf(File.separator));
          //发送邮件
          helper.addAttachment(fileName,file);
          mailSender.send(message);
      } catch (MessagingException e) {
          e.printStackTrace();
      }
  }

}

打开text文件添加

java 复制代码
package com.qst.springbootjava4;

import com.qst.springbootjava4.service.SendMail;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class Springbootjava4ApplicationTests {
    @Autowired
    private SendMail sendMail;  //自动注入邮件服务

    @Test
    public void testSendEmail() {
        String to = "251xxxxxxx5@qq.com";  //收件人邮件
        String subject = "验证邮件";  //邮件主题
        String text = "这是一封测试邮件,用于验证Spring Boot邮件发送功能。";  //邮件正文

        sendMail.sendSimpleEmail(to, subject, text);
    }
    @Test
    public void test02(){
        String to = "251xxxxxxx@qq.com";  //收件人
        String subject = "测试";  //主题
        String text="这是一个文件";  //正文
        String filePath="C:\\Users\\Administrator\\Desktop\\新建 DOC 文档.doc";  //附件路径
        sendMail.sendCompexEmail(to,subject,text,filePath);
    }
}

运行代码后看邮箱

相关推荐
trigger3333 分钟前
desk-health-web-community-post
前端
倒流时光三十年4 分钟前
Logback 系列(7):常用 Appender(控制台 / 文件 / 滚动文件)
java·前端·logback
极客先躯22 分钟前
高级java每日一道面试题-2026年04月18日-实战篇[Docker]-如何处理金融行业的时序数据容器化?
java·运维·docker·容器·金融·时序数据·高级面试
hdsoft_huge27 分钟前
SpringBoot系列18:SpringSecurity登录鉴权,JWT无状态Token认证完整流程(生产级落地)
java·spring boot·后端
Csvn30 分钟前
页面「穿越」之谜:React 中因 key 值不正确导致的渲染 Bug 排查实战
前端
浅水壁虎31 分钟前
前端技术_TypeScript(第一章)
前端
野蛮人6号36 分钟前
黑马天机学堂系列问题之选集8本地服务报错
java·spring cloud·黑马程序员·天机学堂·黑马天机学堂
L-影1 小时前
单体项目结构
java·开发语言
liulilittle1 小时前
论无知:分布式
服务器·网络·分布式·并发·通信·竞态
Web极客码1 小时前
MariaDB 将成为 cPanel 中的默认数据库
服务器·mariadb·cpanel