邮件发送
事先准备一个邮箱(最好不要使用QQ,以新浪为例)
-
申请一个邮箱
-
开启客户端授权(新浪为例)
开启时会给你的手机发送一个验证码然后给你一串密码提示此密码只给一次记好这个密码
-
打开IDE创建springboot项目(其他java项目也是可以)
-
导入相关依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> <version>2.3.0.RELEASE</version> </dependency>
-
编写发送邮件的相关配置
spring: mail: host: smtp.sina.com #客户端设置 port: 465 username: #自己邮箱的邮箱地址 password: #开启客户端smtp protocol: smtps properties:#开启加密 mail: smtp: ssl: enable: true
-
编写工具类(编写工具类方便调用)
@Component public class MailClient { @Autowired private JavaMailSender mailSender; @Value("${spring.mail.username}") private String from; /** * 邮件发送 * @param to 发送给谁 * @param subject 标题 * @param content 内容 (是否支持HTML标签) */ public void sendMail(String to,String subject,String content){ try { MimeMessage mimeMessage = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(mimeMessage); helper.setFrom(from); helper.setTo(to); helper.setSubject(subject); helper.setText(content,true); mailSender.send(helper.getMimeMessage()); }catch (Exception e){ System.err.println("邮件发送失败"+e.getMessage()); } } }
-
编写测试类测试是否成功
@Autowired private MailClient mailClient; @Test void emailTest(){ mailClient.sendMail("填写测试邮箱","测试邮件发送","发送成功"); System.out.println("成功"); }
-
运行结果
邮箱信息:
第二种方式:使用HuTool邮件工具MailUtil发送
HuTool简介:官方简介
-
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
-
Hutool中的工具方法来自于每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;
-
Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。
-
除了上述依赖,还需要引入HuTool依赖
<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency>
-
相关配置 注意官方要求必须吧这个配置放在src/main/resources下的config目录下命名为:mail.setting
#简单配置: # 发件人(必须正确,否则发送失败) from = hutool@yeah.net # 密码(注意,某些邮箱需要为SMTP服务单独设置密码,详情查看相关帮助) pass = q1w2e3
#Hutool可以提供完整的配置文件:
# 邮件服务器的SMTP地址,可选,默认为smtp.<发件人邮箱后缀>
host = smtp.yeah.net
# 邮件服务器的SMTP端口,可选,默认25
port = 25
# 发件人(必须正确,否则发送失败)
from = hutool@yeah.net
# 用户名,默认为发件人邮箱前缀
user = hutool
# 密码(注意,某些邮箱需要为SMTP服务单独设置授权码,详情查看相关帮助)
pass = q1w2e3
-
代码测试
MailUtil.send("67937807@qq.com","我是标题","我是内容",true); System.out.println("成功");
-
结果