功能介绍
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邮箱为例,获取授权码(密码)如下图所示
发送短信后即可获取验证码,记得要开启前三个,然后保存第三个发送短信后显示的授权码即可,至于邮箱协议和端口号是固定的QQ邮箱的如下图所示,使用smtp.qq.com,587即可
所以参考参数如下:
邮箱的协议host:smtp.qq.com
邮箱端口号port:587
发件人邮箱地址email:你设置的发信邮箱账号(在QQ邮箱-》账户里面可以设置)
发件人邮箱昵称nickName:你设置的发信邮箱账号昵称(在QQ邮箱-》账户里面可以设置)
密码/授权码pwd:你发送短信后页面显示的授权码
© 版权声明
本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
THE END