4月23号总结

java实现发送邮件

在做聊天室项目的时候,由于需要发送邮箱验证码,所以自己查找了这方面的内容。

首先需要在Maven里面依赖

 <dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.6.2</version></dependency>

位置大体如下

再点击

发送邮件以QQ邮箱举例

 首先要开通SMTP服务,先进入qq邮箱。

找到设置

找到常规

找到第三方服务开通即可

我这里已经开通

更新一下。

然后就可以定义一个发消息的类,发送消息直接调用里面的方法,

package com.djj.social.tool;import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Date;
import java.util.Properties;
import java.util.Random;public class MailSend {private static MimeMessage message;private static String m;public static void sendEmail(String to) throws MessagingException {final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";// QQ邮箱服务器String smtpHost = "smtp.qq.com";// 邮箱用户名,即QQ账号(自定义)final String username = "xxxxxxxxxxxx";// 邮箱授权码(自定义)final String password = "xxxxxxxxxxx";//开通SMTP会得到一个授权码,代替里面的x即可// 自己的邮箱(自定义)final String from = "xxxxxxxxxx@qq.com";// 要发送的邮箱地址(自定义)String toAddress = to;Transport transport;Properties props = new Properties();props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);props.setProperty("mail.smtp.socketFactory.fallback", "false");props.setProperty("mail.smtp.port", "465");props.setProperty("mail.smtp.socketFactory.port", "465");props.setProperty("mail.smtp.auth", "true");props.put("mail.smtp.host", smtpHost);props.put("mail.smtp.username", username);props.put("mail.smtp.password", password);Session session = Session.getDefaultInstance(props, new Authenticator() {protected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(username, password);}});InternetAddress[] addresses = {new InternetAddress(toAddress)};message = new MimeMessage(session);message.setFrom(new InternetAddress(from));message.setRecipients(Message.RecipientType.TO, addresses);message.setSubject("验证码");// 发送标题(自定义)message.setSentDate(new Date());m=generateVerificationCode(5);//验证码的长度System.out.println(m);message.setText(m);// 发送内容(自定义)transport = session.getTransport("smtp");transport.connect(smtpHost, username, password);transport.send(message);System.out.println("Email has been sent");transport.close();}public static boolean judge(String s){if(m.equals(s)){return true;}else{return false;}}private static String generateVerificationCode(int length) {String charSet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";StringBuilder verificationCode = new StringBuilder();Random random = new Random();for (int i = 0; i < length; i++) {verificationCode.append(charSet.charAt(random.nextInt(charSet.length())));}return verificationCode.toString();}
}

里面的judge方法用于判断输入的验证码是否正确,sendEmail方法用于发送邮件。

使用方式如下:

package com.djj.social.demo;
import com.djj.social.tool.MailSend;import javax.mail.MessagingException;public class test {public static void main(String[] args) throws MessagingException {MailSend.sendEmail("xxxxxxxxxx@qq.com");String yzm="XXXXXXX";//这个为输入的验证码if(MailSend.judge(yzm)==true){System.out.println("验证码正确");}else{System.out.println("验证码错误");}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/828528.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

冯喜运:4.25黄金原油上演过山车走势附操作建议

【黄金消息面分析】&#xff1a;周四&#xff08;4月25日&#xff09;亚洲时段&#xff0c;现货黄金窄幅震荡&#xff0c;目前交投于2320美元/盎司附近。金价周三企稳在2300关口上方&#xff0c;收报2315.80美元/盎司&#xff0c;中东紧张局势导致的风险溢价有所缓和&#xff0…

数据类型与变量(Java)

数据类型与变量&#xff08;Java&#xff09; 字面常量数据类型变量变量概念整型变量整型变量长整型变量短整型变量字节型变量 浮点型变量双精度浮点型单精度浮点型 字符型变量布尔型变量类型转换自动类型转换(隐式)强制类型转换(显式) 类型提升 字面常量 常量&#xff1a;常量…

AI预测体彩排列3第2套算法实战化测试第3弹2024年4月25日第3次测试

今天继续进行新算法的测试&#xff0c;今天是第3次测试。好了&#xff0c;废话不多说了&#xff0c;直接上图上结果。 2024年4月25日体彩排3预测结果 6码定位方案如下&#xff1a; 百位&#xff1a;4、5、3、6、1、0 十位&#xff1a;6、5、4、3、1、0 个位&#xff1a;6、2、7…

24二战上岸北邮计算机经验贴(初试+复试超详细)

个人情况介绍 我本科就读于南方的一所211&#xff0c;学的专业是网络工程。学习成绩在班级里是中等水平&#xff0c;挂了两门课。之前专业课学得不仔细&#xff0c;因此考研备考相当于在学新知识。我是二战上岸的&#xff0c;两次都是报考的是北邮计算机科学与技术&#xff08…

ASP.NET基于WEB的选课系统

摘要 设计本系统的目的是对选课信息进行管理。学生选课系统维护模块主要完成的是系统管理与维护功能。课题研究过程中&#xff0c;首先对系统管理模块进行了详尽的需求分析&#xff0c;经分析得到系统管理模块主要完成如下的功能&#xff1a;用户基本信息、选课信息的录入,查看…

【图论 单源最短路】100276. 最短路径中的边

本文时间知识点 单源最短路 图论知识汇总 LeetCode100276. 最短路径中的边 给你一个 n 个节点的无向带权图&#xff0c;节点编号为 0 到 n - 1 。图中总共有 m 条边&#xff0c;用二维数组 edges 表示&#xff0c;其中 edges[i] [ai, bi, wi] 表示节点 ai 和 bi 之间有一条…

Visual Studio调试C/C++指南

1. 前言 Visual Studio&#xff08;VS&#xff09;是微软开发的一款集成开发环境(IDE)软件&#xff0c;支持C/C、C#、VB、Python等开发语言&#xff0c;开发桌面、Web等应用程序。VS功能极其强大&#xff0c;使用极其便利&#xff0c;用户数量最多&#xff0c;被誉为"宇宙…

JDK的安装和配置

这里写自定义目录标题 1.Java 开发工具包在上方已关联资源下载使用2.JAVA_HOME3.CLASSPATH4.PATH5.包内含有visualvm 1.Java 开发工具包在上方已关联资源下载使用 2.JAVA_HOME JAVA_HOME C:\Program Files\Java\jdk1.8.0_1313.CLASSPATH CLASSPATH .;%JAVA_HOME%\lib\dt.jar…

5月计算机各省报名时间汇总报名流程

&#x1f4e3;5月有5省可进行计算机报名 天津&#xff1a;5月6日-5月10日 福建&#xff1a;5月6日9:00-5月12日17:00 广西&#xff1a;5月6日9:00-5月12日23:55 重庆&#xff1a;5月6日9:00-5月12日24:00 西藏&#xff1a;预计5月6日-12日 &#x1f50d;计算机等级考试报…

花粉过敏人群或超2亿?约克VRF中央空调助你健康鲜呼吸

“一朝春雨落,十里桃花开”,暖春、微风、阳光、花香……充满着生机的春天让人心情愉悦,然而对于易过敏人群来说却是“苦不堪言”,经常出现眼圈发红、发痒、睁不开,每天都在“流泪”中度过,同时伴随着咳嗽、打喷嚏、流鼻涕、鼻塞等症状,皮肤也可能会出现红疹、瘙痒等症状。 如何…

在Linux安装mysql

由于大多数开发&#xff0c;测试活动都是在linux中进行的&#xff0c;所以建议先学linux&#xff0c;可以看看下面这个文章&#xff1a; Linux命令超详细介绍-CSDN博客 1、先去下载mysql的linux安装包&#xff1a;MySQL :: Download MySQL Community Server (Archived Versio…

第十五届蓝桥杯省赛第二场C/C++B组G题【最强小队】题解

20pts 枚举所有可能的左端点、右端点&#xff0c;时间复杂度 O ( n 2 ) O(n^2) O(n2)。 对于每个区间进行遍历检测&#xff0c;时间复杂度 O ( n 3 ) O(n^3) O(n3)。 100pts 由于数据范围为 1 0 5 10^5 105&#xff0c;所以肯定只能进行一次枚举。 我们尝试枚举右端点&…

中小型企业网络实战topo

1、设备命名&#xff0c;务必按照规范进行命名规划&#xff1b; 2、子网划分&#xff0c;申请到了公网地址段&#xff0c;201.1.1.0/24&#xff0c;根据公司的实际情况&#xff0c;合理规划拓扑需要的公网地址&#xff0c; 做到合理规划不浪费&#xff1b; 3、子网划分&a…

ZooKeeper设置监听器

ZooKeeper设置监听器&#xff0c;通过getData()/getChildern()/xists()方法。 步骤&#xff1a; 1.创建监听器&#xff1a;创建一个实现Watcher接口的类&#xff0c;实现process()方法。这个方法会在ZooKeeper向客户端发送一个Watcher事件通知的时候被调用。 2.注册监听器&…

k-均值聚类

K均值聚类&#xff08;K-means clustering&#xff09;是一种常用的无监督学习方法&#xff0c;用于将一组数据点划分为K个簇&#xff08;cluster&#xff09;。 它的目标是将相似的数据点归到同一个簇中&#xff0c;同时使得不同簇之间的数据点尽可能不相似。K均值聚类算法的…

数据库MySQL的初级基础操作

文章目录 1. 介绍2. 数据库相关概念3. 启动4. 数据模型5. SQL6. DDL数据库DDL-表操作DDL-表操作-数据类型DDL-表操作-修改DDL-表操作-删除 7. 图形化界面工具DataGrip8. DML(数据操作语言)DML-添加数据DML-修改数据 9. DQL&#xff08;数据查询语言&#xff09;基本查询条件查询…

第十五届蓝桥杯省赛第二场C/C++B组F题【狡兔k窟】题解(AC)

题意分析 有一个 n n n 个点&#xff0c; n − 1 n-1 n−1 条边的无向图&#xff0c;边权均为 1 1 1。 每个点隶属于一个集合&#xff0c;同一个集合的点可以互相传送。 给定 m m m 个询问&#xff0c;求 x , y x, y x,y 的最短距离。 最短路解法 步骤&#xff1a; 建…

N5245B PNA-X 微波网络分析仪

N5245B PNA-X 微波网络分析仪 " 900 Hz/10 MHz 至 50 GHz " N5245B PNA-X 微波网络分析仪&#xff0c;900 Hz/10 MHz 至 50 GHz&#xff0c;2 端口和 4 端口&#xff0c;多达三个信号源。 特点 实现卓越性能 这款 PNA-X 分析仪不仅仅是一款矢量网络分析仪&a…

《QT实用小工具·四十》显示帧率的控件

1、概述 源码放在文章末尾 该项目实现了可以显示帧率的控件&#xff0c;项目demo演示如下所示&#xff1a; 、 项目部分代码如下所示&#xff1a; #ifndef FPSITEM_H #define FPSITEM_H#include <QQuickItem>class FpsItem : public QQuickItem {Q_OBJECTQ_PROPERTY(i…

ubuntu20 解决网线不能联网 RTL8111/8168/8411

这种问题一般是驱动没有正确安装。 ----RTL8111/8168/8411是一块比较坑的网卡。 1、 查看网卡信息 lspci |grep Ethernet2、 对于高版本的Ubuntu&#xff0c;能直接使用命令安装驱动。下面的r8168-dkms需根据网卡信息修改&#xff0c;上面的网卡信息还有8111&#xff0c;但逐个…