mirror of
https://github.com/dreamhunter2333/cloudflare_temp_email.git
synced 2026-05-13 09:01:05 +08:00
* feat: add STARTTLS support for SMTP proxy server Add smtp_tls_cert and smtp_tls_key environment variables to enable STARTTLS on the SMTP proxy server, matching existing IMAP TLS support. Closes #249 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * test: add E2E tests for SMTP/IMAP STARTTLS - Add smtp-proxy-tls service with self-signed certs in docker-compose - Add smtp-tls.spec.ts: SMTP STARTTLS send plain/HTML/auth tests - Add imap-tls.spec.ts: IMAP STARTTLS login/list/select/fetch tests - Register smtp-proxy project in playwright.config.ts - Wait for TLS proxy readiness in docker-entrypoint.sh Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: enforce auth over TLS when STARTTLS is configured - Set auth_require_tls conditionally based on tls_context presence - Disable insecure SSLv2/SSLv3 protocols in TLS context Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: replace cert-gen service with inline cert generation The cert-gen one-shot container was exiting immediately after generating certificates, triggering --abort-on-container-exit and stopping all services before tests could run. Replace with an entrypoint script in smtp-proxy-tls that generates the self-signed cert before starting the proxy server. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
49 lines
1.3 KiB
Bash
Executable File
49 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
echo "==> Waiting for worker at $WORKER_URL ..."
|
|
for i in $(seq 1 60); do
|
|
if curl -sf "$WORKER_URL/health_check" > /dev/null 2>&1; then
|
|
echo " Worker ready after ${i}s"
|
|
break
|
|
fi
|
|
if [ "$i" -eq 60 ]; then
|
|
echo "ERROR: Worker not ready after 60s"
|
|
exit 1
|
|
fi
|
|
sleep 1
|
|
done
|
|
|
|
echo "==> Waiting for frontend at $FRONTEND_URL ..."
|
|
for i in $(seq 1 60); do
|
|
if curl -sf "$FRONTEND_URL" > /dev/null 2>&1; then
|
|
echo " Frontend ready after ${i}s"
|
|
break
|
|
fi
|
|
if [ "$i" -eq 60 ]; then
|
|
echo "ERROR: Frontend not ready after 60s"
|
|
exit 1
|
|
fi
|
|
sleep 1
|
|
done
|
|
|
|
echo "==> Waiting for smtp-proxy-tls SMTP on $SMTP_PROXY_TLS_HOST:$SMTP_PROXY_TLS_SMTP_PORT ..."
|
|
for i in $(seq 1 30); do
|
|
if nc -z "$SMTP_PROXY_TLS_HOST" "$SMTP_PROXY_TLS_SMTP_PORT" 2>/dev/null; then
|
|
echo " smtp-proxy-tls SMTP ready after ${i}s"
|
|
break
|
|
fi
|
|
if [ "$i" -eq 30 ]; then
|
|
echo "WARNING: smtp-proxy-tls SMTP not ready after 30s, continuing anyway"
|
|
fi
|
|
sleep 1
|
|
done
|
|
|
|
echo "==> Initializing database"
|
|
curl -sf -X POST "$WORKER_URL/admin/db_initialize" > /dev/null
|
|
curl -sf -X POST "$WORKER_URL/admin/db_migration" > /dev/null
|
|
echo " Database initialized"
|
|
|
|
echo "==> Running Playwright tests"
|
|
exec npx playwright test "$@"
|