#!/usr/bin/env bash
# Проверка доступа к mail.cock.li (IMAP/SMTP) с текущей машины.
# Запуск на DO: ssh hunab-prod 'bash -s' < docs/firemail/validate_mail_from_do.sh
# Или скопировать на сервер и запустить там.

MAIL_IP="${MAIL_IP:-37.120.193.124}"
MAIL_HOST="${MAIL_HOST:-mail.cock.li}"
TIMEOUT=10

check() {
  local name="$1"
  local cmd="$2"
  if eval "$cmd" >/dev/null 2>&1; then
    echo "OK   $name"
    return 0
  else
    echo "FAIL $name"
    return 1
  fi
}

echo "Проверка доступа к $MAIL_HOST ($MAIL_IP)"
echo "----------------------------------------"

# IMAP 993
check "IMAP 993 (SSL)" \
  "timeout $TIMEOUT openssl s_client -connect $MAIL_IP:993 -servername $MAIL_HOST -brief </dev/null 2>&1 | grep -q 'CONNECTION ESTABLISHED'"

# SMTP 587
check "SMTP 587 (STARTTLS)" \
  "timeout $TIMEOUT openssl s_client -connect $MAIL_IP:587 -starttls smtp -servername $MAIL_HOST -brief </dev/null 2>&1 | grep -q 'CONNECTION ESTABLISHED'" || true

# SMTP 465
check "SMTP 465 (SSL)" \
  "timeout $TIMEOUT openssl s_client -connect $MAIL_IP:465 -servername $MAIL_HOST -brief </dev/null 2>&1 | grep -q 'CONNECTION ESTABLISHED'" || true

echo "----------------------------------------"
echo "Итог: IMAP 993 должен быть OK для приёма почты через туннель."
echo "SMTP 465/587 часто недоступны с хостингов (DO и др.); отправка — напрямую с машины или через webmail."
