这几天我们多数的发信程序都出现了一个统一的问题:421 4.4.5 HL:ICC
这是网易企业邮箱发信频率过高超过了qps限制导致的发信失败
原因咨询了下网易的人,说可能是因为这段时间二十大网易对邮箱进行了一些更改导致了这个情况
但是这个报错并不只是频率过高这么简单,因为我们有几个程序即使一分钟发一封邮件依旧报这个错,最后我们认定原因为程序使用的25默认smtp端口禁用了程序所在服务器的IP。
下面来说下我们的几个解决方法
一、IP被禁用的解决方法——将25默认端口更改为465/994加密端口
具体代码为在发信程序的配置项里增加/变更如下4个参数即可、
//使用465 final String SSLport="465"; final String sslFactory = "javax.net.ssl.SSLSocketFactory"; props.put("mail.smtp.port", SSLport); props.put("mail.smtp.socketFactory.class", sslFactory); props.put("mail.smtp.socketFactory.fallback", "false"); props.put("mail.smtp.socketFactory.port", SSLport);
二、发信频率过高的解决办法——降低频率呗
实测之后目前1分钟内发送5-6封是没什么问题的
所以可以通过设置线程 或将邮件先存入数据库再设置定时JOB发送的方式实施
具体实现就不赘述了