Полностью локальный SMTP-опыт для Windows PHP 8.2+ с mbstring и Python 3.
Новая пустая папка для каждого опыта. Все файлы архива распаковать вместе.
Терминал 1: python smtp_sink.py --reject
Терминал 2: php example.php
После окончания обоих процессов: python probe_mail.py
Ожидаемый результат на странице объединяет вывод example.php и probe_mail.py.
Приёмник слушает только 127.0.0.1:8794; он сохраняет captured.eml и smtp-transcript.txt, не умеет пересылать письмо.
Если порт занят: python smtp_sink.py --port 8795 --reject; в PowerShell второго терминала $env:PHP_MANUAL_SMTP_PORT=8795.
Linux/macOS используют sendmail_path вместо Windows SMTP-настроек: данный код намеренно требует Windows и не вызывает установленный MTA.
