java发送邮件,解决线上发送失败
【摘要】 基于hutool工具包解决发送邮件,线上发送邮件失败的问题
java发送邮件,线上发送邮件失败
📢📢📢📣📣📣
hello 这里是北梦程序员,现阶段主要分享后端技术
一名在校大学生,共同学习,共同见证我的成长
目前掌握技术:springboot,mysql,mybatis,mybatisplus,
rabbitmq,redis,springcloudalibaba
nacos等等主流后端技术
📢📢📢📣📣📣
全天在线接单:710245264 QQ
类型:bug
语言:java
解决线上问题,在线下将问题全部解除
最近线上遇到一个bug,邮箱居然发不了,使用的是hutool工具包
在解决这个bug中踩过很多坑
- 修改java中jre的SSLv3协议(无效)
- 修改代码添加协议(无效)
- 最终解决办法(有效)
解决办法,话不多说上干货
在解决之前,先要配置pom
<!--添加邮件发送jar包-->
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
<!-- 添加hutool工具类-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.19</version>
</dependency>
添加yml中的配置属性
mail:
# 协议
host: smtp.qq.com
# 端口
port: 587
# 是否开启安装协议
auth: true
# 具体发送的邮箱
from: xxxxx@qq.com
# 用户名 一般跟邮箱写一样的
user: xxxxx@qq.com
# 邮箱密码,这里的密码不是qq密码,去qq邮箱开通协议的密码
pass: hzcaxiztsbdnbdgb
添加Mailproperties,这里直接抄就行,我是跟yml是配置好的
package com.ruoyi.framework.config.properties;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MailProperties {
@Value("${mail.host}")
private String host;
@Value("${mail.port}")
private Integer port;
@Value("${mail.auth}")
private boolean auth;
@Value("${mail.from}")
private String from;
@Value("${mail.user}")
private String user;
@Value("${mail.pass}")
private String pass;
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public Integer getPort() {
return port;
}
public void setPort(Integer port) {
this.port = port;
}
public boolean isAuth() {
return auth;
}
public void setAuth(boolean auth) {
this.auth = auth;
}
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
}
编写MailConfig,直接复制即可
package com.ruoyi.framework.config;
import cn.hutool.extra.mail.MailAccount;
import com.ruoyi.framework.config.properties.MailProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MailConfig {
@Autowired
private MailProperties mailProperties;
@Bean
public MailAccount mailAccount(){
MailAccount mailAccount = new MailAccount();
mailAccount.setHost(mailProperties.getHost());
mailAccount.setPort(mailProperties.getPort());
mailAccount.setAuth(mailProperties.isAuth());
mailAccount.setFrom(mailProperties.getFrom());
mailAccount.setUser(mailProperties.getUser());
mailAccount.setPass(mailProperties.getPass());
return mailAccount;
}
}
最后编写发送邮箱的具体方法
//1.注入MailAccount
@Autowired
private MailAccount mailAccount;
//2.使用MailUtil发送邮件
// 注入的account
MailUtil.send(mailAccount,
//用户邮箱,发送给谁这里填谁
CollUtil.newArrayList("xxxx@qq.com"),
//标题
"验证码",
//具体内容
"您的验证码是:<h3>"+c+"</h3>",
//是否是html
true);
到这里咱们的邮箱发送就完成了
结尾
到这里我们的项目就部署完成了,如果有学到请给点个赞
有问题请加QQ:710245264
备注来源:CSDN bilibili 华为云
以上是北梦所分享的线上邮箱发送解决
感谢各位阅读本品文章,关注博主后续继续分享Demo,制作不易,点个赞吧👍
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)