当前位置: 首页 > news >正文

使用Java代码发送QQ、网易电子邮件

说明:本文介绍如何使用Java代码发送邮件;

实现

Step1:引入依赖

创建一个Maven项目,引入下面两个依赖;

<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.27</version></dependency><dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.6.2</version></dependency>

Step2:编码

首先,写一个工具类,该工具类有两个方法,一个用来获取邮件对象,一个用来发送邮件;

importcn.hutool.core.util.StrUtil;importcn.hutool.extra.mail.MailAccount;importcn.hutool.extra.mail.MailUtil;/** * 邮件发送工具类 */publicfinalclassEmailSenderUtil{privateEmailSenderUtil(){}/** * 获取邮箱客户端 * * @param smtpHost smtp服务器地址 * @param smtpPort smtp服务器端口 * @param emailUsername 邮箱用户名 * @param emailPassword 邮箱授权码 * @return */publicstaticMailAccountgetMailClient(StringsmtpHost,intsmtpPort,StringemailUsername,StringemailPassword){MailAccountaccount=newMailAccount();account.setHost(smtpHost);account.setPort(smtpPort);account.setAuth(true);account.setFrom(emailUsername);account.setUser(emailUsername);account.setPass(emailPassword);returnaccount;}/** * 发送邮件 * * @param account 邮箱客户端 * @param to 接收人邮箱地址 * @param subject 邮件主题 * @param content 邮件内容 * @param isHtml 是否是html格式 */publicstaticvoidsendEmail(MailAccountaccount,Stringto,Stringsubject,Stringcontent,booleanisHtml){if(StrUtil.isBlank(to)){thrownewIllegalArgumentException("收件人邮箱地址不能为空");}if(StrUtil.isBlank(subject)){thrownewIllegalArgumentException("邮件主题不能为空");}if(StrUtil.isBlank(content)){thrownewIllegalArgumentException("邮件内容不能为空");}try{MailUtil.send(account,to,subject,content,isHtml);System.out.println("邮件发送成功");}catch(Exceptione){e.printStackTrace();System.out.println("邮件发送失败");}}}

Step3:获取授权码

发送人的邮箱账户需要开通SMTP服务,允许通过客户端发送邮件,这里介绍QQ邮箱、网易邮箱开通SMTP服务和获取授权码的步骤。

(QQ邮箱,SMTP_HOST是:smtp.qq.com,PORT用:465或587

文档参考:https://wx.mail.qq.com/list/readtemplate?name=app_intro.html#/agreement/authorizationCode

(网易邮箱,SMTP_HOST是:smtp.163.com,PORT用:25

获取授权码的方式都差不多,用绑定的手机给邮件官方发短信,然后获取授权码

Step4:测试

写一个main方法,测试发送邮件

importcn.hutool.extra.mail.MailAccount;publicclassEmailSentTest{publicstaticvoidmain(String[]args){// 邮件接收人,多个接收人使用逗号或者分号隔开Stringto="";// 邮件主题Stringsubject="测试邮件";// 邮件内容Stringcontent="这是一封测试邮件";// 获取邮箱客户端MailAccountaccount=EmailSenderUtil.getMailClient("smtp.qq.com",587,"发送方qq账号","发送方授权码");// 发送邮件EmailSenderUtil.sendEmail(account,to,subject,content,false);}}

发送成功

总结

本文介绍了如何用Hutool工具包封装的MailUtil发送邮件,及QQ邮箱、网易邮箱如何开通SMTP服务和获取授权码。

参考下面这篇文章:

  • java 用163邮箱发送邮件
http://www.jsqmd.com/news/606478/

相关文章:

  • 正则匹配实现验证
  • 为StructBERT模型开发命令行工具:提升批量处理效率
  • Nunchaku-flux-1-dev辅助游戏开发:快速生成角色立绘与场景原画
  • OpenClaw隐私方案:Kimi-VL-A3B-Thinking本地化处理敏感图文数据
  • 手写数字识别(python实现)
  • Linux服务器上保姆级部署ComfyUI+Flux:从Anaconda环境到低显存GGUF模型实战
  • Phi-3 Forest Laboratory 技术文档翻译与润色效果:中英互译质量对比
  • 快速上手Qwen3-ASR-0.6B:无需代码基础,Gradio界面点点鼠标就能用
  • AI像素艺术新体验:像素幻梦创意工坊开箱即用,打造复古游戏风作品
  • QMCDecode如何实现音频格式兼容性:3步解锁音乐跨平台自由
  • 提升写作效率:9大AI工具实现选题优化与自动降重
  • Java 多线程详解(持续更新)
  • 13-教务课程管理系统
  • Linux(Centos 7.6)命令详解:lsof
  • WarcraftHelper终极优化方案:魔兽争霸III完整兼容性修复指南
  • 基于STM32F407与miniMP3库的流式音频解码系统设计与实现
  • Janus-Pro-7B电商场景实战:商品主图智能生成与营销文案创作
  • 内置权重真省心!通用物体识别-ResNet18镜像稳定部署避坑指南
  • Swift 析构过程
  • 小型的自动洗勺机结构设计【三维proe+cad图纸+毕业论文+仿真】
  • FLUX.1-dev-fp8-dit文生图+SDXL_Prompt风格案例:国风文创产品视觉设计全流程
  • Visual Studio Code远程开发:无缝调试云端Pixel Dimension Fissioner
  • AI显微镜-Swin2SR效果展示:AI理解图像内容实现无损4倍放大的作品集
  • 义乌幼小衔接班口碑如何?2026年推荐这些靠谱机构,优质的幼小衔接重德教育显著提升服务 - 品牌推荐师
  • QMCDecode终极指南:3步解锁QQ音乐加密格式,免费实现音乐跨平台播放
  • DeepSeek-R1-Distill-Qwen-1.5B模型体验:数学80+分的1.5B参数小钢炮
  • Z-Image Atelier 中国风水墨画与现代抽象艺术生成效果对比研究
  • Nginx何以征服高性能之巅?深入剖析其架构设计哲学
  • Dify低代码平台对接Phi-3-mini:快速构建企业级AI应用工作流
  • Windows任务栏透明化终极指南:5种视觉方案与智能场景切换