Java 实现向邮箱发送邮件及点击邮件激活网页打不开等问题,常用作注册账号及激活账号(测试为qq邮箱)

SpringBoot集成163邮箱发送邮件:从SMTP配置到生产实践 SMTP(简单邮件传输协议)是互联网电子邮件传输的核心标准协议,它定义了邮件客户端与服务器之间通信的规则。其工作原理基于客户端-服务器模型,通过命令响应机制完成邮件的路由与投递。在Java生态中,Spring Boot通过starter机制对JavaMail API进行了深度封装,极大简化了邮件功能的集成,为开发者提供了开箱即用的邮件发送能力。这一技术价值在于能够快速为应用添加用户通知、验证码发送、系统告警等关键通信功能,提升用户体验与系统可观测性。在应用场景上,无论是电商平台的订单确认、社交应用的密码重置 阅读详情

service
public void register(User user) throws UserException{
try {
//往数据库添加用户
userDao.addUser(user);

		String link="http://127.0.0.1:8080/bookstore/active?activeCode="+user.getActiveCode();
		String html="<a href=\""+link+"\">欢迎你注册网上书城账号,请点击激活</a>";
		System.out.println(html);
		SendJMail.sendMail(user.getEmail(), html);
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
		throw new UserException("用户注册失败,用户名重复");
	}
	
}

utils
public class SendJMail {

	public static boolean sendMail(String email, String emailMsg) {
	
	String from = ""; 				// 邮件发送人的邮件地址
	String to = email; 										// 邮件接收人的邮件地址
	final String username = "";  	//发件人的邮件帐户
	final String password = "";   					//发件人的邮件密码


	//定义Properties对象,设置环境信息
	Properties props = System.getProperties();

	//设置邮件服务器的地址
	/*
	props.setProperty("mail.smtp.host", "smtp.qq.com"); // 指定的smtp服务器
	props.setProperty("mail.smtp.auth", "true");
	props.setProperty("mail.transport.protocol", "smtp");//设置发送邮件使用的协议
	*/
	props.setProperty("mail.transport.protocol", "smtp");
	props.setProperty("mail.smtp.auth", "true");
	//创建Session对象,session对象表示整个邮件的环境信息
	Session session = Session.getInstance(props);
	//设置输出调试信息
	session.setDebug(true);
	try {
		//Message的实例对象表示一封电子邮件
		MimeMessage message = new MimeMessage(session);
		//设置发件人的地址
		message.setFrom(new InternetAddress(from));
		//设置主题
		message.setSubject("用户激活");
		//设置邮件的文本内容
		//message.setText("Welcome to JavaMail World!");
		message.setContent((emailMsg),"text/html;charset=utf-8");
		
		//设置附件
		//message.setDataHandler(dh);
		
		//从session的环境中获取发送邮件的对象
		Transport transport=session.getTransport();
		//连接邮件服务器
		transport.connect("smtp.qq.com",25, username, password);
		//设置收件人地址,并发送消息
		transport.sendMessage(message,new Address[]{new InternetAddress(to)});
		transport.close();
		return true;
	} catch (MessagingException e) {
		e.printStackTrace();
		return false;
	}
}

}
SendJMail类中,有username 与password两个属性 ,请自行填写自己的公司邮件服务器账号及密码,若自行本地测试,我是使用的qq邮箱,要获取qq邮箱的授权码
如何获取qq邮箱授权码,如下图

如上图,点击左上角的设置
在这里插入图片描述
进入到上方界面, 点击账户下滑会看到如下图
在这里插入图片描述
这里开启pop3与smtp服务,即可获取授权码

本地测试中password需要填写授权码

倘若你的邮件发送成功了以后,点击邮件却无法打开网页出现下图这种情况
在这里插入图片描述
这里将邮件中的a标签中href的地址中的localhost 改为127.0.0.1即可在这里插入图片描述

STM32CubeMX账号注册与配置全攻略:解决HAL库代码生成失败问题 在嵌入式开发中,图形化配置工具已成为提升开发效率的关键技术。这类工具通过抽象硬件底层细节,允许开发者以可视化方式配置微控制器的引脚、时钟和外设,其核心原理是将图形配置转换为可编译的驱动代码。对于STM32开发者而言,STM32CubeMX正是这样一个集成了在线资源库与本地配置引擎的一站式平台。它的技术价值在于能自动生成基于HAL库或LL库的完整工程,大幅降低手动编写底层驱动的复杂度,并确保代码符合官方标准。然而,要充分发挥其代码生成功能,开发者必须完成一个关键的前置步骤:注册并激活ST官方账号(myST账号 阅读详情

相关推荐

STM32CubeMX账号注册全攻略:从零解锁图形化配置与代码生成

在嵌入式开发领域,图形化配置工具通过可视化界面简化了微控制器初始化流程,其核心原理是将用户直观的图形配置转换为底层驱动代码。这项技术显著降低了开发门槛,提升了项目启动效率,尤其适用于快速原型开发和团队协作。对于广泛应用的STM32系列微控制器,STM32CubeMX正是实现这一价值的关键工具。它允许开发者通过图形界面配置引脚、时钟和外设,自动生成基于HAL库或LL库的初始化代码,并能集成FreeRTOS、FATFS等常用中间件。要使用其全部功能,首先需要完成账号注册与激活,这是访问在线芯片数据库、获取更新和

weixin_34296641的博客 324

Data URL

Data URI 使用 data URI 来呈现一些较长的内容, 如一串二进制数据编码、图片等,采用 base64 编码可以让内容变得更加简短。 而对图片来说,在 gzip 压缩之后,base64 图片实际上比原图 gzip 压缩要大,体积增加大约为三分之一,所以使用的时候需要权衡。 data:[<mime type>][;charset=<charset>][;base64],<encoded data> data: 协议头,它标识这个内容为一个 data UR

SeriousLose 6万+

Oracle JDK在Windows 11安装的三大暗坑与实战解决方案

Java开发环境配置是软件工程的基础能力,而JDK作为Java运行与编译的核心工具链,其安装稳定性直接影响项目构建、IDE集成与容器化部署。Oracle JDK因商用授权策略调整,已与Windows 11系统级安全机制(如Smart App Control、受控文件夹访问、PATH解析升级)产生深度冲突。理解JDK安装本质——不仅是复制bin目录,更是账号体系对接、权限模型适配与环境变量语义校验的过程——才能规避注册失败、javac不可用、PATH静默失效等高频故障。本文聚焦Windows 11平台下Ora

weixin_30697239的博客 525

Java邮件附件打不开

解决:在方法中已经设置的false在生产环境中依然有问题,最后发现是其他方法有发送附件且没有设置为false,并且这个环境变量是只能配置一次。所以最好是放到启动类。参数mail.mime.splitlongparameters 在linux下 会默认为 true,附件名过长,就会被截断。邮箱用的是outlook邮箱。

weixin_66204660的博客 368

Claude Code零基础入门:小白也能装上并运行的实操指南

Claude Code作为一款面向开发者的AI编程助手,其核心能力是将自然语言指令转化为结构化代码文本,依赖大模型的代码理解与生成能力。但对真实零基础用户而言,首要障碍并非技术原理,而是安装部署、网络访问、系统权限和账号认证等工程落地问题。本指南聚焦Windows环境下的‘可执行性入门’,绕过CLI命令行、Node.js环境、第三方插件等冗余依赖,直击Claude Desktop桌面版下载、UAC权限绕过、Gmail邮箱注册、Java代码生成与本地编译等关键链路,为连CMD和PowerShell都分不清的新

weixin_33676492的博客 405

Java微信公众号开发之微信公众平台账号申请注册

一、开发账号准备 微信公众平台:https://mp.weixin.qq.com/ 开发者文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432 说明: 点击右上角立即注册,选择“服务号”或“订阅号”注册(服务号仅限机构用户注册,个人用户只能选择订阅号) 申请流程: 1. 注册邮箱(...

Thinkingcao的专栏 1211

base64位编码原理与分析

打开一封QQ邮箱,显示邮件原文,你将会看到如下这样的信息: This is a multi-part message in MIME format. ------=_NextPart_4CA2B3AA_08661D78_10BF6743 Content-Type:text/html; charset="utf-8" Content-Transfer-Encoding:base64

caianye的专栏 811

支持QQ邮箱的邮件发送工具类完整实现

邮件的核心信息包括发件人、收件人、主题、正文等,这些字段的合理建模直接影响 API 的可用性和健壮性。本节将逐一剖析每个字段的设计细节,确保既能满足基本需求,又具备良好的语义表达能力。MIME(Multipurpose Internet Mail Extensions)扩展了 SMTP 协议,使其能够传输非 ASCII 文本、二进制文件、富文本等内容。它通过和头部描述内容特征。常见类型包括:text/plain: 纯文本text/html: HTML 页面。

weixin_42263617的博客 1701

base64的转码设置 charset=utf-8;

Data URI,不是URL URL是uniform resource locator的缩写,在web中的每一个可访问资源都有一个URL地址,例如图片,HTML文件,js文件以及style sheet文件,我们可以通过这个地址去download这个资源。 其实URL是URI的子集,URI是uniform resource identifier的缩写。URI是用于获取资源,包括其附加的信息的一种协议。附加信息可能是地址,也可能不是地址,如果是地址,那么这时URI就变成URL了。注意的是data URI不是

web修理工 8万+

基于SpringBoot+Vue的注册邮件激活功能实战解析

在Web系统开发中,用户注册与邮件激活是保障账号安全的基础环节。SpringBoot作为主流Java后端框架,通过spring-boot-starter-mail封装JavaMail底层细节,开发者仅需配置SMTP服务商信息即可快速集成邮件发送能力;Vue则以高效的组件化开发模式构建交互友好的注册表单。本文从技术原理出发,梳理邮件激活的核心流程:用户提交注册信息后,后端生成唯一激活码并存储过期时间,通过SMTP协议发送激活链接,用户点击后完成状态更新。同时结合前后端分离架构,分析激活链接跳转、跨域处理、CO

weixin_34408717的博客 522

ModusToolbox 实战避坑指南|从环境配置到项目构建

本文是一份详尽的ModusToolbox实战避坑指南,手把手教你从环境配置到项目构建。重点解决了Windows系统下的安装、关键环境变量CY_TOOLS_PATHS的设置、PowerShell执行策略调整以及利用URL Modifier工具优化GitHub资源下载等核心难题,旨在帮助开发者,特别是英飞凌(Infineon)芯片用户,顺利搭建开发环境并成功运行第一个Hello World程序。

t1u2v的博客 591

web项目注册邮箱激活代码

使用邮箱发送激活连接 1.在项目中创建MailUtils工具类 package com.xjj.util; import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.util.Properties; /** * 发邮件工具类 */ public final class MailUtils { private sta

q19973643718的博客 649

STM32F407步进电机控制及DM542驱动器使用

基于DM542驱动器的步进电机简单控制

qq_43868701的博客 1万+

Java邮件发送实现与SMTP协议详解

SMTP协议作为电子邮件传输的核心标准,定义了邮件服务器之间的通信规则。基于TCP的应用层协议通过命令响应机制实现邮件路由,JavaMail API则是对SMTP协议的标准化封装。在Java生态中,开发者可以通过javax.mail或Spring Boot Starter快速集成邮件功能,实现用户注册验证、系统报警等关键业务场景。现代邮件服务普遍要求SSL/TLS加密传输,配置时需注意mail.smtp.ssl.enable等关键参数。针对高频发送场景,连接池和异步处理能有效提升性能,而Thymeleaf模

weixin_30703911的博客 330

新手必看:如何用PhaGCN2和vConTACT2搞定宏病毒组注释(附避坑指南)

本文为宏病毒组研究新手提供了使用PhaGCN2和vConTACT2进行病毒注释的完整实战指南。内容涵盖从Conda环境配置、软件安装、参数解析到结果解读的全流程,并重点分享了整合双工具进行交叉验证的策略与常见报错解决方案,旨在帮助研究者高效、准确地完成病毒分类注释工作。

j2k3l4的博客 797

Hive数据迁移

【迁移背景】 本次需要将老集群的hive数据(共30多张表)迁移至新集群中。 老集群版本为CDH5.13,未启用kerberos; 新集群版本为CDH5.14,启用了kerberos。 由于cloudera官方文档说明,在5.x的版本不支持从未启用kerberos的集群与启用了kerberos的集群之间的数据复制。因此无法通过bdr方式进行数据同步。于是采用手工方式进行测试验证。 第一步...

wangkuangood3200的专栏 469

JavaMail实现发送邮件程序

JavaMail的使用。使用一个邮箱激活的demo,通过发送一封账号激活邮件以激活注册的账号。

honhong1024的博客 2190

华为OD机试真题 新系统2026-04-01 C++ 实现【勇攀数字高峰】

请你在给定的数字地形图中寻找登山路径,数字代表当前位置的海拔高度,要求从最低海拔出发,不断攀登,最终到达最高山峰。你需要寻找所有满足条件的登山路径。地图已经保证最低海拔和最高山峰都只有一个。

MISAYAONE的博客 383

阿里云账号注册与实名认证全流程指南:从零到一开启云计算之旅

云计算作为现代IT基础设施的核心,通过虚拟化技术将计算、存储、网络等资源以服务的形式提供,其核心价值在于弹性伸缩、按需付费和降低运维成本。对于开发者、学生及初创企业而言,掌握云服务是构建网站、部署应用、进行数据存储与分析的基础技能。在众多云平台中,阿里云提供了丰富的产品生态。要使用这些服务,首先需要完成账号注册与实名认证,这是调用云资源、确保账户安全与合规的必要前提。本文将围绕【阿里云账号注册】与【实名认证】这两个关键环节,详细解析注册前的材料准备、分步操作流程、常见问题排查以及注册后的安全设置与资源购买指

weixin_30875157的博客 490

Trae辅助开发完全教程:从入门到企业级实战

《Trae AI IDE完全教程》系统介绍了这款AI驱动的下一代集成开发环境。教程从基础入门到实战应用,详细讲解了Trae的双重开发模式(IDE/SOLO)、智能编程助手CUE、行内对话、模型管理等核心功能。内容包括环境配置、项目创建、Python开发示例,以及RPC框架和iOS应用两个实战案例。Trae通过深度整合AI技术,显著提升编码效率,支持多种编程语言和主流模型,适合从新手到企业级开发者的不同需求。本教程帮助开发者快速掌握Trae的使用技巧,实现AI辅助下的高效编程。

MrLi的博客 764

【大模型】SpringBoot整合LangChain4j实现RAG检索实战详解

SpringBoot整合LangChain4j实现RAG检索实战详解

congge 1万+

AI Agent邮件处理实战:从专属邮箱申请到自动化数据清洗

AI Agent作为具备任务分解与工具调用能力的智能体,其核心价值在于通过集成特定技能(Skills)实现自主工作流。邮件收发(Agent Mail)作为一项基础且关键的Skill,是Agent与外部世界交互、实现自动化的重要入口。在工程实践中,为AI Agent配置专属邮箱并集成邮件处理能力,涉及IMAP/SMTP协议应用、邮件内容解析以及数据清洗等关键技术。通过Python的imapclient、pyzmail等库,开发者可以构建能够自动收取、解析邮件,并利用Pandas进行数据清洗的自动化管道。这种将

weixin_30555515的博客 358

(免)Java Web 网页聊天室的工程搭建,域名、空间申请,ftp工具下载。

一、申请域名和空间 让我们先进入一个可以免费申请域名、空间的网址看看。http://free.3v.do/index.html 感觉这网页有些年代感了呀。不过不影响我们使用。 先点击红线1处的图片 看来需要先注册一下,那就先把该填的信息都填一填吧,姓名、出生日期,随便乱填也不影响。然后点击递交就ok了。(如果注册出了问题换...

热空洞的博客 804

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

USACO竞赛全攻略:从注册到晋级的完整指南(附最新赛季时间表)

本文提供USACO竞赛从注册到晋级的完整指南。详细解析了USACO的赛制、含金量及参赛价值,并手把手指导官网注册、比赛实战流程与文件提交规范。同时,深入剖析了青铜、白银、黄金、白金四个级别的能力要求与独特的连续晋级机制,并附上2023-2024赛季时间表与高效备赛资源推荐,助力编程爱好者系统备赛。

green的博客 570

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

上一篇: 小程序将后台获取到的数据传至页面
下一篇: 关于Javaweb 商城(或各大管理系统) 分页的问题
admin0_0
博客等级 码龄7年 6粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值