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

后端 Java发送邮件 JavaMail 模版 20241128测试可用

配置授权码

依赖 

<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>javax.mail-api</artifactId>
    <version>1.5.5</version>
</dependency>
<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.5.4</version>
</dependency>

工具类

package com.dduo.dduoj.utils;

import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;

import com.sun.mail.util.MailSSLSocketFactory;

/**
 * @author Dduo
 * @Title SendEmailService
 */

public class JavaMailUtils {

    // 仅供测试
    public static void main(String[] args) throws Exception {
            send_email("我是标题", "12345", "1507319255@qq.com");
    }

    /**
     * 传入的参数是 邮件地址 和 发送的内容 和 发送的标题
     *
     * @param subject 标题
     * @param text 正文内容
     * @param mail 收件人地址
     * @throws Exception
     */
    public static void send_email(String subject, String text, String mail) throws Exception {
        // 如果jdk版本太高 要加这个
        System.setProperty("java.net.preferIPv4Stack", "true");
        System.setProperty("https.protocols", "TLSv1.2");
        // 配置邮件发送的相关属性
        Properties props = new Properties();
        props.setProperty("mail.debug", "true");
        props.setProperty("mail.smtp.auth", "true");
        props.setProperty("mail.smtp.host", "smtp.qq.com");
        props.setProperty("mail.smtp.port", "465");
        props.setProperty("mail.transport.protocol", "smtp");
        props.setProperty("mail.smtp.ssl.enable", "true");
        // 设置SSL连接的工厂
        MailSSLSocketFactory msf = new MailSSLSocketFactory();
        msf.setTrustAllHosts(true);
        props.put("mail.smtp.ssl.socketFactory", msf);
        // 创建邮箱会话

        // todo 填写发发件人的QQ邮箱和授权码
        Session session = Session.getInstance(props, new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("1732446549@qq.com", "mxytgpalxokeedjd");
            }
        });

        // 创建邮件消息对象
        Message message = new MimeMessage(session);
        message.setSubject(subject);
        message.setText(text);
        message.setFrom(new InternetAddress("1732446549@qq.com"));
        // 处理收件人部分,单个收件人和多个收件人的处理方式
        message.setRecipient(Message.RecipientType.TO, new InternetAddress(mail));
        // 获取邮件传输对象
        Transport transport = session.getTransport();
        transport.connect();
        // 发送邮件
        transport.sendMessage(message, message.getAllRecipients());
        // 关闭连接
        transport.close();
    }

}

http://www.kler.cn/a/419749.html

相关文章:

  • QT6学习第八天 QFrame 类
  • Linux下,用ufw实现端口关闭、流量控制(二)
  • 更换 Git 项目的远程仓库地址(五种方法)
  • 【Db First】.NET开源 ORM 框架 SqlSugar 系列
  • 基于大数据python 电商数据分析及推荐可视化系统(源码+LW+部署讲解+数据库+ppt)
  • 数据分析流程中的Lambda架构,以及数据湖基于Hadoop、Spark的实现
  • 渗透测试--Linux上获取凭证
  • vue3+echarts柱状图点击加载数据及选中效果
  • C++入门基础知识156—【关于C++数据类型】
  • MATLAB数学建模之画图汇总
  • [计算机网络] HTTP/HTTPS
  • 怎么理解BeamSearch?
  • 畅游Diffusion数字人(9):Magic-Me: Identity-Specific Video Customized Diffusion
  • sheng的学习笔记-【中】【吴恩达课后测验】Course 5 -序列模型 - 第二周测验 - 自然语言处理与词嵌入
  • 【计网】自定义序列化反序列化(二) —— 实现网络版计算器【上】
  • 匹配 变量的类型
  • 前端API自动化构建工具:讲述 FlyHttp 设计思想
  • 微信小程序开发入门 笔记一 2024/11/29
  • 网页端五子棋对战(一)---websocket引入前后端交互的实现
  • LangGPT社区创始人云中江树:用热爱与坚持点燃实战营课堂
  • 物理机上的Navicat连接不上centos7虚拟机中mysql的解决办法
  • C++_详解多态
  • Base64.cv:高效安全的在线Base64转换工具详解
  • 高效集成:将聚水潭数据导入MySQL的实战案例
  • PostgreSQL17.x创建用户与授权命令
  • 具身智能高校实训解决方案——从AI大模型+机器人到通用具身智能