【发送邮件】存在失效地址导致Transport群发失效

简介: 【发送邮件】存在失效地址导致Transport群发失效

最近项目在做一个发送邮件的功能,发现邮件地址列表中存在一个无效的地址,就会全部发送失败

解决方案

Transport transport = session.getTransport();
        try {

            transport.addTransportListener(new CustomTransportListener(transport));
            transport.connect("smtp.croot.com",username, password);
            transport.sendMessage(msg, msg.getAllRecipients());
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            // 7. 关闭连接
            transport.close();
        }

在工具类直接写

class CustomTransportListener extends TransportAdapter {
        Transport transport;

        CustomTransportListener(Transport transport) {
            this.transport = transport;
        }

        @Override
        public void messageNotDelivered(TransportEvent transportEvent) {
            Address[] addresses = transportEvent.getValidUnsentAddresses();
            Message message = transportEvent.getMessage();
            try {
                transport.sendMessage(message, addresses);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }


目录
相关文章
|
Web App开发 XML Java
SpringMVC使用MultipartResolver和MultipartFile实现文件上传
SpringMVC使用MultipartResolver和MultipartFile实现文件上传
1941 0
|
网络协议 数据安全/隐私保护 Windows
Windows Server 各版本搭建域控制器实现通过域管理用户(03~19)
Windows Server 各版本搭建域控制器实现通过域管理用户(03~19)
|
消息中间件 RocketMQ
rocketmq 超过4M消息体怎么发送
rocketmq 超过4M消息体怎么发送
686 1
|
Linux
CentOS7 系统磁盘空间不足,如何进行扩容
CentOS7 系统磁盘空间不足,如何进行扩容
2026 0
CentOS7 系统磁盘空间不足,如何进行扩容
|
关系型数据库 MySQL Linux
MariaDB启动/停止/重启命令大全
MySQL在CentOS 7+版本后改名为MariaDB,码笔记分享mariadb重启、启动和停止命令: MariaDB启动/停止/重启命令 启动MariaDB命令:systemctl start mariadb.service 停止MariaDB命令:systemctl stop mariadb.service 重启MariaDB命令:systemctl restart mariadb.service以上为码笔记分享的MariaDB启动、停止和重启命令。
10618 0
|
7月前
|
存储 弹性计算 网络协议
阿里云服务器ECS通用算力型u2a实例,CPU采用AMD EPYC处理器,睿频最高3.7 GHz
阿里云ECS通用算力型u2a实例搭载AMD EPYC处理器,睿频高达3.7GHz,基于CIPU架构,网络与存储突发带宽最高25Gbps,I/O性能强、延迟低。支持多种云盘及IPv4/IPv6,适用于中小型数据库、APP服务等场景,性价比高,官网价降低9%-22%,是中小企业上云优选。
850 0
|
JavaScript 安全 API
iframe嵌入页面实现免登录思路(以vue为例)
通过上述步骤,可以在Vue.js项目中通过 `iframe`实现不同应用间的免登录功能。利用Token传递和消息传递机制,可以确保安全、高效地在主应用和子应用间共享登录状态。这种方法在实际项目中具有广泛的应用前景,能够显著提升用户体验。
1828 9
|
NoSQL Unix Linux
Linux 设备驱动程序(一)(上)
Linux 设备驱动程序(一)
570 62
|
人工智能 自然语言处理 Java
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
文章介绍了Spring AI,这是Spring团队开发的新组件,旨在为Java开发者提供易于集成的人工智能API,包括机器学习、自然语言处理和图像识别等功能,并通过实际代码示例展示了如何快速集成和使用这些AI技术。
11825 4
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧