零基础,使用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);
    }
}

运行代码后看邮箱

相关推荐
子兮曰3 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
小羊没烦恼!3 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
子兮曰3 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
俊昭喜喜里3 天前
java中的继承和多态的区别
java
小羊没烦恼!3 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
前端小万3 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝3 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
譕痕3 天前
JSONObject与JSONArray封装数据格式区别
java·json
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
胡写代码3 天前
别再前后端各写一套表单校验了
java·后端