Sign inSign up

sf67/relaysmtp

By sf67

•Updated 11 months ago

Relais SMTP en conteneur Linux qui écoute en 25 et relaie en SMTPS (465) vers des fournisseurs.

Image
Integration & delivery
0

290

sf67/relaysmtp repository overview

⁠Relay SMTP 25 ➜ 465 (Docker)

Relais SMTP en conteneur Linux qui écoute en 25 et relaie en SMTPS (465) vers des fournisseurs. Déploiement réseau LAN uniquement ! plusieurs comptes configurables.

  • Entrant: SMTP port 25 (aiosmtpd)
  • Sortant: SMTPS 465 (smtplib + SSL), authentification au fournisseur
  • Persistance: SQLite (config + spool)
  • Interface: FastAPI + Jinja, thème sombre, sur port 8080
  • Déploiement: Dockerfile + docker-compose

⁠Santé & dépannage

  • Endpoint santé: GET /health (ex: http://ip-serveur:8080/health⁠)
    • Retourne un JSON du type: { "smtp_up": true, "queued": 0, "sent": 0, "failed": 0 }
    • smtp_up indique si l’écoute SMTP (port 25) est démarrée.
  • Logs de démarrage: chercher la ligne
    • [startup] SMTP listener démarré sur 0.0.0.0:25 ; DB=/app/data/relay.db
    • Si absente, vérifier le mapping de ports et les conflits de service sur le port 25.
  • Mapping Docker recommandé:
    • "25:25" pour le SMTP entrant
    • "8080:8080" pour l’interface
  • Pare-feu/Conflits:
    • Ouvrir le port 25 en entrée (LAN uniquement).
    • S’assurer qu’aucun MTA (Postfix/Exim) n’écoute déjà le 25 sur l’hôte.
  • Test rapide réseau: depuis une machine du LAN telnet ip-serveur:25 doit afficher une bannière SMTP.
  • Note: le bouton de test dans l’UI ne valide que le chemin sortant (SMTPS 465), pas l’écoute en 25.

⁠Démarrage (Portainer Docker compose)

services:
  relaysmtp:
    image: sf67/relaysmtp:production
    container_name: relaysmtp
    ports:
      - "25:25"       # SMTP entrant
      - "8080:8080"   # UI admin
    environment:
      - ADMIN_PASSWORD=change-me-now
      - SECRET_KEY=please-change-this-secret
      - TZ=Europe/Paris
    volumes:
      - ./data:/app/data
    restart: unless-stopped

UI: http://ip-serveur:8080⁠

Configurez:

  • Hôte SMTP du fournisseur (ex: smtp.gmail.com)
  • Port: 465
  • Identifiants username/password (utilisez un mot de passe d’application si requis)
  • Envelope From (souvent l’adresse autorisée par le fournisseur)

Pointez votre logiciel expéditeur vers l’hôte Docker sur le port 25.

⁠Notes

  • Le conteneur écoute un port privilégié (25). Alternative: mapper 2525:25 et écouter 2525.
  • Retries (nombre et délai) dans l’interface.

⁠Développement

  • Code app: app/main.py
  • Templates: app/web/templates
  • CSS: app/web/static/styles.css

Tag summary

Content type

Image

Digest

sha256:631fb9d90…

Size

63.8 MB

Last updated

11 months ago

docker pull sf67/relaysmtp:production