#!/bin/bash
# 邮件端口批量检测脚本 测试 smtp.qq.com 25 465 587
TARGET="smtp.qq.com"
PORTS=(25 465 587)

echo "======================================"
echo "检测主机: $(hostname), IP: $(hostname -I | awk '{print $1}')"
echo "目标SMTP: $TARGET"
echo "======================================"

for port in "${PORTS[@]}"; do
  # 使用timeout防止长时间挂住，3秒超时
  timeout 3 bash -c "</dev/tcp/${TARGET}/${port}"
  if [ $? -eq 0 ];then
    echo -e "PORT ${port}: \033[32m OK \033[0m 可连通"
  else
    echo -e "PORT ${port}: \033[31m FAIL \033[0m 无法连通(被拦截/超时/拒绝)"
  fi
done

echo ""
echo "---简要判断建议---"
echo "✅ 自建邮局对外发信要求：25端口必须OK"
echo "✅ 客户端发信：465或587 OK即可"
echo "❌ 25 FAIL：该机器不适合搭建自建邮局，请换机器或找机房工单解封25"
echo "======================================"

