57 lines
1.8 KiB
Python
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() |