Port 587 STARTTLS Support für SMTP-Verbindungen #75

Closed
opened 2025-06-23 08:33:47 +02:00 by Michael · 4 comments
Michael commented 2025-06-23 08:33:47 +02:00 (Migrated from gitea.dragons-at-work.de)

Problem

Furt unterstützt aktuell nur Port 465 (direct SSL) für SMTP-Verbindungen. Port 587 (STARTTLS) sollte ebenfalls unterstützt werden für erhöhte Kompatibilität mit verschiedenen Mail-Servern.

Current Status

  • Port 465 (SSL direct) funktioniert auf karl + walter
  • Port 587 (STARTTLS) nicht implementiert

Technical Details

STARTTLS-Workflow:

  1. Plain TCP-Verbindung zu Port 587
  2. EHLO command → Server zeigt STARTTLS-Support
  3. STARTTLS command → Server ready für SSL-Upgrade
  4. SSL-Handshake über bestehende Verbindung
  5. Normale SMTP-Kommunikation über SSL

Server-Verfügbarkeit bereits bestätigt:

walter: telnet mail.dragons-at-work.de 587
# Ergebnis: 220 aitvaras.dragons-at-work.de ESMTP Postfix (Ubuntu)

Implementation Plan

1. smtp.lua Erweiterung:

  • Port-Detection (465 → direct SSL, 587 → STARTTLS)
  • STARTTLS command implementation
  • SSL-Upgrade-Logic für bestehende Socket-Verbindung

2. Config-Erweiterung:

-- config/server.lua
mail = {
    smtp_port = 587,  -- Zusätzlich zu 465
    use_starttls = true,  -- Statt use_ssl für Port 587
    -- ...
}

3. Auto-Detection-Logic:

if self.port == 465 then
    -- Direct SSL wrap
elseif self.port == 587 then
    -- Plain connect → EHLO → STARTTLS → SSL upgrade
end

Acceptance Criteria

  • Port 587 STARTTLS-Verbindungen funktionieren
  • Backward-Compatibility mit Port 465 SSL erhalten
  • Auto-Detection basierend auf Port-Nummer
  • Funktioniert auf karl (Arch) und walter (OpenBSD)
  • Config-Option für STARTTLS vs direct SSL
  • Health-Check zeigt korrekte SMTP-Konfiguration

Priority Rationale

Medium Priority - Port 465 funktioniert bereits für aktuelle Anforderungen. Port 587 erweitert Kompatibilität für andere Mail-Server-Setups.

Technical Context

  • Existing SSL Implementation: Universal luaossl/luasec compatibility
  • SMTP Server: mail.dragons-at-work.de unterstützt beide Ports
  • Config System: /usr/local/etc/furt/environment (walter), .env (karl)
## Problem Furt unterstützt aktuell nur Port 465 (direct SSL) für SMTP-Verbindungen. Port 587 (STARTTLS) sollte ebenfalls unterstützt werden für erhöhte Kompatibilität mit verschiedenen Mail-Servern. ## Current Status - ✅ **Port 465 (SSL direct)** funktioniert auf karl + walter - ❌ **Port 587 (STARTTLS)** nicht implementiert ## Technical Details ### **STARTTLS-Workflow:** 1. Plain TCP-Verbindung zu Port 587 2. EHLO command → Server zeigt STARTTLS-Support 3. STARTTLS command → Server ready für SSL-Upgrade 4. SSL-Handshake über bestehende Verbindung 5. Normale SMTP-Kommunikation über SSL ### **Server-Verfügbarkeit bereits bestätigt:** ```bash walter: telnet mail.dragons-at-work.de 587 # Ergebnis: 220 aitvaras.dragons-at-work.de ESMTP Postfix (Ubuntu) ``` ## Implementation Plan ### **1. smtp.lua Erweiterung:** - Port-Detection (465 → direct SSL, 587 → STARTTLS) - STARTTLS command implementation - SSL-Upgrade-Logic für bestehende Socket-Verbindung ### **2. Config-Erweiterung:** ```lua -- config/server.lua mail = { smtp_port = 587, -- Zusätzlich zu 465 use_starttls = true, -- Statt use_ssl für Port 587 -- ... } ``` ### **3. Auto-Detection-Logic:** ```lua if self.port == 465 then -- Direct SSL wrap elseif self.port == 587 then -- Plain connect → EHLO → STARTTLS → SSL upgrade end ``` ## Acceptance Criteria - [ ] Port 587 STARTTLS-Verbindungen funktionieren - [ ] Backward-Compatibility mit Port 465 SSL erhalten - [ ] Auto-Detection basierend auf Port-Nummer - [ ] Funktioniert auf karl (Arch) und walter (OpenBSD) - [ ] Config-Option für STARTTLS vs direct SSL - [ ] Health-Check zeigt korrekte SMTP-Konfiguration ## Priority Rationale **Medium Priority** - Port 465 funktioniert bereits für aktuelle Anforderungen. Port 587 erweitert Kompatibilität für andere Mail-Server-Setups. ## Technical Context - **Existing SSL Implementation:** Universal luaossl/luasec compatibility - **SMTP Server:** mail.dragons-at-work.de unterstützt beide Ports - **Config System:** /usr/local/etc/furt/environment (walter), .env (karl)
michael added this to the v0.1.2 - Gateway Basics milestone 2025-08-14 05:20:48 +02:00
michael added
priority
high
status
blocked
and removed
priority
medium
status
to-go
labels 2025-08-15 09:07:30 +02:00
Owner

PRIORITY: HIGH - Production Blocker für Hetzner

Hetzner blockt Port 465 → Port 587 STARTTLS required für Production.

Status: Code existiert, aber vermischt mit:

  • Neuem walter-deploy-script
  • Git-Versionierung
  • Open-Source-Anpassungen

Aktion: STARTTLS-Code sauber extrahieren BEFORE DAW/furt#87

Blocker für: Hetzner-Production-Deployment

**PRIORITY: HIGH - Production Blocker für Hetzner** Hetzner blockt Port 465 → Port 587 STARTTLS required für Production. **Status:** Code existiert, aber vermischt mit: - Neuem walter-deploy-script - Git-Versionierung - Open-Source-Anpassungen **Aktion:** STARTTLS-Code sauber extrahieren BEFORE DAW/furt#87 **Blocker für:** Hetzner-Production-Deployment
Owner

DEPENDENCY UPDATE - Blocked by Deployment-System

Port 587 STARTTLS ist für Hetzner-Production nötig, ABER:

  • tiamat deploy-script funktioniert nicht
  • Neue Deployment-Infrastruktur (DAW/furt#87) muss ERST stehen
  • DANN kann furt auf Hetzner installiert werden (mit STARTTLS)

Status: HIGH Priority aber BLOCKED by DAW/furt#87

Reihenfolge:

  1. DAW/furt#87 (Deployment-System reparieren)
  2. furt auf Hetzner installieren
  3. DAW/furt#75 (STARTTLS aktivieren)
**DEPENDENCY UPDATE - Blocked by Deployment-System** Port 587 STARTTLS ist für Hetzner-Production nötig, ABER: - tiamat deploy-script funktioniert nicht - Neue Deployment-Infrastruktur (DAW/furt#87) muss ERST stehen - DANN kann furt auf Hetzner installiert werden (mit STARTTLS) **Status:** HIGH Priority aber BLOCKED by DAW/furt#87 **Reihenfolge:** 1. DAW/furt#87 (Deployment-System reparieren) 2. furt auf Hetzner installieren 3. DAW/furt#75 (STARTTLS aktivieren)
Owner

DEPENDENCY UPDATE - Implementiert in #89

Port 587 STARTTLS ist bereits implementiert im neuen Multi-Tenant System (DAW/furt#89).

Status: Code fertig, aber blocked by DAW/furt#89 deployment
Dependency-Chain:

  1. DAW/furt#87 (Deployment-System)
  2. DAW/furt#89 (Multi-Tenant deployen)
  3. DAW/furt#75 (funktioniert automatisch)

Aktion: Warten auf DAW/furt#89 deployment, dann ist STARTTLS verfügbar

**DEPENDENCY UPDATE - Implementiert in #89** Port 587 STARTTLS ist bereits implementiert im neuen Multi-Tenant System (DAW/furt#89). **Status:** Code fertig, aber blocked by DAW/furt#89 deployment **Dependency-Chain:** 1. DAW/furt#87 (Deployment-System) 2. DAW/furt#89 (Multi-Tenant deployen) 3. DAW/furt#75 (funktioniert automatisch) ✅ **Aktion:** Warten auf DAW/furt#89 deployment, dann ist STARTTLS verfügbar
Owner

Feature Complete

STARTTLS Port 587 Support implementiert:

  • Feature-Branch erfolgreich in main gemerged
  • Port 587 STARTTLS-Funktionalität verfügbar
  • Implementation tested und ready

Status: Production-ready für Hetzner-Deployment.

## Feature Complete ✅ **STARTTLS Port 587 Support implementiert:** - Feature-Branch erfolgreich in main gemerged - Port 587 STARTTLS-Funktionalität verfügbar - Implementation tested und ready **Status:** Production-ready für Hetzner-Deployment.
michael 2025-08-30 21:55:17 +02:00
Sign in to join this conversation.
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: DAW/furt#75
No description provided.