Java:实现邮件自动发送功能的坑

本文介绍了Java Mail相关注意点。Java Mail的jar包1.5以上版本可提供Trasport监听,但异常类型有限,Maven依赖最高版本为1.5.0 - b01。发件邮箱需开通SMTP服务,可用授权码替代密码。代码模拟发邮件易因频繁被禁用,不建议用163、qq邮箱测试,QQ和阿里邮箱不能代码模拟通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Java Mail的jar包有1.5以上和1.5以下的区别,1.5以上的版本可以提供Trasport监听,但是监听输出的异常类型有限,很多异常需要修改jar包的代码或者断点才能看到。

Transport transport = session.getTransport();
transport.addTransportListener(new TransportListener() {

	@Override
	public void messageDelivered(TransportEvent e) {
		e.getMessage().toString();
		System.out.println("邮件发送成功");
	}

	@Override
	public void messageNotDelivered(TransportEvent e) {
		System.out.println("邮件发送失败");
		restartSchedulerJob();
	}

	@Override
	public void messagePartiallyDelivered(TransportEvent e) {
		System.out.println("部分邮件发送成功");
	}
	
});

目前能通过Maven依赖直接下来的jar包版本最高为  1.5.0-b01

<dependency>
	<groupId>javax.mail</groupId>
	<artifactId>mail</artifactId>
	<version>1.5.0-b01</version>
</dependency>

2、发件人的邮箱需要开通SMTP服务才能通过代码模拟发邮件的客户端

3、开通SMTP的同时可以生成授权码,授权码可以替代发件人邮箱的密码,避免发件邮箱的密码泄露

4、代码模拟发邮件的客户端的时候,很容易因为发邮件频繁被邮箱服务器禁用,因此,不建议使用163、qq邮箱等进行测试,最好用公司自己的邮箱或者自己搭建邮箱服务器。

5、QQ邮箱和阿里邮箱不能通过代码模拟客户端的方式实现通信,是否还有其他的邮箱服务器之间存在这个问题未知。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值