设为首页收藏本站
网站公告 | 这是第一条公告
     

 找回密码
 立即注册
缓存时间15 现在时间15 缓存数据 哪怕他只唱了几句,哪怕别人不仔细听都听不到他的声音,他还是要固执的在自己的名字后面写上他的名字,从他们两个名字写在一起的第一天起,就注定了一辈子不会分开[爱心]

哪怕他只唱了几句,哪怕别人不仔细听都听不到他的声音,他还是要固执的在自己的名字后面写上他的名字,从他们两个名字写在一起的第一天起,就注定了一辈子不会分开[爱心] -- 怎么了,没什么

查看: 894|回复: 3

使用JAVA实现邮件发送功能的图文教程

[复制链接]

  离线 

TA的专栏

  • 打卡等级:热心大叔
  • 打卡总天数:205
  • 打卡月天数:0
  • 打卡总奖励:3134
  • 最近打卡:2023-08-27 08:03:57
等级头衔

等級:晓枫资讯-上等兵

在线时间
0 小时

积分成就
威望
0
贡献
405
主题
373
精华
0
金钱
4319
积分
810
注册时间
2022-12-24
最后登录
2025-5-31

发表于 2023-2-17 12:54:27 | 显示全部楼层 |阅读模式
一、准备工作

小编今天以 QQ邮箱 进行演示操作。
想要使用代码操作邮箱发送邮件,需要在邮箱设置中申请开通 POP3/SMTP 服务。
接下来跟着小编的图文一步一步的操作开通吧!

1.1 登录网页QQ邮箱,点击页面顶部设置按钮。

135523ld5i00sd4tfth4d6.png


1.2 点击后会打开邮箱设置页面,如下所示,点击第二栏账户。

135523ytqtafgtgdgoefud.jpeg


1.3 点击后往下拉,直到有如下页面选项。

135523lvmtec2crndk5kbc.jpeg

选择POP3/SMTP服务,点击后面的开启,此时会让你使用绑定邮箱的手机号发送短信。
135524xmlqalaly4hfzgqb.png

发送完成后点击 我已发送 按钮,进行验证。

1.4 验证完成后会显示授权码(复制下来,一会要用)

135524l69uxe31i37kbrav.jpeg

到此,准备工作已完成!

二、项目中配置邮件发送功能


2.1 引入发送邮件相关依赖
  1. <!--邮件发送依赖-->
  2. <dependency>
  3.            <groupId>org.springframework.boot</groupId>
  4.            <artifactId>spring-boot-starter-mail</artifactId>
  5. </dependency>
复制代码
引入后,更新maven,下载相关依赖
135524z7tskdefx4fxgzxp.png


2.2 在application.yml文件中添加邮件基本配置
  1. spring:
  2.   # 发送邮件配置
  3.   mail:
  4.     host: smtp.qq.com # 配置 smtp 服务器地址
  5.     port: 587 # smtp 服务器的端口
  6.     username: 1354720889@qq.com # 配置邮箱用户名(你的邮箱地址)
  7.     password: batrgddaqykegfss # 配置申请到的授权码(刚让复制的授权码)
  8.     default-encoding: UTF-8 # 配置邮件编码
  9.     properties:
  10.       mail:
  11.         smtp:
  12.           socketFactoryClass: javax.net.ssl.SSLSocketFactory # 配饰 SSL 加密工厂
  13.         debug: true
  14.     from: 1354720889@qq.com # 发送方邮件,陪在yml中可方便更改
复制代码
2.3 为了方便使用,新建一个操作email的工具类(EmailUtil.java)

封装邮件工具类是为了方便后续调用操作。
  1. package com.clover.utils;

  2. import org.springframework.beans.factory.annotation.Autowired;
  3. import org.springframework.beans.factory.annotation.Value;
  4. import org.springframework.mail.SimpleMailMessage;
  5. import org.springframework.mail.javamail.JavaMailSender;
  6. import org.springframework.mail.javamail.MimeMessageHelper;
  7. import org.springframework.stereotype.Component;

  8. import javax.mail.Message;
  9. import javax.mail.MessagingException;
  10. import javax.mail.internet.MimeMessage;
  11. import java.io.File;

  12. /**
  13. * @ClassName EmailUtil
  14. * @Description 邮件发送工具
  15. * @Author Sophia
  16. * @Date 2022/4/6 16:06
  17. */
  18. @Component
  19. public class EmailUtil {

  20.     @Value("${spring.mail.from}") // 从application.yml配置文件中获取
  21.     private String from; // 发送发邮箱地址

  22.     @Autowired
  23.     private JavaMailSender mailSender;

  24.     /**
  25.      * 发送纯文本邮件信息
  26.      *
  27.      * @param to      接收方
  28.      * @param subject 邮件主题
  29.      * @param content 邮件内容(发送内容)
  30.      */
  31.     public void sendMessage(String to, String subject, String content) {
  32.         // 创建一个邮件对象
  33.         SimpleMailMessage msg = new SimpleMailMessage();
  34.         msg.setFrom(from); // 设置发送发
  35.         msg.setTo(to); // 设置接收方
  36.         msg.setSubject(subject); // 设置邮件主题
  37.         msg.setText(content); // 设置邮件内容
  38.         // 发送邮件
  39.         mailSender.send(msg);
  40.     }

  41.     /**
  42.      * 发送带附件的邮件信息
  43.      *
  44.      * @param to      接收方
  45.      * @param subject 邮件主题
  46.      * @param content 邮件内容(发送内容)
  47.      * @param files 文件数组 // 可发送多个附件
  48.      */
  49.     public void sendMessageCarryFiles(String to, String subject, String content, File[] files) {
  50.         MimeMessage mimeMessage = mailSender.createMimeMessage();
  51.         try {
  52.             MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
  53.             helper.setFrom(from); // 设置发送发
  54.             helper.setTo(to); // 设置接收方
  55.             helper.setSubject(subject); // 设置邮件主题
  56.             helper.setText(content); // 设置邮件内容
  57.             if (files != null && files.length > 0) { // 添加附件(多个)
  58.                 for (File file : files) {
  59.                     helper.addAttachment(file.getName(), file);
  60.                 }
  61.             }
  62.         } catch (MessagingException e) {
  63.             e.printStackTrace();
  64.         }
  65.         // 发送邮件
  66.         mailSender.send(mimeMessage);
  67.     }
  68. /**
  69.      * 发送带附件的邮件信息
  70.      *
  71.      * @param to      接收方
  72.      * @param subject 邮件主题
  73.      * @param content 邮件内容(发送内容)
  74.      * @param file 单个文件
  75.      */
  76.     public void sendMessageCarryFile(String to, String subject, String content, File file) {
  77.         MimeMessage mimeMessage = mailSender.createMimeMessage();
  78.         try {
  79.             MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
  80.             helper.setFrom(from); // 设置发送发
  81.             helper.setTo(to); // 设置接收方
  82.             helper.setSubject(subject); // 设置邮件主题
  83.             helper.setText(content); // 设置邮件内容
  84.             helper.addAttachment(file.getName(), file); // 单个附件
  85.         } catch (MessagingException e) {
  86.             e.printStackTrace();
  87.         }
  88.         // 发送邮件
  89.         mailSender.send(mimeMessage);
  90.     }

  91.     public String getFrom() {
  92.         return from;
  93.     }

  94.     public void setFrom(String from) {
  95.         this.from = from;
  96.     }
  97. }
复制代码
2.4 测试邮件发送功能

我使用的SpringBoot项目,因此我在测试类中进行测试。
测试类代码:
  1. package com.clover.api.blogapi;

  2. import com.clover.utils.EmailUtil;
  3. import org.junit.jupiter.api.Test;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.boot.test.context.SpringBootTest;

  6. import java.io.File;

  7. @SpringBootTest
  8. class BlogApiApplicationTests {
  9.     @Autowired
  10.     private EmailUtil emailUtil;

  11.     @Test
  12.     void contextLoads() {
  13.     }

  14.     @Test
  15.     void sendStringEmail() {
  16.         // 测试文本邮件发送(无附件)
  17.         String to = "1354720990@qq.com";
  18.         String title = "文本邮件发送测试";
  19.         String content = "文本邮件发送测试";
  20.         emailUtil.sendMessage(to, title, content);
  21.     }

  22.     @Test
  23.     void sendFileEmail() {
  24.         // 测试单个附件邮件发送
  25.         String to = "1354720990@qq.com";
  26.         String title = "单个附件邮件发送测试";
  27.         String content = "单个附件邮件发送测试";
  28.         File file = new File("D:\\GCH\\Typora\\Linux中常用的查看系统相关信息命令.md");
  29.         emailUtil.sendMessageCarryFile(to, title, content, file);
  30.     }
  31.    
  32.     @Test
  33.     void sendFilesEmail() {
  34.         // 测试多个附件邮件发送
  35.         String to = "1354720990@qq.com";
  36.         String title = "多个附件邮件发送测试";
  37.         String content = "多个附件邮件发送测试";
  38.         File[] files = new File[2];
  39.         files[0] = new File("C:\\Users\\root\\Desktop\\配置邮箱\\1.png");
  40.         files[1] = new File("C:\\Users\\root\\Desktop\\配置邮箱\\2.png");
  41.         emailUtil.sendMessageCarryFile(to, title, content, files);
  42.     }
  43. }
复制代码
2.5 测试结果

邮箱已收到
135524vik7bqx4745en5nd.png


2.5.1 文本邮件发送

135525tiz6u46wog6y2iog.png


2.5.2 单个附件邮件发送

135525wmrsxwqxjipmmrep.png


2.5.3 多个附件邮件发送

135525g1l4zs12q102hls2.png

到此,使用Java发送邮件功能就结束了,伙伴们可以根据自己的需求进行封装使用。

总结

到此这篇关于使用JAVA实现邮件发送功能的文章就介绍到这了,更多相关JAVA邮件发送功能内容请搜索晓枫资讯以前的文章或继续浏览下面的相关文章希望大家以后多多支持晓枫资讯!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
晓枫资讯-科技资讯社区-免责声明
免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
      1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
      2、管理员及版主有权在不事先通知或不经作者准许的情况下删除其在本社区所发表的文章。
      3、本社区的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,举报反馈:点击这里给我发消息进行删除处理。
      4、本社区一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
      5、以上声明内容的最终解释权归《晓枫资讯-科技资讯社区》所有。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
12
积分
4
注册时间
2023-11-20
最后登录
2023-11-20

发表于 2024-10-26 21:29:26 | 显示全部楼层
顶顶更健康!!!
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
11
积分
2
注册时间
2024-9-15
最后登录
2024-9-15

发表于 2024-12-3 15:20:07 | 显示全部楼层
路过,支持一下
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
17
积分
14
注册时间
2022-12-25
最后登录
2022-12-25

发表于 昨天 03:22 | 显示全部楼层
感谢楼主分享。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~
严禁发布广告,淫秽、色情、赌博、暴力、凶杀、恐怖、间谍及其他违反国家法律法规的内容。!晓枫资讯-社区
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1楼
2楼
3楼
4楼

手机版|晓枫资讯--科技资讯社区 本站已运行

CopyRight © 2022-2025 晓枫资讯--科技资讯社区 ( BBS.yzwlo.com ) . All Rights Reserved .

晓枫资讯--科技资讯社区

本站内容由用户自主分享和转载自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

如有侵权、违反国家法律政策行为,请联系我们,我们会第一时间及时清除和处理! 举报反馈邮箱:点击这里给我发消息

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表