Files
notytex/debug_smtp_server.py

57 lines
1.8 KiB
Python

#!/usr/bin/env python3
"""
Serveur SMTP de débogage simple pour tester l'envoi d'emails en local.
Usage: python debug_smtp_server.py
"""
import asyncore
import smtpd
import sys
from datetime import datetime
class DebuggingServer(smtpd.SMTPServer):
"""Serveur SMTP qui affiche tous les emails reçus dans le terminal."""
def process_message(self, peer, mailfrom, rcpttos, data, **kwargs):
"""Traite et affiche les messages reçus."""
print('=' * 80)
print(f'📧 EMAIL REÇU le {datetime.now().strftime("%Y-%m-%d %H:%M:%S")}')
print('=' * 80)
print(f'🔗 Connexion depuis: {peer}')
print(f'📨 De: {mailfrom}')
print(f'📬 Vers: {", ".join(rcpttos)}')
print('-' * 80)
print('📄 CONTENU:')
print(data.decode('utf-8', errors='replace'))
print('=' * 80)
print()
def main():
"""Lance le serveur SMTP de débogage."""
host = 'localhost'
port = 1025
print(f'🚀 Démarrage du serveur SMTP de débogage sur {host}:{port}')
print('📧 Tous les emails envoyés à ce serveur seront affichés ici')
print('❌ Aucun email ne sera réellement envoyé')
print('🛑 Appuyez sur Ctrl+C pour arrêter')
print('=' * 80)
try:
server = DebuggingServer((host, port), None)
print(f'✅ Serveur prêt ! Configurez Notytex avec:')
print(f' - Serveur SMTP: {host}')
print(f' - Port: {port}')
print(f' - TLS: Désactivé')
print(f' - Authentification: Aucune')
print('=' * 80)
asyncore.loop()
except KeyboardInterrupt:
print('\n🛑 Serveur arrêté par l\'utilisateur')
sys.exit(0)
except Exception as e:
print(f'❌ Erreur: {e}')
sys.exit(1)
if __name__ == '__main__':
main()