java发送邮件的工具类|邮箱发信java工具类代码

功能介绍

java发送邮件的工具类,通过调用类.方法即可使用邮箱发送想要的信息,一般用于激活验证的比较多或者通知,本次工具类代码以QQ邮箱发信为例,当然也可以是其他邮箱,需要修改几个对应的参数即可

使用步骤

首先如果你的项目是maven,需要引入javax.mail发信依赖坐标,如果你没有使用maven,可以下载jar包 javax.mail-1.6.2.jar

        <!--    邮箱激活-->
        <dependency>
            <groupId>com.sun.mail</groupId>
            <artifactId>javax.mail</artifactId>
            <version>1.6.2</version>
        </dependency>

然后编写一个Mail类,属性主要是定义一些邮箱的基本配置信息,目的就是方便解耦合

public class Mail {
    private int id;
    private String host;//邮箱的协议
    private int port;//邮箱的端口号
    private String email;//发件人的邮箱地址
    private String pwd;//邮箱设置获取到的授权码,可以在对应邮箱(qq邮箱)设置里面获取
    private String nickName;//发件人的邮箱昵称

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getHost() {
        return host;
    }

    public void setHost(String host) {
        this.host = host;
    }

    public int getPort() {
        return port;
    }

    public void setPort(int port) {
        this.port = port;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public Mail() {
    }

    public Mail(int id, String host, int port, String email, String pwd, String nickName) {
        this.id = id;
        this.host = host;
        this.port = port;
        this.email = email;
        this.pwd = pwd;
        this.nickName = nickName;
    }

    @Override
    public String toString() {
        return "Mail{" +
                "id=" + id +
                ", host='" + host + '\'' +
                ", port=" + port +
                ", email='" + email + '\'' +
                ", pwd='" + pwd + '\'' +
                ", nickName='" + nickName + '\'' +
                '}';
    }
}

然后编写发信工具类Mailutil 类

public class Mailutil {
    public static void sendMail(String accptor, Mail ms){
        try {
            MailAccount account = new MailAccount();
            account.setHost(ms.getHost());//邮箱的协议
            account.setPort(ms.getPort());//邮箱的端口号
            account.setAuth(true);//验证规则
            account.setFrom(ms.getEmail());//发件人的邮箱地址
            account.setUser(ms.getNickName());//发件人的邮箱昵称
            account.setPass(ms.getPwd()); //邮箱设置获取到的授权码,可以在qq邮箱设置里面获取
            List<String> acceptor=new ArrayList<>();
            acceptor.add(accptor);//收件人的邮箱地址.要封装到一个list集合里面
//五个参数,第一个是发件人信息,第二个是收件人,第三个是邮件的主题,第四个是邮件的内容.
// 第五个是邮件内容是否以html格式展示
            cn.hutool.extra.mail.MailUtil.send(account,acceptor ,
                    "xxxxx激活",
"欢迎注册xxx的会员,点击链接完成注册激活,祝您在xxxxx!激活链接:<a href='xxxxx''>点击激活</a>", true);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

扩展说明

将我的代码拷贝到你的项目下注意导入对应的依赖,另外有的项目不需要配置多个邮箱或者选择邮箱进行发信,完全可以去除掉Mail类,直接导入依赖然后使用工具类Mailutil,将工具类对应的Mail属性写死即可也可以写在配置文件里面然后读取等

参数信息

邮箱的获取方式都类似,百度一下就能知道,以QQ邮箱为例,获取授权码(密码)如下图所示

图片[1]-java发送邮件的工具类|邮箱发信java工具类代码-QQ沐编程

发送短信后即可获取验证码,记得要开启前三个,然后保存第三个发送短信后显示的授权码即可,至于邮箱协议和端口号是固定的QQ邮箱的如下图所示,使用smtp.qq.com,587即可

图片[2]-java发送邮件的工具类|邮箱发信java工具类代码-QQ沐编程

所以参考参数如下:

邮箱的协议host:smtp.qq.com

邮箱端口号port:587

发件人邮箱地址email:你设置的发信邮箱账号(在QQ邮箱-》账户里面可以设置)

发件人邮箱昵称nickName:你设置的发信邮箱账号昵称(在QQ邮箱-》账户里面可以设置)

密码/授权码pwd:你发送短信后页面显示的授权码

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享