关于smtp.exmail.qq.com:25端口访问超时的问题

近期由于项目需要,使用了org.apache.commons.email来发送邮件的功能,如下:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-email</artifactId>
    <version>1.5</version>
</dependency>

发送邮件代码:

public void sendWarningEmail(String subject,String msg){
    log.info("开始发送邮件--->主题:{}",subject);

    MultiPartEmail email = new MultiPartEmail();
    email.setHostName(hostName);
    email.setAuthentication(userName, passWord);
    try {
        for(String receiver :receivers) {
            email.addTo(receiver);
        }
        email.setFrom(sendFrom);
        email.setSubject(subject);
        email.setMsg(msg);
        email.send();

        log.info("发送邮件结束--->主题:{}",subject);
    } catch (EmailException e) {
        log.error("发送邮件失败,e:{}",e);
    }
}

使用的配置hostName为:smtp.exmail.qq.com,本地调用正常发送邮件,提测之后又如下报错:

Caused by: com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.exmail.qq.com, 25; timeout 60000
 at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2118)
 at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:712)
 at javax.mail.Service.connect(Service.java:388)
 at javax.mail.Service.connect(Service.java:246)
 at javax.mail.Service.connect(Service.java:195)
 at javax.mail.Transport.send0(Transport.java:254)
 at javax.mail.Transport.send(Transport.java:124)
 at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1459)

 ... 12 common frames omitted

可以看出连接超时导致邮件发送失败,初步怀疑测试环境宿主机无法访问外网,进入bash后 curl http://baidu.com可正常响应,排除此种情况,然后同样方法到部署的具体容器环境(docker)控制台 curl http://baidu.com 同样可以正常响应,判断应用环境没有问题,则判断是否腾讯邮件服务器问题,到宿主机访问:Telnet smtp.exmail.qq.com 25,访问超时。后咨询PE答复阿里云ECS为管控垃圾邮件,屏蔽了25端口号的服务,所以导致该访问超时,尝试使用ssl方式的465端口,修改代码如下之后成功发送邮件:

email.setSmtpPort(465);
email.setSSLOnConnect(true);

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值