You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Eprints网站Perl测试邮件发送失败:连接超时问题求助

排查Perl Net::SMTP::TLS连接超时问题

可能的原因及对应解决方法

  • SMTP服务器地址/端口错误
    确认PeerAddr指定的服务器地址拼写正确,同时核实目标SMTP服务器的监听端口:

    • 现代邮件服务通常使用465(SSL直连)或587(STARTTLS)端口,而非默认的25端口。
    • 用以下命令测试端口连通性:
      telnet <你的SMTP服务器地址> 587
      # 或者使用nc
      nc -zv <你的SMTP服务器地址> 465
      
  • 网络防火墙/安全组拦截

    • 检查本地服务器防火墙规则,确认出站的25/465/587端口未被封禁:
      # iptables用户
      iptables -L OUTPUT -n
      # ufw用户
      ufw status
      
    • 确认目标SMTP服务器的安全组已将你的服务器IP加入白名单。
    • 部分云服务商默认封禁25端口,需申请解封或改用587/465端口。
  • 超时时间设置过短
    代码中默认超时仅5秒,若网络延迟较高或服务器响应慢,可延长超时时间:

    $args{sock} = new IO::Socket::INET(
        PeerAddr    =>  $host,
        PeerPort    =>  $args{Port} || 587,
        Proto       =>  'tcp',
        Timeout     =>  $args{Timeout} || 15) # 调整为15秒或更久
            or croak "Connect failed :$@";
    
  • 模块版本或依赖问题

    • 更新Net::SMTP::TLS及相关依赖模块:
      cpanm Net::SMTP::TLS IO::Socket::SSL
      
    • 确认服务器已安装SSL证书相关依赖,避免因SSL握手失败导致的隐性超时。
  • DNS解析失败
    若使用域名作为服务器地址,检查服务器DNS解析是否正常:

    nslookup <你的SMTP服务器域名>
    

    解析失败时,可临时改用服务器IP地址测试,或调整本地DNS配置。

内容的提问来源于stack exchange,提问作者Ihdy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 07:25:24