java如何实现发送邮件,java收发邮件
00-1010一、准备工作1.1登录网页的QQ邮箱,点击页面顶部的设置按钮。1.2点击后,会打开邮件设置页面,如下图所示。单击第二列中的帐户。1.3单击并下拉,直到以下页面选项可用。1.4验证后会显示授权码(复制后使用)。2.在项目中配置邮件发送功能。2.1介绍发送邮件的依赖性。2.2在application.yml文件中添加邮件的基本配置。2.3为了方便,新建一个操作邮件的工具类(EmailUtil.java)。2.4测试邮件发送功能。2.5测试结果。2.5.1文本邮件发送。5.2单附件邮件发送。2.5.
今天00-10点10分QQ邮箱的边肖示威游行。
如果您想使用该代码操作邮箱发送邮件,您需要在邮箱设置中申请开通POP3/SMTP服务。
接下来按照边肖图文的一步一步操作打开它!
目录
一、准备工作
1.1 登录网页QQ邮箱,点击页面顶部设置按钮。
选择POP3/SMTP服务,点击后面的打开。此时,您将被允许使用与您的邮箱绑定的手机号码发送短信。
发送后,单击“我已发送”按钮进行验证。
1.2 点击后会打开邮箱设置页面,如下所示,点击第二栏账户。
在这里,准备工作已经完成!
1.3 点击后往下拉,直到有如下页面选项。
1.4 验证完成后会显示授权码(复制下来,一会要用)
!-发送邮件的依赖-依赖引入groupIdorg.springframework.boot/groupId artifact spring-Boot-Starter-Mail/artifact id/Dependency后,更新maven,下载相关依赖。
二、项目中配置邮件发送功能
spring: #发送邮件配置mail 3360 host 3360 smtp.qq.com #配置smtp服务器地址端口: 587 # smtp服务器端口用户名3360 1354720889@qq.com #配置电子邮件用户名(您的电子邮件地址)密码: batrgddaqykegfss #配置请求的授权码(刚刚复制的授权码)默认-编码: UTF-8 #配置邮件代码属性: Mail3360 SMTP 3360
00-1010封装邮件工具类,方便后续调用操作。
包com . clover . utils;导入org . spring framework . beans . factory . annotation . auto wired;导入org . spring framework . beans . factory . annotation . value;导入org . spring framework . mail . simple mail message;导入org . spring framework . mail . javamail . javamail sender;导入org . spring framework . mail . javamail . mime message helper;导入org.spr
ingframework.stereotype.Component;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.internet.MimeMessage;import java.io.File;/** * @ClassName EmailUtil * @Description 邮件发送工具 * @Author Sophia * @Date 2022/4/6 16:06 */@Componentpublic class EmailUtil { @Value("${spring.mail.from}") // 从application.yml配置文件中获取 private String from; // 发送发邮箱地址 @Autowired private JavaMailSender mailSender; /** * 发送纯文本邮件信息 * * @param to 接收方 * @param subject 邮件主题 * @param content 邮件内容(发送内容) */ public void sendMessage(String to, String subject, String content) { // 创建一个邮件对象 SimpleMailMessage msg = new SimpleMailMessage(); msg.setFrom(from); // 设置发送发 msg.setTo(to); // 设置接收方 msg.setSubject(subject); // 设置邮件主题 msg.setText(content); // 设置邮件内容 // 发送邮件 mailSender.send(msg); } /** * 发送带附件的邮件信息 * * @param to 接收方 * @param subject 邮件主题 * @param content 邮件内容(发送内容) * @param files 文件数组 // 可发送多个附件 */ public void sendMessageCarryFiles(String to, String subject, String content, File[] files) { MimeMessage mimeMessage = mailSender.createMimeMessage(); try { MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true); helper.setFrom(from); // 设置发送发 helper.setTo(to); // 设置接收方 helper.setSubject(subject); // 设置邮件主题 helper.setText(content); // 设置邮件内容 if (files != null && files.length > 0) { // 添加附件(多个) for (File file : files) { helper.addAttachment(file.getName(), file); } } } catch (MessagingException e) { e.printStackTrace(); } // 发送邮件 mailSender.send(mimeMessage); }/** * 发送带附件的邮件信息 * * @param to 接收方 * @param subject 邮件主题 * @param content 邮件内容(发送内容) * @param file 单个文件 */ public void sendMessageCarryFile(String to, String subject, String content, File file) { MimeMessage mimeMessage = mailSender.createMimeMessage(); try { MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true); helper.setFrom(from); // 设置发送发 helper.setTo(to); // 设置接收方 helper.setSubject(subject); // 设置邮件主题 helper.setText(content); // 设置邮件内容 helper.addAttachment(file.getName(), file); // 单个附件 } catch (MessagingException e) { e.printStackTrace(); } // 发送邮件 mailSender.send(mimeMessage); } public String getFrom() { return from; } public void setFrom(String from) { this.from = from; }}
2.4 测试邮件发送功能
我使用的SpringBoot项目,因此我在测试类中进行测试。
测试类代码:
package com.clover.api.blogapi;import com.clover.utils.EmailUtil;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import java.io.File;@SpringBootTestclass BlogApiApplicationTests { @Autowired private EmailUtil emailUtil; @Test void contextLoads() { } @Test void sendStringEmail() { // 测试文本邮件发送(无附件) String to = "1354720990@qq.com"; String title = "文本邮件发送测试"; String content = "文本邮件发送测试"; emailUtil.sendMessage(to, title, content); } @Test void sendFileEmail() { // 测试单个附件邮件发送 String to = "1354720990@qq.com"; String title = "单个附件邮件发送测试"; String content = "单个附件邮件发送测试"; File file = new File("D:\GCH\Typora\Linux中常用的查看系统相关信息命令.md"); emailUtil.sendMessageCarryFile(to, title, content, file); } @Test void sendFilesEmail() { // 测试多个附件邮件发送 String to = "1354720990@qq.com"; String title = "多个附件邮件发送测试"; String content = "多个附件邮件发送测试"; File[] files = new File[2]; files[0] = new File("C:\Users\root\Desktop\配置邮箱\1.png"); files[1] = new File("C:\Users\root\Desktop\配置邮箱\2.png"); emailUtil.sendMessageCarryFile(to, title, content, files); }}
2.5 测试结果
邮箱已收到
2.5.1 文本邮件发送
2.5.2 单个附件邮件发送
2.5.3 多个附件邮件发送
到此,使用Java发送邮件功能就结束了,伙伴们可以根据自己的需求进行封装使用。
总结
到此这篇关于使用JAVA实现邮件发送功能的文章就介绍到这了,更多相关JAVA邮件发送功能内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。