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

Java程序发送邮件email

如何使用Java程序发送邮件

引入email相关的依赖

<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>jakarta.mail</artifactId>
    <version>1.6.7</version>
</dependency

springboot项目可直接引入:

<!-- 邮件 -->
<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

邮件发送需要一个发件邮箱和收件邮箱

这里收件邮箱只要是任意可以使用的邮箱就可以了

发件邮箱需要到对应的官网去打开SMTP服务,并获取授权码

这里以qq邮箱为例

设置->账号->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 开启服务,验证通过后保存授权码

)

qq邮箱的服务器名是 smtp.qq.com,发件端口号是465

以下是使用Java程序,发送邮件的代码,仅供参考

private void sendEmail(String message) {
    // 设置邮件服务器属性
    Properties properties = new Properties();
    properties.put("mail.transport.protocol", "smtp"); // 设置邮件服务器主机名
    properties.put("mail.smtp.host", "smtp.qq.com"); // 设置邮件服务器主机名
    properties.put("mail.smtp.port", "465"); // 设置邮件服务器端口号 465是qq邮箱
    properties.put("mail.smtp.auth", "true"); // 启用身份验证
    properties.put("mail.smtp.ssl.enable", "true"); // 启用 SSL
    properties.put("mail.debug", "true"); // debug信息
    // 创建会话对象
    Session session = Session.getInstance(properties, new Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
            // 在这里填写发送邮件的邮箱地址和密码/授权码
            return new PasswordAuthentication("xxxxx@qq.com", "******授权码*******");
        }
    });

    try {
        // 创建邮件消息
        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress("xxxxx@qq.com")); // 设置发件人邮箱
        message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("yyyyy@163.cn zzz@qq.com aaaa@gmail.com", false)); // 设置收件人邮箱,可以同时发送多个邮箱,空格隔开
        message.setSubject("邮件主题"); // 设置邮件主题
        message.setText(message); // 设置邮件内容

        // 发送邮件
        Transport.send(message);
    } catch (Exception e) {
        log.error("邮件发送失败", e);
        throw new UserFriendlyException("邮件发送失败", e);
    }
}

http://www.kler.cn/news/351047.html

相关文章:

  • JVM的内存模型是什么,每个区域的作用是什么,以及面试题(含答案)
  • 【WRF数据处理】基于GIS4WRF插件将geotiff数据转为tiff(geogrid,WPS所需数据)
  • ImportError: DLL load failed while importing _rust: 找不到指定的模块。
  • ReactOS系统中平衡二叉树,在一个空间中寻找与给定地址范围重合或部分重合的(已分配)区间
  • python 爬虫抓取百度热搜
  • LabVIEW共享变量通信故障
  • API 接口测试步骤
  • 如何从头训练大语言模型: A simple technical report
  • DNS安全概述
  • lua脚本使用cjson转换json时,空数组[]变成了空对象{}
  • 016集——c# 实现CAD类库 与窗体的交互(CAD—C#二次开发入门)
  • Anaconda3与PyCharm安装配置
  • 第十四届中国国际健康产品展览会在沪举办,无限未来品牌大放异彩
  • 界面组件DevExpress WPF v24.1亮点 - 支持全新的字体图标图像
  • 每天10个js面试题(五)
  • 基于cloudreve(Docker应用)搭建网盘服务,用于目录的分享和在线预览。
  • 川字结构布局/国字结构布局
  • 双通道音频功率放大电路D2822M兼容TDA2822,全封装输出功率0.11W,用于音频产品
  • 录自己一段音频,后续根据文字生成自己音色的音频(java实现)
  • 二叉树基本运算算法实现
  • Lua 函数
  • 【ComfyUI】轻松一键视频转动漫!太棒了!超强稳定视频转绘工作流,如此丝滑~!
  • JSON字符串转成java的Map对象
  • RabbitMQ原理剖析
  • Go4 和对 Go 的贡献
  • Excelize 开源基础库 2.9.0 版本正式发布