【Java】【Hutool】从零开始实现发送邮件功能

采用Hutool工具实现发送邮件,可以访问Hutool官网

引言:从零开始,实现一个基本功能,邮件发送

第一步:打开idea,新建maven工程,引入依赖,如下:
   <dependencies><dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.6.2</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.26</version><scope>compile</scope></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.22</version></dependency></dependencies>
第二步,创建一个邮箱对象,如下
@Data
@NoArgsConstructor
@AllArgsConstructor
public class EmailInfo {/*** 邮箱账户*/private String emailAccount;/*** 邮箱密码*/private String emailPassword;/*** 发件人名称*/private String senderName;/*** 发件服务器*/private String sendServer;/*** 发件服务器是否遵循安全协议(0,不是 1是,默认0)*/private Integer sendServerIsSSL = 0;/*** 发件服务器端口(一般是若sendServerIsSSL = 1,端口则是25,若不是,则为465)*/private Integer sendPort;}

最后开始写一个main程序测试。前提是需要登陆相关邮箱,开通相关服务,这里以qq邮箱为例,登录qq邮箱,然后打开设置

在这里插入图片描述

进入之后,继续进入,一直下拉到最下面

在这里插入图片描述

找到下图这里,然后开通,smtp协议,会给你一个授权码,作为你的密码,然后才能发的,否则会报未授权的错误

在这里插入图片描述

开通后,要注意上面邮箱实体类中的提示取值哦。

因为qq是遵循安全协议的ssl = 1,所以设置的端口选择:465

最终的程序,大家自行提取里面的方法
public class SendEmailDemo {public static void main(String[] args) {EmailInfo info = new EmailInfo();info.setEmailAccount("你得邮箱");info.setEmailPassword("开通smtp协议的授权码,后面有教程");info.setSendPort(465);info.setSendServer("smtp.qq.com"); //遵循stmp的服务协议的服务器,可以百度,很多的info.setSenderName("发送人名称");info.setSendServerIsSSL(1);MailAccount account = getMailAccount(info);MailUtil.send(account,info.getEmailAccount(),"邮件服务测试","邮件服务测试成功",false);}/*** 获取邮箱参数对象** @param emailInfo* @return*/private static MailAccount getMailAccount(EmailInfo emailInfo) {MailAccount account = new MailAccount();if (ObjectUtil.isNotEmpty(emailInfo.getSenderName())) {StringBuilder sb = new StringBuilder();sb.append(emailInfo.getSenderName()).append('<').append(emailInfo.getEmailAccount()).append('>');account.setFrom(sb.toString());} else {account.setFrom(emailInfo.getEmailAccount());account.setUser(emailInfo.getEmailAccount());}account.setPass(emailInfo.getEmailPassword());account.setHost(emailInfo.getSendServer());account.setPort(emailInfo.getSendPort());account.setAuth(true);account.setSocketFactoryClass("javax.net.ssl.SSLSocketFactory");account.setSocketFactoryFallback(true);account.setSocketFactoryPort(emailInfo.getSendPort());if (emailInfo.getSendServerIsSSL() == 0) {account.setSslEnable(false);} else {account.setSslEnable(true);}account.setTimeout(3000);return account;}
}

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

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

相关文章

基于JAVA的农村物流配送系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统登录、注册界面2.2 系统功能2.2.1 快递信息管理&#xff1a;2.2.2 位置信息管理&#xff1a;2.2.3 配送人员分配&#xff1a;2.2.4 路线规划&#xff1a;2.2.5 个人中心&#xff1a;2.2.6 退换快递处理&#xff1a;…

飞天使-docker知识点10-docker总结

文章目录 docker 知识点汇总docker chatgpt解释学习路线cmd和 ENTRYPOINT 的区别harbor安装漏洞扫描 docker 知识点汇总 docker 基础用法 docker 镜像基础用法 docker 容器网络 docker 存储卷 dockerfile docker仓库 harbor docker-compose docker-swarmdocker chatgpt解释学…

DSP280049C初学(5)-基于IIC的FM24CL16B存储器的使用

DSP280049C初学&#xff08;5&#xff09;-基于IIC的FM24CL16B存储器的使用 实现目的&#xff1a; DSP280049C芯片能够通过IIC通讯实现写入和读取FM24CL16B存储器&#xff0c;其中本文参考了文章TMS320F280049 I2C IIC 相对于库函数操作CAT24C02 中文。 1.userIIC.h头文件配置…

confluence 备份与恢复

备份 confluence 每天会自动备份文件到 /var/atlassian/application-data/confluence/backups 新增定时任务&#xff0c;每天将备份的文件拷贝到远程服务器: crontab -l 0 0 3 * * ? sh /var/atlassian/application-data/confluence/backups/backup.sh#!/bin/shscp_linux_pa…

淘宝获得商品详情 API:电商平台的智能化数据源

一、引言 随着互联网技术的快速发展&#xff0c;电子商务在全球范围内得到了广泛的应用。作为中国最大的电商平台之一&#xff0c;淘宝拥有海量的商品信息和用户行为数据。然而&#xff0c;如何有效地获取和管理这些数据&#xff0c;以支持电商平台的智能化运营和精准营销&…

保护您的Android应用程序:Android应用程序安全一览

保护您的Android应用程序&#xff1a;Android应用程序安全一览 我们都知道Android是为所有人设计的——开放、面向开发者、面向用户&#xff0c;这种开放性为今天和明天的移动技术提供了很多便利。然而&#xff0c;开放性也带来了需要妥善处理的安全风险。 安全是我们所有人都…

操作系统系列:Unix进程系统调用fork,wait,exec

操作系统系列&#xff1a;Unix进程系统调用 fork系统调用fork()运用的小练习 wait系统调用Zombiesexec 系列系统调用 开发者可以查看创建新进程的系统调用&#xff0c;这个模块会讨论与进程相关的Unix系统调用&#xff0c;下一个模块会讨论Win32 APIs相关的进程。 fork系统调用…

德人合科技 | 公司电脑文件加密系统

公司电脑文件加密系统是一种可以对电脑文件进行加密的保护机制。它使用驱动层透明加密技术&#xff0c;能够在用户无感知的情况下对文件进行加密&#xff0c;从源头上保障数据安全和使用安全。 PC端访问地址&#xff1a; www.drhchina.com 此类系统主要有以下几个特点和功能&a…

ffmpeg入门之Windows开发之二(视频转码)

添加ffmpeg windows编译安装及入门指南-CSDN博客 的头文件和依赖库如下&#xff1a; main 函数如下&#xff1a; extern "C" { #ifdef __cplusplus #define __STDC_CONSTANT_MACROS #endif } extern "C" { #include <libavutil/timestamp.h> #in…

概率论复习

第一章&#xff1a;随机概率及其概率 A和B相容就是 AB 空集 全概率公式与贝叶斯公式&#xff1a; 伯努利求概率&#xff1a; 第二章&#xff1a;一维随机变量及其分布&#xff1a; 离散型随机变量求分布律&#xff1a; 利用常规离散性分布求概率&#xff1a; 连续性随机变量…

一份来自政治学研究者的大模型“实用指南”

大模型&#xff0c;对一个社会科学的研究者意味着什么&#xff1f; 如果抛开一些为了追新打快蹭热点而进行的类似大模型万物的“交叉科学”与“跨界研究”&#xff0c;只是将大模型视为一个“强大的工具”&#xff0c;那么这种“智能工具”如何赋能社会科学研究呢&#xff1f;…

轻空间气膜体育馆打造绿色运动空间

近年来&#xff0c;我国为全面实施全民健身战略&#xff0c;坚持“发展群众体育&#xff0c;服务健康中国”的理念&#xff0c;积极推动群众参与各类体育活动。为了满足全民健身和全面小康的深度融合发展需求&#xff0c;我国正在不断拓展公共体育设施的建设与开放。气膜体育馆…