java发送邮件,解决线上发送失败

举报
爱写代码的北梦 发表于 2024/06/30 17:22:24 2024/06/30
【摘要】 基于hutool工具包解决发送邮件,线上发送邮件失败的问题

java发送邮件,线上发送邮件失败

📢📢📢📣📣📣
hello 这里是北梦程序员,现阶段主要分享后端技术
一名在校大学生,共同学习,共同见证我的成长
目前掌握技术:springboot,mysql,mybatis,mybatisplus,
rabbitmq,redis,springcloudalibaba
nacos等等主流后端技术
📢📢📢📣📣📣

全天在线接单:710245264 QQ

类型:bug

语言:java

解决线上问题,在线下将问题全部解除

最近线上遇到一个bug,邮箱居然发不了,使用的是hutool工具包

在解决这个bug中踩过很多坑

  1. 修改java中jre的SSLv3协议(无效)
  2. 修改代码添加协议(无效)
  3. 最终解决办法(有效)

解决办法,话不多说上干货

在解决之前,先要配置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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。