java maven通过SMTP发送QQ邮件的完全步骤
2023-09-11 14:19:52 时间
1、首先打开QQ邮箱的SMTP服务,因为QQ邮箱对于一般的用户都是默认关闭SMTP服务的。
找到SMTP服务的选项,可以看到此处默认是关闭的,点击开启,然后腾讯会进行一些身份验证,身份验证通过以后,腾讯会给出一个用于使用SMTP的16位口令,此处这个口令一定牢记,因为后面要使用SMTP功能必须要用到这个口令,没有这个口令即使知道QQ邮箱密码也没有用,此处未给出口令的截图,毕竟为了隐私保密,不然大家都可以登录使用我的QQ邮箱SMTP服务了。后面我们将该口令记为SMTP口令。
生成授权码。
首先,要使用Java的邮箱功能需要javax.mail这个jar包:
依赖:
<!-- email start --> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency> <!-- email end -->
发送邮件代码:
// 创建Properties 类用于记录邮箱的一些属性 Properties props = new Properties(); // 表示SMTP发送邮件,必须进行身份验证 props.put("mail.smtp.auth", "true"); //此处填写SMTP服务器 props.put("mail.smtp.host", "smtp.qq.com"); //端口号,QQ邮箱给出了两个端口,但是另一个我一直使用不了,所以就给出这一个587 props.put("mail.smtp.port", "587"); // 此处填写你的账号 props.put("mail.user", "xxxxxxx@qq.com"); // 此处的密码就是前面说的16位STMP口令 props.put("mail.password", "xxxxxxxxxxxxxxxxxxx"); // 构建授权信息,用于进行SMTP进行身份验证 Authenticator authenticator = new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { // 用户名、密码 String userName = props.getProperty("mail.user"); String password = props.getProperty("mail.password"); return new PasswordAuthentication(userName, password); } }; // 使用环境属性和授权信息,创建邮件会话 Session mailSession = Session.getInstance(props, authenticator); // 创建邮件消息 MimeMessage message = new MimeMessage(mailSession); // 设置发件人 InternetAddress form = new InternetAddress( props.getProperty("mail.user")); message.setFrom(form); // 设置收件人的邮箱 InternetAddress to = new InternetAddress("xxxxxxxx@qq.com"); message.setRecipient(RecipientType.TO, to); // 设置邮件标题 message.setSubject("测试邮件"); // 设置邮件的内容体 message.setContent("这是一封测试邮件", "text/html;charset=UTF-8"); // 最后当然就是发送邮件啦 Transport.send(message);
好了,以上就可以了。
如果生产环境不能发送邮件,则要绑定host。
相关文章
- 【JAVA】Eclipse如何导入其他电脑中的项目?(图文,已解决!)
- Java内存溢出(OOM)异常完全指南
- Java Date Time 教程-java.util.Date
- JAVA单元测试框架-9-testng.xml管理依赖
- Ubuntu安装java的几种方式以及多个JAVA版本的切换
- Java中Lambda基础
- Java程序员必学的Hotspot JVM选项
- 【Java】基本数据类型长度
- Java面试集合(五)
- 北京联想招聘-java 云服务开发工程师 加入qq 群:220486180 或者直接在此 留言咨询
- maven项目的java和resources等文件夹不在Java Resources的文件夹里,并且缺少Deployment...
- Tomcat 奔溃:java.lang.OutOfMemoryError: Java heap space
- 安装java项目开发环境
- Java 并发工具包 java.util.concurrent 大全
- Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求
- Java最快的maven仓库地址,国内Maven地址,超快的Maven地址
- Java replaceAll不区分大小写
- Java之throw和throws的区别及java中的异常处理
- 『Java练习生的自我修养』java-se进阶⁴ • IO流概览
- 【Java】Java学习笔记-基础语法
- Java操作Mongodb 保存/读取java对象到/从mongodb
- 【JAVA】浅谈java枚举类
- Java代码块
- Java //PP2.17 编写一个applet,画出一些用绳子拴住的各种颜色的气球
- Java图形验证码,支持gif、中文、算术等类型,可用于Java Web、JavaSE等项目。