前言
本篇写的是基于java的邮件发送,基于本demo大家可以做别的拓展,附上源码博主亲测有图有真相,大家觉的好的话点点赞哈!
准备工作
1.准备架包
这里需要用到一个邮箱的jar下载好之后放导入项目中就好了。
email.jar 链接地址:https://pan.baidu.com/s/1PvMd6LqJXZvRP5R-ZUHYTw
提取码:2rj9
2.获取授权码
因为本接口需要对接腾讯qq邮箱的POP3/SMTP服务 它默认是关闭的,我们需要将它开启,并且拿到授权码来进行配置。
步骤:
第一步:
打开QQ邮箱----->点击设置------->点击选项中的账户----->拉下来找到SMTP服务
这里的话点击开启需要用手机发送短信然后拿到授权码。
第二步:
复制授权码等一下需要配置到代码中。
配置
SendmailUtil类
这里只需要改两个地方就ok了
- 修改:设置发件人邮箱地址这里写上自己的qq号就行了
- 修改:改为自己的授权码和账号就ok了
transport.connect("自己的qq账号@qq.com", "刚刚拿到的授权码")
;
package com.liyingdong;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;
public class SendmailUtil {
public static String Email(String zhh) throws MessagingException {
//设置随机验证码
int sjs = (int) ((Math.random() * 9 + 1) * 100000);
Properties properties = new Properties();
properties.put("mail.transport.protocol", "smtp");// 连接协议
properties.put("mail.smtp.host", "smtp.qq.com");// 主机名
properties.put("mail.smtp.port", 465);// 端口号
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.ssl.enable", "true");// 设置是否使用ssl安全连接 ---一般都使用
properties.put("mail.debug", "true");// 设置是否显示debug信息 true 会在控制台显示相关信息
// 得到回话对象
Session session = Session.getInstance(properties);
// 获取邮件对象
Message message = new MimeMessage(session);
// 设置发件人邮箱地址 *
message.setFrom(new InternetAddress("[email protected]"));
// 设置收件人地址*
message.setRecipients(RecipientType.TO, new InternetAddress[] { new InternetAddress(zhh + "@qq.com") });
// 设置邮件标题 *
message.setSubject("这是第一封Java邮件");
// 设置邮件内容 *
message.setText(sjs + ""); // 为传过来的值
// 得到邮差对象
Transport transport = session.getTransport();
// 连接自己的邮箱账户 *
transport.connect("[email protected]", "uaigbxwopnseeafd");// 密码为刚才得到的授权码
// 发送邮件
transport.sendMessage(message, message.getAllRecipients());
//返回验证码
return sjs + "";
}
}
测试类
你只需要传入指定人的qq号,然后要调用一下方法就行了
package com.liyingdong;
import javax.mail.MessagingException;
/**
*
* @ClassName: Test
* @Description: TODO(测试类)
* @author 李瀛东
* @date 2020年6月18日
*
*/
public class Test {
public static void main(String[] args) {
try {
String zhh="2082885180";//发送给指定账号
String code = SendmailUtil.Email(zhh);
System.out.println("邮箱验证码:"+code);
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
注意事项
其实只需要注意两点
- 运行的时候需要保持有网。
- 授权码更新的问题,授权码过几天就会进行更新,需要重新获取授权码进行配置
运行效果
控制台
收件人: