Java实现163网易邮箱消息发送

简介: Java实现163网易邮箱消息发送

依赖

maven依赖

    <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>javax.mail-api</artifactId>
        </dependency>
        <dependency>
            <groupId>com.sun.mail</groupId>
            <artifactId>jakarta.mail</artifactId>
        </dependency>

jar包依赖进去搜索名称下载

https://mvnrepository.com/

代码

public class MailUtils {
    /**
     * 发件人邮箱
     */
    private static final String HOST="yangbuyiya@163.com";
    /**
     * 邮箱密码或授权码
     */
    private static final String PASSWORD="132132131321321213";
    /**
     * 发送邮件
     * @param direction 邮件人邮箱地址
     * @param subject 邮件名称/标题
     * @param message 消息、内容
     */
    public static boolean sendMail(String direction,String subject,String message){
        Properties props = new Properties();
        // 开启debug调试
        props.setProperty("mail.debug", "true");
        // 发送服务器需要身份验证
        props.setProperty("mail.smtp.auth", "true");
        // 设置邮件服务器主机名
        props.setProperty("mail.host", "smtp.163.com");
        // 发送邮件协议名称
        props.setProperty("mail.transport.protocol", "smtp");
        Session session = Session.getInstance(props);
        Transport transport= null;
        //新建消息
        Message msg = new MimeMessage(session);
        try {
            //设置邮件标题
            msg.setSubject(subject);
           //设置消息内容
            msg.setText(message);
            msg.setFrom(new InternetAddress(HOST));
            transport = session.getTransport();
            transport.connect("smtp.163.com", HOST, PASSWORD);
            transport.sendMessage(msg, new Address[] { new InternetAddress(direction) });
        } catch (MessagingException e) {
            e.printStackTrace();
            return false;
        }finally {
            try {
                //关闭、释放资源
                transport.close();
            } catch (MessagingException e) {
                e.printStackTrace();
            }
        }
        return true;
    }
}

发送测试

public class MailTest {
    /**
     * 发送消息
     */
    @Test
    public void sendMail() {
        boolean flag = MailUtils.sendMail("xxxxxxxx@163.com", "https://yangbuyi.top", "杨不易呀");
        if (flag){
            System.out.println("发送成功");
        }else{
            System.out.println("发送失败");
        }
    }
}
相关文章
|
存储 Java Nacos
Java 实现消息发送|学习笔记
快速学习 Java 实现消息发送
351 0
Java 实现消息发送|学习笔记
|
NoSQL Java Go
gRPC Java 和Golang下server 端消息发送源码分析比较
gRPC Java 和Golang下server 端消息发送源码比较 概述 RPC是平时开发中经常用到的通信框架,gRPC是Google版本的rpc,开发中涉及到跨语言或者单纯通信需求时,gRPC是个不错的选择。
4910 0
|
5天前
|
安全 Java 调度
Java编程时多线程操作单核服务器可以不加锁吗?
Java编程时多线程操作单核服务器可以不加锁吗?
18 2
|
9天前
|
存储 缓存 Java
java线程内存模型底层实现原理
java线程内存模型底层实现原理
java线程内存模型底层实现原理
|
19天前
|
存储 缓存 安全
【Java面试题汇总】多线程、JUC、锁篇(2023版)
线程和进程的区别、CAS的ABA问题、AQS、哪些地方使用了CAS、怎么保证线程安全、线程同步方式、synchronized的用法及原理、Lock、volatile、线程的六个状态、ThreadLocal、线程通信方式、创建方式、两种创建线程池的方法、线程池设置合适的线程数、线程安全的集合?ConcurrentHashMap、JUC
【Java面试题汇总】多线程、JUC、锁篇(2023版)
|
13天前
|
缓存 Java 应用服务中间件
Java虚拟线程探究与性能解析
本文主要介绍了阿里云在Java-虚拟-线程任务中的新进展和技术细节。
|
11天前
|
Java 开发者
Java中的多线程基础与应用
【9月更文挑战第22天】在Java的世界中,多线程是一块基石,它支撑着现代并发编程的大厦。本文将深入浅出地介绍Java中多线程的基本概念、创建方法以及常见的应用场景,帮助读者理解并掌握这一核心技术。
|
6天前
|
Java 调度
Java-Thread多线程的使用
这篇文章介绍了Java中Thread类多线程的创建、使用、生命周期、状态以及线程同步和死锁的概念和处理方法。
Java-Thread多线程的使用
|
13天前
|
Java
领略Lock接口的风采,通过实战演练,让你迅速掌握这门高深武艺,成为Java多线程领域的武林盟主
领略Lock接口的风采,通过实战演练,让你迅速掌握这门高深武艺,成为Java多线程领域的武林盟主
22 7
|
12天前
|
Java 程序员
Java中的多线程基础与实践
【9月更文挑战第21天】本文旨在引导读者深入理解Java多线程的核心概念,通过生动的比喻和实例,揭示线程创建、同步机制以及常见并发工具类的使用。文章将带领读者从理论到实践,逐步掌握如何在Java中高效地运用多线程技术。
下一篇
无影云桌面